Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
C# WCF如何将ServiceContract/OperationContract转换为可序列化的消息?_C#_Wcf_Wcf Binding_Activemq_Nms - Fatal编程技术网

C# WCF如何将ServiceContract/OperationContract转换为可序列化的消息?

C# WCF如何将ServiceContract/OperationContract转换为可序列化的消息?,c#,wcf,wcf-binding,activemq,nms,C#,Wcf,Wcf Binding,Activemq,Nms,我开始尝试使用ActiveMQ(结合ActiveMQ.NMS绑定)来支持我们正在研究的跨平台RPC消息传递 作为其中的一部分,我希望能够以WCF提供的方式定义我们的RPC合同-例如 [ServiceContract] public interface IUsers { [OperationContract] IEnumerable<IUser> void GetByEmail(string email); } [服务合同] 公共接口用户 { [经营合同] IEnum

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

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

[ServiceContract]
public interface IUsers
{
    [OperationContract]
    IEnumerable<IUser> void GetByEmail(string email);
}
[服务合同]
公共接口用户
{
[经营合同]
IEnumerable void GetByEmail(字符串电子邮件);
}
我正在考虑为ApackeMQ.NMS.WCF项目做出贡献,以使其能够工作,并且我在编写自定义绑定方面有一些经验,因此我不打算这样做

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

我找不到任何文档,确切地说是如何做到这一点的,以及在相当庞大的WCF基础设施中涉及哪些类

有人有什么建议吗?一个顶级的解释和/或对课程的指导将是精彩的


谢谢。

在这之前有一个步骤:如何(使用什么格式)进行序列化

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


以及如何为每个协议传输命令?我不知道,我也不认为深入研究这些(低级的)东西会很有帮助。

这一步之后肯定会采用什么格式(“如何”)?默认情况下,大多数绑定中使用的DataContractSerializer只针对可序列化的POCO。因此,我的推断是,WCF在后台将服务/操作契约转换为消息/响应可序列化的对象,然后序列化程序可以介入?WCF委托这一点。它依赖于协议。绑定类以各自的方式执行此操作。你可以问SOAP是如何序列化消息的,但不能问WCF是如何实现的。好吧,这很公平,也很有意义。你知道哪个类实际上在为一个标准绑定做这个,这样我就可以反射它并看一看了吗?干杯