我发现了一些关于通过代码将.dll库直接加载到C#项目中的帖子。这是我正在使用的当前代码:
if (System.IO.File.Exists(dir + lib + ".dll"))
{
Assembly type = Assembly.LoadFrom(dir + lib + ".dll");
object obj1 = type.CreateInstance(_namespace);
assm.Add(obj1);
return assm.Count - 1;
}
else
{
Console.WriteLine(dir + lib + ".dll: file does not exist");
return -1;
}
代码:
Assembly type = Assembly.LoadFrom(dir + lib + ".dll");
object obj1 = type.CreateInstance(_namespace);
假设找到.dll文件并将其作为实例加载,然后抓取该类并从中创建一个对象。所以我可以创建一个具有一个函数来打印hello的库,然后我将其加载到代码中,然后我可以通过创建类的实例来访问该函数。问题是当我执行代码时:
object obj1 = type.CreateInstance(_namespace);
obj1为null,我知道将namspace赋予函数(我仔细检查并且是正确的),但不管它是什么总是null。我检查了库是否作为程序集加载,它是!当我执行断点(将鼠标悬停在对象类型上)时,这是程序集的详细信息:
{ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
提前感谢您的帮助,我不确定我的代码有什么问题。
答案 0 :(得分:1)
什么是_namespace?它必须包含类的全名(带名称空间),例如System.Collections.ArrayList