Castle.Windsor: прохождение зависимости через 2 типизированных фабрики - PullRequest
1 голос
/ 21 июля 2011

Типы:

public interface IWidgetFactoryFactory { IWidgetFactory CreateFactory(); } 

public interface IWidgetFactory { FooWidget CreateFoo(Foo model); }

public class FooWidget(IContextualService service, Foo model) { }

Регистрация:

Component.For<IWidgetFactoryFactory>()
         .AsFactory(),

// the CustomFactoryComponentSelector is unnecessary for this discussion, just know 
// it's there
Component.For<IWidgetFactory>()
         .AsFactory(c => c.SelectedWith<CustomFactoryComponentSelector>()),

Вопрос:

Я хочу иметь возможность добавить метод к IWidgetFactoryFactory, который будет принимать IContextualService:

IWidgetFactory CreateFactory(IContextualService service);

, а затем создать фабричный прокси, чтобы при вызове IWidgetFactory.CreateFoo он разрешалIContextualService зависимость от этого параметра, переданная через новый метод CreateFactory.

Обратите внимание, что я буду создавать и вызывать несколько IWidgetFactoryFactory.CreateFactory(IContextualService) в разных контекстах, и я хочу, чтобы каждый IContextualService отражал контекст, в который он вызывается и передается.

Есть ли какие-либоидеи о том, как это можно сделать?

Обновление: В списке рассылки Castle-Dev по этому вопросу есть связанная ветка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...