如何在队列资源管理器中使用 .net 视图

how to use .net view in queue explorer

我们公司使用 cogin 的 Queue Explorer 4.0 pro,我一直在他们的网站上搜索,在使用他们的 .net 视图时我唯一能找到的是关于查看使用 .网络程序集:blog post

例如,我的消息正文是这样的:

<?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 使用的程序集发送说 message.It 没有 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; }
    }
}

我编译它并将队列资源管理器指向它,它告诉我它仍然无法反序列化对象:Error: Cannot deserialize the message passed as an argument. Cannot recognize the serialization format.有没有人使用过它并使其成功运行?

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

顺便说一句。 QueueExplorer 动态加载为 .Net 视图指定的程序集,如果您重建并创建新的 dll/exe.

,则不必重新启动它