[英]Creating “Type” object of a class by Type.getType
我被困在这里。 在我的vs解决方案中,我们有10个不同的项目。 DAL包含2个EF 6.0对象,例如EG和EL。 我有一个API项目。 在其中,我具有如下功能,我正在尝试返回EF类的属性:
public IEnumerable<PropertyInfo> GetGetProperties(string className, string instanceType)
{
Type thisType;
if (instanceType.Contains("G"))
{
thisType = Type.GetType("E.DAL.EG." + className);
}
else
{
thisType = Type.GetType("E.DAL.EL." + className);
}
return thisType.GetType().GetProperties();
}
但是每次“ thisType”返回null。 这是因为AssemblyInformation吗? 如果是这样,正确的代码是什么。 我有字符串的Assembly的全限定名。 谢谢-阿尼班
问题是最后一行。 您正在对类型Type
(变量thisType
)调用.GetType()
,这将返回RuntimeType
而不是您的类型。 最后一行应该是
return thisType.GetProperties();
并且如果您的名称空间正确,那么您在项目中确实有那些名称空间( E.DAL.EL
和E.DAL.EG
),它将起作用。
如果不检查名称空间,并验证这些类型与代码在同一程序集中! 如果它们在外部,则需要为GetType
方法指定它。
假设它们在名为SharedAssembly
程序SharedAssembly
则需要以这种方式加载它们
thisType = Type.GetType("E.DAL.EG." + className+ ", SharedAssembly");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.