我正在使用C#将消息写入消息队列,如下所示:
queue.Send(new Message("message"));
Run Code Online (Sandbox Code Playgroud)
我正在尝试阅读如下消息:
Messages messages = queue.GetAllMessages();
foreach(Message m in messages)
{
String message = m.Body;
//do something with string
}
Run Code Online (Sandbox Code Playgroud)
但是我收到一条错误消息,上面写着:"找不到能够读取此消息的格式化程序."
我究竟做错了什么?
mac*_*ojw 36
我通过在每条消息中添加格式化程序来解决问题.将格式化程序添加到队列不起作用.
Messages messages = queue.GetAllMessages();
foreach(Message m in messages)
{
m.Formatter = new XmlMessageFormatter(new String[] { "System.String,mscorlib" });
String message = m.Body;
//do something with string
}
Run Code Online (Sandbox Code Playgroud)
pri*_*e23 25
或者你可以使用
message.Formatter =
new System.Messaging.XmlMessageFormatter(new Type[1] { typeof(string) });
Run Code Online (Sandbox Code Playgroud)
您可以尝试阅读消息的正文流而不是正文,如下所示:
StreamReader sr = new StreamReader(m.BodyStream);
string messageBody = "";
while (sr.Peek() >= 0)
{
messageBody += sr.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)