1

我有一个类型化的工厂接口,如下所示:

public interface ILogMessageFactory
{
    ILogMessage Create(LogMessageType logMessageType, String text);
}

我正在注册这一切:

public void Install(IWindsorContainer container, IConfigurationStore store)
{
    container.AddFacility<TypedFactoryFacility>();

    container.Register(
        Component.For(typeof(ConsolePrompter)),
        Component.For<ILogger>().ImplementedBy<ConsoleLogger>().LifeStyle.Transient,
        Component.For<ILogMessageFactory>().AsFactory(),
        Component.For<ILogMessage>().ImplementedBy<LogMessage>().LifeStyle.Transient
        );
}

问题是我想自己实现这个ILogMessageFactory.Create方法,在我返回之前设置一些东西。

我已经尝试了明显的幼稚解决方案,但没有任何成功:

 Component.For<ILogMessageFactory>().ImplementedBy<LogMessageFactory>().AsFactory()

我接近这个错误吗?我应该将所有初始化都保留在给定对象的构造函数中吗?

4

1 回答 1

1

ITypedFactoryComponentSelector如果这是真正属于工厂的东西,请使用。或者.OnCreate()在工厂解析的组件上使用

于 2013-01-19T09:43:15.333 回答