スキームを仮定すると:
class ComplexProperty
{
string PropertyName {get; set;}
string Description {get; set;}
string GetParentName(); // How can this be implemented?
}
class Parent
{
string ParentName {get; set;}
ComplexProperty Property {get; set;}
}
問題は、 内から ParentName を取得することComplexProperty
です。
私が思いついた最善の解決策は、Parent のコンストラクターを使用してプロパティを初期化することですが、これはバグが発生しやすく、別の場所からプロパティを設定すると失敗します。
例えば:
class Parent
{
public Parent()
{
ComplexProperty = new ComplexProperty(this); // Store an instance of the parent inside the property
}
string ParentName {get; set;}
ComplexProperty Property {get; set;}
}
これについてのアイデアはありますか?この種のアーキテクチャのベスト プラクティスはありますか? ComplexProperty
は常に特定のインターフェイス実装の子になるため、リフレクションは実行可能ですが、望ましい解決策ではないことに注意してください。