Как видно из заголовка, я пытаюсь отправить сообщение строго типизированного посредника в очередь служебной шины. Я могу заставить отправленную часть работать, но при получении я получаю следующую ошибку:
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"}