我在我的一些属性中调用泛型方法(以填充由NHibernate创建的代理类,尽管现在这并不重要)
为了做到这一点,我希望他输入属性并将其传递给一个方法,这个方法实现了它的魔力,然而其中一些属性是“嵌套的”意味着例如Address属性将具有此但Address的Country属性也有这个功能。
我似乎得到的问题是,由于Address getter正在触发Country Getter,当我调用MethodBase.GetCurrentMethod()时.ReflectedType;在我的Country属性中,它返回Address作为它的类型,尽管实际国家中有关属性的类型。
以下是一些代码段:
public virtual Country Country
{
get
{
_country = Backoffice.Library.Serialization.Reflection.GetPossiblyProxyProperty(MethodBase.GetCurrentMethod().ReflectedType, _country);
return _country;
}
set { _country = value; }
}
我对于为什么这会返回错误的Type非常无能为力,我真的希望这可能是通用的,我可以只做一个typeof(Country)但是我必须设置为我所有的财产很糟糕:(
答案 0 :(得分:2)
如果您要查找该媒体资源的返回类型,则应使用MethodInfo.ReturnType
而不是ReflectedType
...