首页 > 其他 > 详细

动态加载dll,并创建类对象放入到list中。

时间:2015-12-25 13:06:33      阅读:157      评论:0      收藏:0      [点我收藏+]

 

private List<IVisualControlsPlug> visualPlugs = new List<IVisualControlsPlug>();

        public void Load()
        {
            DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
            foreach (FileInfo fi in di.GetFiles("VisualControls.*.dll"))
            {
                Assembly lib = Assembly.LoadFrom(fi.FullName);
                foreach (Type t in lib.GetExportedTypes())
                {             
                    if (t.GetInterface(typeof(IVisualControlsPlug).FullName) != null)
                    {
                        IVisualControlsPlug plug = (IVisualControlsPlug)Activator.CreateInstance(t);
                        InitializePlugin(Env.Current, plug);
                    }
                }
            }
        }

        private void InitializePlugin(IEnvironment env, IVisualControlsPlug plug)
        {
            plug.Initialize(env);
            visualPlugs.Add(plug);
        }


//重载操作符
 public IVisualControlsPlug this[string pluginId]
        {
            get
            {
                foreach (IVisualControlsPlug plug in visualPlugs)
                    if (plug.PluginId == pluginId)
                        return plug;
                return null;
            }
        }

 

动态加载dll,并创建类对象放入到list中。

原文:http://www.cnblogs.com/profession/p/5075351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!