AutoWiring с StructureMap, Внедрение конструктора

Я новичок в Structuremap. :))

У меня есть класс, реализующий 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();
                });

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

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

IPresenter (DutyManager.Presentation.Framework.IPresenter) DutyManager.Presentation.SoldiersPresenter, DutyManager.Presentation, Version = 1.0.0.0, культура = нейтральная, PublicKeyToken = null Настроен DutyManager.Presentation.SoldiersPresenager. = DutyManager.Presentation.SoldiersPresenter. = DutyManager.0 Культура = нейтральный, PublicKeyToken = null
Область действия: PerRequest


ISoldiersView (DutyManager.Presentation.ISoldiersView) DutyManager.Presentation.SoldiersView, DutyManager.Presentation, Version = 1.0.0.0, Культура = нейтральный, PublicKeyToken = null DutyManager.Presentation.SoldiersView, DutyManager.Presentation, Версия = 1.0.0.0 , PublicKeyToken = null
Область действия: PerRequest


person Community    schedule 10.10.2009    source источник


Ответы (1)


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

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

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

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

person Joshua Flanagan    schedule 10.10.2009
comment
Джошуа прав, информации недостаточно для диагностики проблемы. - person Chris Missal; 15.10.2009