日期:2014-05-17  浏览次数:20946 次

C#动态加载dll
如题。
需求是根据判断用户来动态加载dll。
我查了一下网上的例子。用反射来做。
关键是在实例化类型的时候Object obj = Activator.CreateInstance(type),需要一个空的构造函数。但是,我需要实例化的类型,继承了一个接口,类中有一个有参的构造函数
C# code

 public TComponentDemo(IPortal Iportal)
            : base(Iportal)
{
    //Code
}


怎么才能实现呢。

------解决方案--------------------
http://wenku.baidu.com/view/98580e4ac850ad02de8041fc.html
------解决方案--------------------
http://zhidao.baidu.com/question/95864306.html
------解决方案--------------------
看看CreateInstance的方法重载,有加载有参数的构造函数
------解决方案--------------------
不是有带参数的方法的吗
 Activator.CreateInstance (Type, Object[]) 

------解决方案--------------------
(IDataInterface)(Assembly.LoadFile(Application.StartupPath + "\\" + "AData.Dll").CreateInstance(AData.DataClass));

其中:
AData.Dll是类库文件
AData.DataClass是带名称空间的完整类名