AutoWiring с StructureMap, инжектор конструктора - PullRequest
0 голосов
/ 10 октября 2009

Я новичок в структуре карты. :))

У меня есть класс, который реализует IPresenter:

public class SoldierPresenter : IPresenter
{
...
public SolierPresenter(ISoldierView soldierView)
{

}
...
}

Когда я звоню:

var presenters = ObjectFactory.GetAllInstances<IPresenter>();

Я получаю ноль экземпляров ... что мне не хватает?!

Вот код конфигурации контейнера:

  Scan(
            scanner =>
                {
                    scanner.AssemblyContainingType(typeof(IShell));
                    scanner.WithDefaultConventions();

                    scanner.TheCallingAssembly();
                    scanner.AddAllTypesOf<IPresenter>();

                    scanner.WithDefaultConventions();
                });

Спасибо заранее, Эрик.

Container.WhatDoIHave (); Показывает следующее:

IPresenter (DutyManager.Presentation.Framework.IPresenter) DutyManager.Presentation. .0.0, культура = нейтральная, PublicKeyToken = ноль
Определено как: PerRequest


ISoldiersView (DutyManager.Presentation.ISoldiersView) DutyManager.Presentation.SoldiersView, DutyManager.Presentation, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null DutyManager.Presentation.SoldiersView, Версия.0.0.Pantation, DutyManager Культура = нейтральная, PublicKeyToken = ноль
Определено как: PerRequest

1 Ответ

2 голосов
/ 10 октября 2009

Ваш пример кода не предоставляет достаточно информации. Вы настраиваете контейнер, принадлежащий ObjectFactory, или создаете свой собственный экземпляр Container? ObjectFactory может получить доступ только к своему собственному контейнеру.

Вы пытаетесь вызвать GetAllInstances для ObjectFactory, но вы вызываете WhatDoIHave для Container. Не ясно, какой контейнер вы настраиваете с помощью оператора «Сканирование», который вы включили.

Используя предоставленный вами код (и предполагая использование ObjectFactory повсюду), я не смог воспроизвести вашу проблему. Убедитесь, что вы постоянно используете один и тот же контейнер.

Если это не решит вашу проблему, вы можете подумать о публикации в списке рассылки StructureMap , где он получит гораздо больше внимания от пользователей StructureMap.

...