2011-01-27 44 views
1

我在我的一些屬性中調用泛型方法(以填充由NHibernate製作的代理類,雖然現在並不重要)通過MethodBase.GetCurrentMethod()獲取屬性類型的問題。ReflectedType;

要做到這一點,我想要他的屬性類型並將其傳遞給方法這是神奇的,但其中一些屬性是「嵌套」的意思,例如地址屬性會有這個,但地址的國家屬性也有這個功能。

我似乎越來越感到問題是由於地址getter觸發Country Getter,所以當我調用MethodBase.GetCurrentMethod()。ReflectedType;在我的國家/地區屬性中,它返回地址,因爲它的類型,事實上在實際的國家/地區中有問題的屬性的類型。

下面是一些代碼片段:

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

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

我,爲什麼這會返回錯誤類型是很笨,我真的想這是因爲可能作爲通用的,我可以OFC只是做一個typeof運算(國家),但後來我不得不設置爲我所有的特性,這很爛:(

回答

2

如果你正在尋找物業的返回類型,你應該使用MethodInfo.ReturnType,而不是ReflectedType ...

+0

是的,我想到了在發佈後約10分鐘,出於某種原因,它返回一個MethodBase對象,如果我將它轉換爲MethodInfo將允許我獲得ReturnType屬性。它在MethodBase上沒有這個,儘管這通過我。 – 2011-01-27 09:27:42