Castle.Windsor:通过2个类型工厂传递依赖关系

时间:2011-07-21 07:10:20

标签: c# .net castle-windsor typed-factory-facility

类型:

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邮件列表上有一个related thread

0 个答案:

没有答案