たとえば、テキストを持つMSMQでメッセージを作成したいと思います
<order><data id="5" color="blue"/></order>
これは標準の XML です。これまでのところ、シリアライズ可能なクラスを作成しました
[Serializable]
public class order
string id
string color
BinaryFormatter を使用しています。message.BodyStream を確認すると、そこにあるはずのない文字 ( 00,01,FF ) がいくつかあるため、このメッセージをエラーなしで受信できません。
この作業は単純そうで、テキストを入れるだけです
<order><data id="5" color="blue"/></order>
msmq に。
重要なコード全体をマイニングします:
public static void Send()
{
using (message = new Message())
{
request req = new request("1", "blue");
message.Recoverable = true;
message.Body = req.ToString();
message.Formatter = new BinaryMessageFormatter();
using (msmq = new MessageQueue(@".\Private$\testrfid"))
{
msmq.Formatter = new BinaryMessageFormatter();
msmq.Send(message, MessageQueueTransactionType.None);
}
}
}
[Serializable]
public class request
{
private readonly string _order;
private readonly string _color;
public request(string order, string color)
{
_order = order;
_color = color;
}
public request()
{ }
public string Order
{
get { return _order; }
}
public string Color
{
get { return _color; }
}
public override string ToString()
{
return string.Format(@"<request> <job order = ""{0}"" color = ""{1}"" /> </request>",_order,_color);
}
}