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 に答える