Assembly.LoadFile()后assembly.GetType() interface为null
时间: 2024-12-15 18:27:27 浏览: 8
`Assembly.LoadFile()` 方法用于加载指定的 DLL 文件并创建对应的 `Assembly` 对象。如果在尝试加载时遇到问题,可能会导致 `assembly.GetType()` 返回 `null`,特别是当文件不存在或者名称不匹配时[^1]。
例如,假设我们有一个名为 "ClassLibrary2" 的 DLL 文件,但程序试图通过错误的文件路径或名称来加载它:
```csharp
string filePath = "InvalidFilePath/ClassLibrary2.dll"; // 假设此路径不存在或文件名错误
Assembly assembly = Assembly.LoadFile(filePath);
Type type = assembly?.GetType("ClassLibrary2.Class1"); // 使用 null-coalescing 运算符防止因 LoadFile 失败而抛出异常
if (type != null)
{
IClass1 instance = (IClass1)Activator.CreateInstance(type);
instance.Print();
}
else
{
Console.WriteLine($"Failed to load the assembly: {filePath}");
}
```
在这个例子中,由于 `LoadFile` 失败,`type` 变量会为 `null`,因此无法创建接口实例。
阅读全文