【发布时间】:2018-03-05 20:27:25
【问题描述】:
我想我缺乏了解,到底发生了什么: 用户可以输入程序集的路径和对象类型,然后我尝试创建它的实例。
我的做法:
Assembly a = Assembly.LoadFile(txtAssemblyPath.Text);
Type myType = a.GetTypes().ToList().FirstOrDefault(f => f.Name == txtObjectName.Text);
var obj = Activator.CreateInstance<myType>();
var obj2 =(myType) Activator.CreateInstance(myType);
问题在于对象本身的创建。似乎 myType 没有作为 Type 受到威胁。在这个例子中:Creating generic variables from a type - How? Or use Activator.CreateInstance() with properties { } instead of parameters ( )?
他们只是得到一个对象,所以我猜这不是同一个案例。我根本不明白: CreateInstance(Type) 有效,但带有 Type 的 CreateInstance 无效,但 T 和 Type 应该相同:System.Type。
提前感谢您的澄清。
马蒂亚斯
【问题讨论】:
标签: c#