我目前正在尝试弄清楚如何让包装类公开它所包装的任何内容的属性,而不必在包装类中手动设置它们。我一直试图弄清楚这是否是一个好的设计选择,或者我是否完全被误导并通过这样做进入一个非常糟糕的地方™。
我也已经让我的包装类继承了一些东西......
下面的示例代码(假对象,请不要读入它们):
public class Car {
public String Name { get; set; }
public String Status { get; set; }
public String Type { get; set; }
public Car(takes params) {
// makes car!
}
}
public class CarWrapper : OtherAutomotiveRelatedThing {
public Car car;
public CarWrapper(Car c) {
car = c;
}
}
public class OtherAutomotiveRelatedThing {
public String Property1 { get; protected set; }
public String Property2 { get; protected set; }
}
我在包装器对象上使用继承,因为我无法修改基础 Car 类,它需要其他汽车事物的属性。多个其他类也继承自 OtherAutomotiveRelatedThing。
我将 CarWrapper 对象的列表作为 Json 返回(因为我正在构建一个 Web 应用程序),并且包装器对象给我带来了问题。当转换/转换为 Json 时,列表中的 CarWrapper 对象都包含另一个嵌套对象 - Car 对象和我正在使用的框架无法获取其属性来满足其需要。
有没有办法在 CarWrapper 的“顶层”公开包装的 Car 对象的属性,而无需执行以下操作:
public class CarWrapper : OtherAutomotiveRelatedThing {
public Car car;
public String Name { get; private set; }
public String Status { get; private set; }
public String Type { get; private set; }
public CarWrapper(Car c) {
car = c;
this.Name = c.Name;
this.Status = c.Status;
this.Type = c.Type;
}
}
如果我不清楚,如果您有任何问题或需要/想要更多信息,请告诉我。
谢谢!