【问题标题】:How does WCF turn a ServiceContract/OperationContract into a Message that can be serialized?WCF如何将ServiceContract/OperationContract变成可以序列化的Message?
【发布时间】:2010-08-04 11:55:50
【问题描述】:

我开始尝试使用 ActiveMQ(结合 ActiveMQ.NMS 绑定)来支持我们正在研究的一些跨平台 RPC 消息传递。

作为其中的一部分,我希望能够以 WCF 提供的方式定义我们的 RPC 合同 - 例如。

[ServiceContract]
public interface IUsers
{
    [OperationContract]
    IEnumerable<IUser> void GetByEmail(string email);
}

我正在考虑为 ApackeMQ.NMS.WCF 项目做出贡献以使其能够正常工作,并且我在编写自定义绑定方面有一些经验,所以我不打算这样做。

但是,我首先遇到了 WCF 运作方式的概念性问题。显然,在某种程度上,通过客户端通道上的代理对“GetByEmail”的调用必须转换为消息和响应对象,以便它们可以被序列化。我想知道这是如何工作的,以便更好地全面了解 WCF。

我找不到任何文档来说明具体是如何完成的,以及确实涉及到相当庞大的 WCF 基础结构中的哪些类。

有没有人指点?对课程的顶级解释和/或指导会很棒。

谢谢。

【问题讨论】:

    标签: c# wcf wcf-binding activemq nms


    【解决方案1】:

    在此之前有一个步骤:如何(什么格式)用于序列化?

    WCF 通过绑定进行连接,绑定的配置选择格式/协议。

    以及“如何”为每个协议传输命令?我不知道,我认为深入研究(低级)内容不会有太大帮助。

    【讨论】:

    • 在这一步之后肯定会出现什么格式(“如何”)?默认情况下在大多数绑定中使用的 DataContractSerializer 仅针对可序列化的 POCO。所以我的推论是 WCF 在底层将服务/操作契约转换为消息/响应可序列化对象,然后序列化程序可以介入?
    • WCF 委托此。它依赖于协议。绑定类以自己的方式执行此操作。你可以问 SOAP 如何序列化消息,但不能问 WCF 是如何做到的。
    • 好的,这很公平,也很有意义。你知道哪个类实际上是为标准绑定之一做这个,所以我可以反射它并看看吗?干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    相关资源
    最近更新 更多