我對創建一個不可修改屬性的不可變類以及從其派生的可變類感興趣。這些對象將是表示數據庫記錄的簡單數據對象,因此它們只有屬性的不可變值。任何方式來從C#中的不可變對象派生可變對象?
我的目標是通過基於數據庫值設置屬性,但將這些對象的只讀版本傳回應用程序,讓我的數據訪問層正常創建對象的可變版本。 (如果開發者真的想要,代碼可以明確地將不可變對象轉換回可變對象的事實,我很好)。
我可以這樣做uglily(是一個單詞嗎?),使用方法getter和setter和對於該可變類公共新二傳:
public class ImmutableClient {
private int _clientId;
public int getClientId() { return _clientId; }
protected void setClientId(int clientId) { _clientId = clientId; }
}
public class Client : ImmutableClient {
public new void setClientId(int clientId) { base.setClientId(clientId); }
}
我寧願儘可能使用自動性能 - 他們是在調試的時候好多了。除此之外,我並不關心代碼的外觀,因爲它只是全部來自代碼生成器,並且永遠不會被查看。
任何想法?
這很完美 - 我的思維如此枯燥,我甚至沒有考慮過接口,但這對我的場景絕對有用。非常感謝你。 – 2009-11-19 22:06:06