您好我正在加载程序集
Assembly testAssembly = Assembly.LoadFile("abc.dll");
Type t = testAssembly.GetType("abc.dll");
但收到错误“需要绝对路径信息”,但我的dll位于同一个文件夹
答案 0 :(得分:7)
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");
答案 1 :(得分:2)
如果您的dll是.NET dll并且位于同一文件夹中,则无需调用Assembly.LoadFile
。你只需致电
Type t = Type.GetType("SomeType");
你真的想要获得'abc.dll'这个类型吗?这应该是类名,而不是程序集名称。
答案 2 :(得分:0)
从特定路径读取DLL文件会直接导致问题,因此您必须提供绝对路径,也可以尝试LoadFrom()
Assembly assembly = Assembly.LoadFrom(@"D:/CodeDLL.dll");
Type t= assembly.GetType("YourNamespace.YourClass");