gpt4 book ai didi

c# - Microsoft MessageQueue Formatter 属性始终为空

转载 作者:太空宇宙 更新时间:2023-11-03 21:52:00 26 4
gpt4 key购买 nike

我在使用基本的 Microsoft Message Queue 实现时遇到以下问题:

在读取端,消息的 Formatter 属性始终为 null,无论我在发送端输入什么。

发送代码:

System.Messaging.Message m = new System.Messaging.Message("string to send");
m.Formatter = new XmlMessageFormatter( new Type[1] { typeof(string) } );
queue.Send(m, "label");

接收码:

MessageEnumerator enumerator = queue.GetMessageEnumerator2();
while (enumerator.MoveNext())
{
Message m = enumerator.RemoveCurrent();
Console.WriteLine("MSQ: " + m.Label);

Console.WriteLine("Formatter: " + m.Formatter.GetType().ToString()); // crash because formatter property is null

Console.WriteLine("Body: " + m.Body); //also crashes since formatter is null
}

由于 Formatter 为空,我也无法获得我最需要的 m.Body

最佳答案

使用 MessageQueue.Formatter 属性反序列化消息。所以必须在接收代码中初始化MessageQueue.Formatter属性(queue.Formatter):

((XmlMessageFormatter)queue.Formatter).TargetTypes = new Type[1] { typeof(string) };

关于c# - Microsoft MessageQueue Formatter 属性始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com