如何从后面的代码(.cs)动态调用一个DLL文件

时间:2010-02-19 09:11:01

标签: asp.net

我有一个位于目录d:\ abc的微软.office.interop.excel(dll)。现在我不想在我的项目中将它们添加为Web引用并将它们称为

从我的代码后面动态调用dll(.cs) 我们可以做任何动态的方式

任何帮助都会很棒  谢谢

3 个答案:

答案 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引用)。