Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 扩展WCF DataContract只是为了在GUI层中使用它?_Winforms_Wcf_User Interface_Data Binding_Datacontract - Fatal编程技术网

Winforms 扩展WCF DataContract只是为了在GUI层中使用它?

Winforms 扩展WCF DataContract只是为了在GUI层中使用它?,winforms,wcf,user-interface,data-binding,datacontract,Winforms,Wcf,User Interface,Data Binding,Datacontract,这有效吗?还是有味道? 我想做的是: 拥有一个datacontract对象,它拥有一个友好的对象树,可以由服务层保存,而GUI不必担心它。 在GUI级别,我大量使用数据绑定,还具有一些特定于GUI的逻辑,如克隆、标记为已删除、基本验证、INotifyPropertyChanged等。 我想扩展这个DataContract类,这样我只需添加BindingList或特定的GUI逻辑,然后发送这个对象,而无需将其转换到WCF服务层 也许组合比扩展更好? 有什么想法吗?我不会扩展DataContract

这有效吗?还是有味道? 我想做的是:

拥有一个datacontract对象,它拥有一个友好的对象树,可以由服务层保存,而GUI不必担心它。 在GUI级别,我大量使用数据绑定,还具有一些特定于GUI的逻辑,如克隆、标记为已删除、基本验证、INotifyPropertyChanged等。 我想扩展这个DataContract类,这样我只需添加BindingList或特定的GUI逻辑,然后发送这个对象,而无需将其转换到WCF服务层

也许组合比扩展更好?
有什么想法吗?

我不会扩展DataContract类。我将创建一个Facade,它添加了我需要的额外功能,还可以透明地处理通过DataContract进行的通信。

我刚刚使用composition完成了一些测试,这样我可以绑定到原语值,并让.net的数据绑定为我更新该对象,在调用WCF服务时,我不需要做任何翻译,因为我已经准备好了要发送的合同。听起来还好吗?@Sebastian-听起来你应该没事。我不确定它在未来会有多灵活…但它至少会让你走。