[C#.NET][WCF] 实践 单向 MSMQ @self-host for MsmqIntegrationBinding
MsmqIntegrationBinding 是 WCF 提供的另一种 MSMQ 格式,它与 NetMsmq 的格式有很大的不同,基本上不能混用
费了点时间找出合约规则,其余的用法就跟上一篇 http://www.dotblogs.com.tw/yc421206/archive/2013/10/23/125276.aspx 一样了,不浪费太多篇幅,这里只记载一些重点,有需要的人直接拉范例玩玩看
合约规范
1.要使用 ServiceKnownType
2.方法要定义 IsOneWay / Action 及 void
3.方法参数要使用 MsmqMessage
范例如下:
[ServiceContract()] [ServiceKnownType(typeof(User))] public interface IProcessor { [OperationContract(IsOneWay = true, Action = "*")] void SendUser(MsmqMessagerequest); }
SerializationFormat
因 MsmqIntegrationBinding 是透过序列化在处理数据交换
所以数据类要定义正确的序列化特性,以本篇是以 Xml 为主
[DataContract] [Serializable] public class User { [DataMember] public Guid ID { get; set; } [DataMember] public string Name { get; set; } [DataMember] public int Age { get; set; } public override string ToString() { return string.Format("ID: {0}, Name: {1}, Age: {2}", this.ID, this.Name, this.Age); } }
端点位置
以 msmq.formatname: 为开头
msmq.formatname:DIRECT=OS:.private$myQueue
文章出自:http://www.dotblogs.com.tw/yc421206/archive/2013/10/24/125478.aspx
饭粒下载:https://az787680.vo.msecnd.net/user/yc421206/1310/201310241740255.zip
若有谬误,烦请告知,新手发帖请多包涵
2010~2017 C# 第四季
原文:大专栏 [C#.NET][WCF] 实践 单向 MSMQ @self-host for MsmqIntegrationBinding