在一些情况下,Assembly.GetName().Name 可能会返回 null。比如当程序集名中包含特殊字符或空格时,就会出现该问题。解决办法是使用 Assembly.GetName().FullName 代替 Assembly.GetName().Name,因为 FullName 包含程序集的所有信息,包括名称和版本号等。以下是代码示例:
using System;
using System.Reflection;
public class Program
{
public static void Main()
{
// 加载一个包含空格的程序集
Assembly assembly = Assembly.Load("My Assembly");
// 通过 FullName 获取程序集名称
string name = assembly.GetName().FullName;
Console.WriteLine(name);
}
}
上一篇:Assembly.GetExecutingAssembly().GetManifestResourceStream无法加载流。
下一篇:Assembly.GetTypes()会因为一个受保护的抽象方法而抛出ReflectionTypeLoadException异常。