x.GetType().GetProperty("Foo")
で取得するオブジェクトの実際のタイプがSystem.Reflection.PropertyInfo
ではなく、System.Reflection.RuntimePropertyInfo
であることがわかりました。System.Reflection.RuntimePropertyInfoとは何ですか、それをどのように比較しますか?
このタイプのドキュメントはmsdnや他の場所には表示されません。
私の実際の問題は、リファレンス比較の2つのプロパティから大きくなります。私はサードパーティのライブラリからプロパティを受け取り、同じタイプの.GetProperty("Foo")
で取得したプロパティと比較します。私はプロパティが同じオブジェクトであることを期待していました(デバッグ中に "Locals"ウィンドウの同じプロパティのように見えます)が、(GetHashCode
の結果が異なります)。だから、私はそれが何らかの形で、実際のタイプのプロパティオブジェクトであるSystem.Reflection.RuntimePropertyInfo
と関係していると思います。
System.Reflection.RuntimePropertyInfo
とは何ですか?それを比較する方法?通常どおりに動作しますかPropertyInfo
?
(プロパティが一致しない)私は[MCVE]まず、あなたはまだそれを理解していないかどうかを見るよりを考え出すお勧めします - (この1つはRuntimePropertyInfoについてですとして)新しい質問をするよりも、 –
@AlexeiLevenkov問題を特定することは私を助けました。私は次の質問をしています:http://stackoverflow.com/questions/36799386/how-to-compare-same-propertyinfo-with-different-reflectedtype-values – astef