我在尝试使用反射机制来做插件。首先想到的就是用Activator.CreateInstan来实现。
1 当我通过引用将插件dll引入到本程序中。没有问题,可以动态实现实例化Ip.Ip p2 = (Ip.Ip)Activator.CreateInstance("test", "test.p").Unwrap();
其中Ip.Ip是一个接口,test.p是实现类。我在程序中都是通过接口调用功能的。这样插件换了,功能也就随之改变,实现多态。2 但是我们使用插件的目的就是不修改程序,达到扩展功能的目的。因此我试着,将test.p的文件copy到本程序的bin下。希望Activator.CreateInstance也能识别文件名,然后实例化test.p。但是系统却提示“未能加载文件或程序集“test”或它的某一个依赖项。系统找不到指定的文件”这说明程序无法识别手动copy过来的dll。我现在有点迷茫啦,请教各位,
1 Activator.CreateInstance有没有办法识别手动copy过来的dll2 如果不行,C#中引用插件,大家都是怎么做的。
谢谢!!!1