【问题标题】:Problem getting property type through MethodBase.GetCurrentMethod().ReflectedType;通过 MethodBase.GetCurrentMethod().ReflectedType 获取属性类型时出现问题;
【发布时间】:2011-06-16 09:57:31
【问题描述】:

我在我的一些属性中调用了一个泛型方法(以填充 NHibernate 制作的代理类,尽管现在这并不重要)

为此,我希望他键入属性并将其传递给具有魔力的方法,但是其中一些属性是“嵌套”的,例如,地址属性将具有此属性,但地址的国家/地区属性也有这个功能。

我似乎遇到的问题是,当我调用 MethodBase.GetCurrentMethod().ReflectedType; 时,地址获取器正在触发国家获取器。在我的 Country 属性中,它返回 Address 作为它的类型,尽管实际 Country 中的相关属性的类型。

这里有一些代码sn-ps:

public virtual Country Country
        {
            get
            {
                _country = Backoffice.Library.Serialization.Reflection.GetPossiblyProxyProperty(MethodBase.GetCurrentMethod().ReflectedType, _country);

                return _country;
            }
            set { _country = value; }
        }

我对为什么这会返回错误的类型一无所知,我真的希望它尽可能通用,我可以只做一个 typeof(Country) 但我必须将它设置为我所有的财产都很糟糕:(

【问题讨论】:

    标签: .net reflection types properties


    【解决方案1】:

    如果您正在寻找属性的返回类型,您应该使用MethodInfo.ReturnType 而不是ReflectedType...

    【讨论】:

    • 是的,我在发布大约 10 分钟后发现,由于某种原因,它返回了一个 MethodBase 对象,如果我将它转换为 MethodInfo 将允许我获得 ReturnType 属性。它在 MethodBase 上没有这个,尽管我把它关掉了。
    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 2020-01-20
    • 1970-01-01
    • 2020-06-06
    • 2011-07-04
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多