C# 代理类没有equals方法WCF

C# 代理类没有equals方法WCF,c#,wcf-client,datacontract,C#,Wcf Client,Datacontract,我的Web服务中有一个类作为DataContract,它继承自IEquatable。 但是我的siverlight webservice生成的代理类没有相等的。有人能告诉我为什么会发生这种情况吗?有没有办法做到这一点?WCF只序列化数据契约中的数据,没有方法或行为 这是默认的,也是设计的-毕竟,WCF是一个消息传递系统-您只传递序列化消息 WCF不是一个“远程过程调用”或“对象远程处理”系统,因此,在创建代理时,它将确保连线上的数据签名是相同的(通过XML序列化),这就是它所做的一切 要实现您的

我的Web服务中有一个类作为DataContract,它继承自IEquatable。
但是我的siverlight webservice生成的代理类没有相等的。有人能告诉我为什么会发生这种情况吗?有没有办法做到这一点?

WCF只序列化数据契约中的数据,没有方法或行为

这是默认的,也是设计的-毕竟,WCF是一个消息传递系统-您只传递序列化消息

WCF不是一个“远程过程调用”或“对象远程处理”系统,因此,在创建代理时,它将确保连线上的数据签名是相同的(通过XML序列化),这就是它所做的一切

要实现您的目标,唯一的选择是:

  • 创建包含服务和数据协定类的单独类库程序集
  • 从服务器端服务代码和客户端Silverlight应用程序中引用该公共契约程序集
  • 现在创建服务引用时,VisualStudio将重用程序集中的公共共享类,而不是重新创建代理数据类(并在过程中丢失方法)

@Madhan:使用我在回答中提到的共享公共程序集方法(在对我原始回答的更新中),但您需要将这些文件放在以Silverlight为目标的项目中,因为Silverlight无法引用.Net程序集。因此,您将有两个项目引用相同的文件,但目标不同。