c# - 使用 JSON 时 NServiceBus 处理程序出现空消息

标签 c# xml json nservicebus

我遇到了 NServiceBus 4.4.2 的问题,这让我很吃力。我在 MVC 应用程序中自行托管 NSB。该实例被放入 Autofac 容器中并注入(inject)到 Controller 中。到目前为止,还不错。

使用 SendLocal(命令)发送消息按预期工作。该消息以 JSON 形式出现在 MSMQ 中,因为我已将 NSB 配置为这样做。

现在,我的消息处理程序被调用,它也是我的 MVC 应用程序的一部分。为简单起见,我现在不向此处理程序注入(inject)任何内容。在任何情况下,出现的消息都是空的(例如,属性为 null 或 Guid.Empty)。

当我将 NSB 的序列化更改为 XML 时,它起作用了。看起来,同一个实例使用 JSON 进行序列化,使用 XML 进行反序列化。

这是我用来初始化总线的代码:

        Configure.Transactions.Enable();
        Configure.Serialization.Json();
        Configure.Features.Disable<Sagas>();
        Feature.Disable<XmlSerialization>();

        Instance =
            Configure.With(
                AllAssemblies.Matching("Messages1.dll").And("Handler1.dll").And("Messages2.dll").And("Handler2.dll"))
                .DefineEndpointName(ConfigurationManager.AppSettings["ServiceBusEndpointName"])
                .DefaultBuilder()
                .Log4Net<RollingFileAppender>(x => x.File = ConfigurationManager.AppSettings["ServiceBusLog"])
                .RavenSubscriptionStorage()
                .UseTransport<Msmq>()
                .PurgeOnStartup(false)
                .UnicastBus()
                .RunHandlersUnderIncomingPrincipal(false)
                .CreateBus()
                .Start(() => Configure.Instance.ForInstallationOn<Windows>()
                    .Install());

如果不知道这里发生了什么:-(有人知道吗?

亲切的问候 马尔科·海涅

最佳答案

感谢大家的帮助,

但通常情况下,错误在于椅子和键盘之间:-/

是的,我所有的观察似乎都是正确的,但出于所有错误的原因。问题很简单:我的消息类没有无参数构造函数,只有私有(private) setter 。看起来,虽然 XML 序列化程序对此没有问题,但 JSON 序列化程序却有。

在公开属性 get/setter 之后,我终于收到了我的消息。无赖。

特别感谢 Particular,他为帮助我付出了巨大的努力。我想,我所需要的只是休息几天 =)

关于c# - 使用 JSON 时 NServiceBus 处理程序出现空消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22225349/

相关文章:

ios - 摆脱空的 JSON 数据 iOS 应用程序

c# - Nullcheck 多级对象

c# - 如何使用泛型类型参数获取类的所有属性

c# - 使用正则表达式替换删除行

xml - XSD 允许同一元素同时包含 simpleType 和 complexType 内容吗?

java - 在 Java 中为 Request 对象定义集合字段时,更好的做法是什么?

json - 如何编写Kotlin数据类以匹配JSON?

c# - 如何从asp.net sql成员(member)资格提供程序中的id获取角色?

.net - 在 Asp.Net Core 中加载 XSLT

xml - 如何制作一个包含关系的XML文档?