コード例 #1
0
ファイル: PluginManager.cs プロジェクト: shangshen/cozy
        public void AddPluginWithFileName(string filename)
        {
            if (filename.StartsWith("CozyAnywhere.Plugin.") && filename.EndsWith(".dll"))
            {
                string   ns       = filename.Substring(0, filename.Length - 4);
                Assembly assembly = Assembly.LoadFrom(filename);

                Type loadhelper          = assembly.GetType(ns + ".LoadHelper");
                IPluginLoadHelper helper = (IPluginLoadHelper)Activator.CreateInstance(loadhelper, null);

                string  pluginName = helper.PluginName;
                Type    pluginType = assembly.GetType(ns + "." + pluginName);
                IPlugin plugin     = (IPlugin)Activator.CreateInstance(pluginType, null);
                AddPlugin(plugin);
            }
        }
コード例 #2
0
ファイル: Client.IO.cs プロジェクト: sgww/cozy
        public List <Tuple <string, Assembly> > LoadPlugins(List <string> files)
        {
            var result = new List <Tuple <string, Assembly> >();

            foreach (var filename in files)
            {
                if (filename.StartsWith("CozyAnywhere.Plugin.") && filename.EndsWith(".dll"))
                {
                    string            ns         = filename.Substring(0, filename.Length - 4);
                    Assembly          assembly   = Assembly.LoadFrom(filename);
                    Type              loadhelper = assembly.GetType(ns + ".LoadHelper");
                    IPluginLoadHelper helper     = (IPluginLoadHelper)Activator.CreateInstance(loadhelper, null);
                    string            pluginName = helper.PluginName;
                    result.Add(Tuple.Create(ns + "." + pluginName, assembly));
                }
            }
            return(result);
        }