NServiceBus 3 с Unity 2 сломан? - PullRequest
1 голос
/ 24 февраля 2012

Я использую пакеты NuGet для ссылки на самую последнюю версию NServiceBus (NServiceBus-CI 3.0.2034, NServiceBus.Unity-CI 3.0.2039), однако я не могу заставить работать UnityBuilder.Проблема, с которой я сталкиваюсь, аналогична той, которая была размещена здесь , однако принятый ответ не является решением моей проблемы.

var busConfig = Configure
            .WithWeb()
            .UnityBuilder()
            ...

или

var busConfig = Configure
            .WithWeb()
            .UnityBuilder(container)
            ...

приводит к

[ArgumentNullException]
Value cannot be null
Parameter name: typeToCreate

В соответствии с этой публикацией проблема была исправлена, однако она все еще кажется, что она неисправна.

Кто-нибудь сталкивался с этим и нашел решение?Есть ли что-нибудь конкретное NServiceBus, которое мне нужно было бы зарегистрировать в контейнере, прежде чем передать его в UnityBuilder?

Я буду продолжать исследовать эту проблему, но похоже, что в этот момент я бью стену.

UPDATE

Я сузил проблему до следующей строки в методе ConfigureProperty внутри NServiceBus.ObjectBuilder.Unity.ConfigureComponentAdapter.cs

UnityContainerExtensions.Configure<InjectedMembers>(this.container).ConfigureInjectionFor((Type) this.concreteComponent, new InjectionMember[] { property });

Похоже, что контейнер Unity не может разрешить "InjectedMembers».

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

В последнее время мы исправили несколько ошибок в построителе единства.Ребята, можете попробовать сборку 2064 и посмотреть, поможет ли это?

http://teamcity.codebetter.com/viewType.html?tab=buildTypeStatusDiv&buildTypeId=bt459

0 голосов
/ 03 марта 2012

Я написал другой вопрос, на который вы ссылались ( здесь ), но в то время я не принимал ответ Уди, так как он никогда не работал.

Короче говоря, я бросил Unity2 Builder, пошел с DefaultBuilder и ввел IServiceLocator. Единственный тип, который я зарегистрировал в NServiceBus, был IServiceLocator как синглтон UnityServiceLocator, поэтому NServiceBus не нужно было обрабатывать создание контейнера Unity2.

...