[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<T>類別
範例如下:
[ServiceContract()] [ServiceKnownType(typeof(User))] public interface IProcessor { [OperationContract(IsOneWay = true, Action = "*")] void SendUser(MsmqMessage<User> request); }
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://dotblogsfile.blob.core.windows.net/user/yc421206/1310/201310241740255.zip
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET