你好,我正在以以下方式加载程序集:
Assembly testAssembly = Assembly.LoadFile("abc.dll");
Type t = testAssembly.GetType("abc.dll");
但是我遇到了一个错误:“需要绝对路径信息”,然而我的dll文件位于同一文件夹中。
你好,我正在以以下方式加载程序集:
Assembly testAssembly = Assembly.LoadFile("abc.dll");
Type t = testAssembly.GetType("abc.dll");
wal提到了GetType
方法调用的一个好观点,但是为了回答这个问题:
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "abc.dll");
Assembly testAssembly = Assembly.LoadFile(path);
AppDomain.CurrentDomain
不可靠,那么可以使用稍微复杂一些的方法:string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "abc.dll");
Assembly.LoadFile
。您可以简单地调用Type t = Type.GetType("SomeType");
直接从特定路径读取DLL文件会创建问题,因此您必须提供绝对路径或尝试使用LoadFrom()
Assembly assembly = Assembly.LoadFrom(@"D:/CodeDLL.dll");
Type t= assembly.GetType("YourNamespace.YourClass");