我已经使用Visual Studio的添加服务引用功能来添加服务(实际上它是一个工作流服务,在WF4 RC1中创建,但我认为这没有任何区别),并且它还添加了服务使用的DataContracts.起初这看起来很好,因为我在DataContracts中所拥有的只是属性,没有实现.但是现在我在一个数据协定的构造函数中添加了代码,初始化创建了一个暴露其他DC列表的属性的实例,当我通过VS(2010 RC1)更新服务引用时,实现没有更新.
我该怎么办?我应该使用我的DC而不是VS创建的DC,还是应该使用VS创建的?我注意到VS生成的DC中的属性包含一些额外的逻辑,用于检查setter中的相等性,并且它们也实现了一些接口(如IExtensibleDataObject和INotifyPropertyChanged),这可能会在将来得到方便(我不是在WCF知识渊博).
感谢您的时间,Avi
是的,这就是它的工作方式 - 当你有一个独立的自主服务时,如果你考虑它,它就是唯一可行的方式.
如果您控制电线的两端,例如您同时编写服务和客户端,您当然可以做更多的事情:
您可以将所有服务和数据协定放入单独的程序集中MyContracts,然后在服务和客户端添加对该程序集的引用
当您这样做时,Visual Studio将不会重新创建它在引用的程序集中找到的那些类型,但它只会使用它们
但是你需要非常小心:数据契约应该只包含数据 - 从来没有任何行为!所以要特别注意不要将任何基于行为的东西放入DataContracts.在WCF中客户端和服务之间传递的消息是纯文本的序列化消息 - 您无法在两者之间传达任何代码,真的 - 记住这一点!
| 归档时间: |
|
| 查看次数: |
3022 次 |
| 最近记录: |