【问题标题】:Get nested delegate type ref. from inside a generic class获取嵌套的委托类型参考。从泛型类内部
【发布时间】:2010-07-13 13:01:07
【问题描述】:

我尝试使用

从 DomainDB 类中检索“预处理”的类型
Type.GetType("DomainDBManager.DomainDB`1[System.String]+PreProcess") 

但这会返回 null。有没有使用 Type.GetType 获取公共字段“PreProcess”?

命名空间域数据库管理器 { 公共类 DomainDB { 公共动作 预处理; } }

【问题讨论】:

    标签: c# generics


    【解决方案1】:

    您当前正在尝试按名称获取 type - PreProcessDomainDB<T> 类型的 字段,因此 Type.GetType 不会去工作。您需要先获取类型,然后从中获取字段:

    Type type = Type.GetType("DomainDBManager.DomainDB`1[System.String]");
    FieldInfo field = type.GetField("PreProcess");
    Type fieldType = field.FieldType;
    

    【讨论】:

    • 是的,没错。我的要求是在泛型类中获取公共委托的类型。
    • @AJP:当你说一个不太清楚的“公共委托”时......如果它是一个委托类型声明,你的原始代码就可以了。但是,它是一个 field,其类型恰好是委托类型。它是委托类型的事实实际上是无关紧要的。
    • 我的意思是 Field,很抱歉造成混乱。您提供的解决方案效果很好。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多