我有一个位于目录d:\ abc的微软.office.interop.excel(dll)。现在我不想在我的项目中将它们添加为Web引用并将它们称为
从我的代码后面动态调用dll(.cs) 我们可以做任何动态的方式
任何帮助都会很棒 谢谢
答案 0 :(得分:1)
是的,但您需要使用反射,因为如果您不将程序集添加为引用,则在编译时将无法识别它。看看LoadFrom方法。
var assembly = Assembly.LoadFrom(@"d:\abc\microsoft.office.interop.excel.dll");
var someType = assembly.GetType("Namespace.Type");
var instance = Activator.CreateInstance(type);
someType.InvokeMember(... // the reflection pain goes on
答案 1 :(得分:0)
查看Assembly.Load()
方法。
答案 2 :(得分:0)
我想劝阻你这样做。如果将dll读入byte []并调用AppDomain.CurrentDomain.Load(byte[])
,肯定可以完成。但是,您会发现只能通过反射处理该程序集的类型。否则你的代码隐藏文件将无法编译。因此,如果可能的话,您应该向dll添加引用(而不是Web引用)。