2011-01-27 5 views
1

私は不動産の彼のタイプが欲しい、これを行うと、メソッドにこれを渡すために(これは今重要ではありませんが、NHibernateはで作られたプロキシクラスを埋めるために)私の性質の一部では一般的な方法MethodBase.GetCurrentMethod()を通じてプロパティタイプを取得できません。ReflectedType;

を呼んでいますこれは魔法ですが、これらのプロパティのいくつかは「入れ子になっています」という意味です。たとえばAddressプロパティにはこれがありますが、AddressのCountryプロパティにもこの機能があります。

私が問題になっているように見えるのは、MethodBase.GetCurrentMethod()を呼び出すとAddressゲッターがカントリーゲッターをトリガーしているからです。私の国のプロパティでは、それは型としてアドレスを返します。実際には、問題のプロパティの型は実際には国にあります。ここで

は、いくつかのコードスニペットです:

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

ええ、私はthaを考え出した何らかの理由で、何らかの理由でMethodBaseオブジェクトを返します。これをMethodInfoにキャストすれば、ReturnTypeプロパティを取得できます。これはMethodBaseにはありませんが、私にはそれがあります。 –

関連する問題