我正在编写一些代码来动态创建一些对象(未知类型),我很好奇为什么 Activator 能够生成该类型,但 Assembly 不能。这是一个代码示例:
class Program
{
static void Main(string[] args)
{
Type t = typeof (int);
object notAnInt = Assembly.GetExecutingAssembly().CreateInstance(t.FullName);//does not work
object actualInt = Activator.CreateInstance(t);//works
Console.WriteLine(notAnInt);
Console.WriteLine(actualInt);
}
}
我的问题是,当我想象它们都应该能够创建 int 的实例时,为什么这两个行为会有所不同?