发送强类型服务总线BrokeredMessage

时间:2018-09-07 14:12:36

标签: c# json servicebus typing

正如标题所示,我正在尝试将强类型的代理消息发送到服务总线队列。我可以使发送部分正常工作,但是在接收时会出现以下错误:

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"}

0 个答案:

没有答案