私は現在、ラッパークラスで1つずつ手動で設定することなく、ラッパークラスがラップしているもののプロパティを公開する方法を理解しようとしています。これが良いデザインの選択なのか、それとも完全に見当違いで、これを行うことで非常に悪い場所に行っているのかを理解しようとしています.
また、すでにラッパークラスが何かを継承しています...
以下のコード例 (偽のオブジェクトなので、読み込まないでください):
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 オブジェクトとフレームワークは、必要なことを行うためにそのプロパティを取得できません。
次の操作を行わずに、ラップされた Car オブジェクトのプロパティを CarWrapper の「トップレベル」で公開する方法はありますか?
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;
}
}
ご不明な点がございましたら、ご不明な点がございましたら、お気軽にお問い合わせください。
ありがとう!