【问题标题】:Proxy class not having equals method WCF代理类没有equals方法WCF
【发布时间】:2011-02-16 12:02:25
【问题描述】:

我的 web 服务中有一个 DataContract 类,它继承自 IEquatable。 但是我的 siverlight webservice 生成的代理类没有 equals。谁能告诉我为什么会这样?有没有办法做到这一点?

【问题讨论】:

    标签: c# wcf-client datacontract


    【解决方案1】:

    WCF 序列化仅数据来自数据协定 - 没有方法或行为。

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

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

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

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

    【讨论】:

    • @Madhan:使用我在回答中提到的共享通用组装方法(在更新我的原始回复中)
    • 但是您需要将这些文件放在面向 Silverlight 的项目中,因为 Silverlight 无法引用 .Net 程序集。因此,您将有两个项目引用相同的文件但目标不同。
    猜你喜欢
    • 2015-09-09
    • 2013-03-20
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2021-12-19
    相关资源
    最近更新 更多