как использовать .net view в очереди проводника - PullRequest
0 голосов
/ 26 июня 2018

Наша компания использует Queue Explorer 4.0 pro от cogin, и я искал по всему их сайту, и единственное, что я могу найти при использовании их .net-представления, - это небольшая ошибка при просмотре сообщения, анализируемого с помощью .net-сборки. : сообщение в блоге

так, например, тело моего сообщения таково:

<?xml version="1.0"?>
<CreateAuditLogEntry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.net/Phone.Messages">
    <SurveyId>12345</SurveyId>
    <AuditEventId>704</AuditEventId>
    <EventDateTime>2018-06-08T13:21:07.6647304Z</EventDateTime>
</CreateAuditLogEntry>

и я попытался использовать сборку, которую мы используем NServicebus для отправки указанного сообщения. У него не было SerializableAttribute, поэтому я решил, что просто сделаю свою собственную сборку с тем же пространством имен и попробую добавить все то же самое:

namespace Phone.Messages
{
    [System.Serializable]
    public class CreateAuditLogEntry
    {
        public long SurveyId { get; set; }
        public int AuditEventId { get; set; }
        public System.DateTime EventDateTime { get; set; }
    }
}

Я компилирую это и указываю на него Queue Explorer, и он говорит мне, что он все еще не может десериализовать объект: Error: Cannot deserialize the message passed as an argument. Cannot recognize the serialization format. Кто-нибудь использовал это и заставил его успешно работать?

1 Ответ

0 голосов
/ 27 июня 2018

Эта часть xmlns кажется здесь проблемой. Ваш пример работает, когда это пространство имен указано через атрибут XmlRoot:

[XmlRoot(Namespace="http://tempuri.net/Phone.Messages")]
public class CreateAuditLogEntry
{
    public long SurveyId { get; set; }
    public int AuditEventId { get; set; }
    public System.DateTime EventDateTime { get; set; }
}

Btw. QueueExplorer динамически загружает сборки, указанные для представлений .Net, вам не нужно перезапускать его, если вы перестраиваете и создаете новую dll / exe.

...