NServiceBus 3与Unity 2坏了吗?

时间:2012-02-24 16:44:41

标签: unity-container nservicebus

我正在使用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”。

2 个答案:

答案 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