我正在使用NuGet包来引用最新版本的NServiceBus(NServiceBus-CI 3.0.2034,NServiceBus.Unity-CI 3.0.2039),但是我无法让UnityBuilder工作。我面临的问题类似于发布here的问题,但是接受的答案并不是我问题的解决方案。
var busConfig = Configure
.WithWeb()
.UnityBuilder()
...
或
var busConfig = Configure
.WithWeb()
.UnityBuilder(container)
...
结果
[ArgumentNullException]
Value cannot be null
Parameter name: typeToCreate
根据this帖子,该问题已得到修复,但似乎仍未解决。
有没有人遇到这个并找到了解决方案?在将它传递给UnityBuilder之前,我需要在容器中注册NServiceBus吗?
我会继续研究这个问题,但看起来我现在正在撞墙。
更新
我已将问题缩小到NServiceBus.ObjectBuilder.Unity.ConfigureComponentAdapter.cs中的ConfigureProperty方法中的以下行
UnityContainerExtensions.Configure<InjectedMembers>(this.container).ConfigureInjectionFor((Type) this.concreteComponent, new InjectionMember[] { property });
看起来Unity容器无法解析“InjectedMembers”。
答案 0 :(得分:0)
我撰写了你引用的另一个问题(here),但我当时并没有接受Udi的回答,因为它从未真正起作用。
简而言之,我删除了Unity2 Builder,使用了DefaultBuilder,并注入了一个IServiceLocator。我在NServiceBus中注册的唯一类型是作为UnityServiceLocator单例的IServiceLocator,因此NServiceBus不需要处理构建Unity2容器。
答案 1 :(得分:0)
我们最近在团结建设者中解决了一些问题。你们可以试试2064版本,看看是否有帮助吗?
http://teamcity.codebetter.com/viewType.html?tab=buildTypeStatusDiv&buildTypeId=bt459