私はこれがはるかに簡単にできると思っていました。オブジェクトグラフを検索
オブジェクトグラフ内の特定のタイプのインスタンスをすべて取得するには、最も効率的な方法が必要です。
私は、このタイプのインスタンスを探してオブジェクトのプロパティを調べるためにリフレクションを使い始めました。その後、他のすべての複雑なタイプとコレクションを続けます。それは、過去にやるべきことを誰かが持っていたはずのものと同様に、多くの仕事のように感じ始めています。だから私は、仕事とテストの負荷に自分自身をコミットする前に、私はフレームワークの中で迅速な勝利を逃しているか、ライブラリのこの種の作業を行うための任意の提言があるかどうか尋ねると思った。
なぜ私はこれをしたいですか? 私は、他のものが派生した型を持っています。このタイプは一般的なプロパティを持ち、より重要なのはエラーを特定する特定のエラーHasErrorsです。このタイプはモデルの構築に使用されます。それぞれのモデルは異なっています。いくつかのシンプルで浅いいくつかの複雑で深い。各複合ノードは、一般的なルールとして、この型から派生するコレクション型またはカスタム型になります。これらのすべてのHasErrorsプロパティをチェックするインスタンスをすばやくトラバースする必要があります。 trueのインスタンスは、モデルにエラーがあることを示します。
Model
CustomerId (int)
CustomerDetails : MyType
Name (string)
DoB (DateTime)
Addresses (Collection<Address : MyType>)
[Line1 (string)
Line2 (string)]
うまくいけば、この種の例です。
自分のタイプですか?あなた自身の複合構造ですか? –
任意のタイプの任意のグラフをトラバースできるようにする場合は、これは作業負荷です(他のものと循環参照を避けることを含む)。ここでの本当の問題は、再定義する方法、タスクを絞り込んで簡単にすることです。 – mfeingold
両方の点に@Martinはい。インスタンスでこの関数を実行する必要がある基本クラスメソッドがあります。それは私が探しているタイプのインスタンスプロパティとそのプロパティです。 – voiddog