我正在尝试使用反射创建实体框架对象的实例:
var type = Type.GetType("MyAssembly.MyEntityNamespace.MyEntity");
var target = Activator.CreateInstance(t);
我以前使用过此代码,它在“常规”对象上一直运行良好,但是当我在此解决方案中的 EF 对象上使用它时,GetType()
返回 null。我的 EF 模型在其自己的单独项目中,并且此代码在其自己的单元测试程序集中执行。测试程序集确实引用了 EF 程序集,并且 EF 程序集将其放入 /bin。
我可以正常创建 EF 类的实例,但即使这种反射尝试也不起作用:
var item = new MyEntity(); //works fine
Type.GetType(item.GetType().FullName); //null
Type.GetType(item.GetType().Name); //null
我不确定这是 EF 的事情还是项目参考的事情。当我可以在没有反射的情况下如此轻松地创建对象时,为什么我不能使用简单的反射来创建该对象的新实例?