假设方案:
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;}
}
问题是从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
将始终是特定接口实现的子级,因此反射是一种可行但不理想的解决方案。