正如标题所示,我正在尝试将强类型的代理消息发送到服务总线队列。我可以使发送部分正常工作,但是在接收时会出现以下错误:
Expecting element 'LogEntry' from namespace 'http://schemas.datacontract.org/2004/07/Admiral.Components.Instrumentation.Logging'.. Encountered 'Element' with name 'string', namespace 'http://schemas.microsoft.com/2003/10/Serialization/'.
我正在像这样发送部分:
LogEntry errorEvent = new Admiral.Components.Instrumentation.Logging.LogEntry
{
MachineName = Environment.MachineName,
AppDomainName = entry.Source,
Message = entry.Message
};
var message = JsonConvert.SerializeObject(errorEvent);
queueClient.Send(brokeredMessage);
在接收端,我正在做
errorMessage.GetBody<AdmiralLogging.LogEntry>();
您看到的合同不在我的控制范围内,因此无法添加DataContract属性(我已经读过这是一种解决方案)。
从我得到的异常看来,我正在发送的内容没有正确键入,这是有道理的,但是我不知道如何发送键入的消息。
发送的消息如下:
{"Message":"This is a message","MachineName":"DESKTOP-1L22TCS","AppDomainName":"CompareNow Lookup Service"}