Как использовать.net view в очереди проводника
Наша компания использует 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 ответ
Эта часть 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.