c#-使用JSON时,NServiceBus处理程序出现空消息
作者:互联网
我遇到了NServiceBus 4.4.2的问题,这让我感到很沮丧.我将自己的NSB托管在MVC应用程序中.将该实例放入Autofac容器中,并注入到控制器中.到现在为止还挺好.
使用SendLocal(命令)发送消息的工作正常.该消息在JSON的MSMQ中显示,因为我已配置了NSB.
现在,我的消息处理程序被调用,这也是我的MVC应用程序的一部分.为简单起见,我现在不向此处理程序中注入任何内容.在任何情况下,显示的消息都是空的(例如,属性为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());
如果不知道这是怎么回事:-(有人知道吗?
亲切的问候
马可·海涅
解决方法:
感谢您的所有帮助,
但是通常,错误出在椅子和键盘之间:-/
是的,我的所有观察结果似乎都是正确的,但是出于所有错误的原因.问题很简单:我的消息类没有无参数的构造函数,只有私有的setter.看起来,尽管XML-Serializer对此没有问题,但JSON序列化器却有问题.
使属性get / setters公开后,我终于得到了消息.笨蛋
特别感谢Particular,他竭尽全力帮助我.我想,我需要休息几天=)
标签:xml,json,c,nservicebus 来源: https://codeday.me/bug/20191029/1962788.html