繁体   English   中英

通过Type.getType创建类的“类型”对象

[英]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.ELE.DAL.EG ),它将起作用。

如果不检查名称空间,并验证这些类型与代码在同一程序集中! 如果它们在外部,则需要为GetType方法指定它。

假设它们在名为SharedAssembly程序SharedAssembly则需要以这种方式加载它们

thisType = Type.GetType("E.DAL.EG." + className+ ", SharedAssembly");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM