Инъекция недвижимости в Виндзоре в замке
ОК, я думаю, что естьперебор информация о замке Виндзор, потому что поиск этих ключевых слов дает мне примеры всего, и, честно говоря, я неЯ не достаточно понимаю, как это работает, чтобы правильно решить эту проблему. Я попробовал довольно много перестановок с небольшим количеством удачи в этом пункте.
у меня естьIUnitOfWorkFactory
которую я хочу создать как синглтон. Итак, я установил Castle Windsor и напишу немного кода примерно так:
iocContainer = new WindsorContainer()
.Install(FromAssembly.This());
var propInjector = iocContainer.Register(
Component.For()
.LifestyleSingleton()
.Instance(new NHUnitOfWorkFactory())
);
propInjector.Resolve();
Это вызывается из моегоApplication_Start
метод.
у меня естьAccountController
подключен так:
public class AccountController : SecureController
{
public IUnitOfWorkFactory UnitOfWorkFactory { get; set; }
...
... насколько я понимаю, это должно просто "Работа" (хотя неСпроси меня как) Но моя собственность всегда равна нулю, когда я пытаюсь ее использовать.
Кажется, яМне не хватает чего-то глупого и простого, но я понятия не имею, что это такое.
Я также пытался
var propInjector = iocContainer.Register(
Component.For()
.ImplementedBy()
.LifestyleSingleton()
);
без успеха.
Что я делаю неправильно?
ЗАКЛЮЧЕНИЕ
Я пропустил несколько шагов здесь. Я построил установщик и загрузчик в соответствии сруководство, но я зарегистрировал свои услуги не в том месте ... перед тем, как строить фабрику контроллеров. Теперь мой загрузчик выглядит так:
iocContainer = new WindsorContainer()
.Install(FromAssembly.This());
var controllerFactory = new WindsorControllerFactory(iocContainer.Kernel);
ControllerBuilder.Current.SetControllerFactory(controllerFactory);
iocContainer.Register(
Component.For()
.ImplementedBy()
.LifestyleSingleton()
);
... и мои инъекции собственности больше не были нулевыми .... теперь мне просто нужно отладить остальные 87 проблем ...