我有一個服務合同:構造邏輯在服務合同
[DataContract]
public class Something
{
[DataMember]
public MyEnum SomeEnumMember {get;set;}
}
一些我們的開發人員都在做這樣的事情:
public Something()
{
SomeEnumMember = MyEnum.SecondEnumValue;
}
我認爲構造邏輯不屬於在我們的服務合同中,因爲如果您使用「添加服務引用...」並且正在使用由Visual Studio生成的代理類,那麼該代碼將不起作用。
在內部,我們使用Castle DynamicProxy,如here所示。但是,我寧願我們的開發人員避免在服務合同類中使用構造函數邏輯,以防因某種原因無法使用DynamicProxy。
所以:構造函數邏輯是否在這些類中佔有一席之地,或者作爲最佳實踐,我們應該將它們看作更多的DTO並在沒有行爲的情況下實現它們?
我可能是錯的,但是當反序列化對象時,如果傳入的XML(或其他內容)沒有屬性值,那麼它不會修改它的原始值。 (另一方面,我可能是錯的,並且將始終分配類型的默認值)如果我是正確的,那麼在構造函數中分配值可以設置默認值,如果沒有明確提供。除此之外,我沒有看到一個好的情況下它的頭頂。如果其目的是嚴格地在域之間傳遞信息,我認爲在課堂上不應該有邏輯/方法。 –
謝謝。這正是我的思路:「我認爲邏輯/方法不應該在課堂上,如果它的目的是嚴格地在域之間傳遞信息」 –
我們今天早上進行了一些測試,並且這些枚舉默認爲第一個成員 - - 0,正如所料 - 儘管我們已經在構造函數中將它初始化爲其他東西。 –