0

Castle Windsor KernalのComponentModelCreatedイベントを使用して、コンポーネントのライフスタイルを管理しようとしています。

問題は、イベントがまったく発生していないように見えることです。どういうわけか間違って使っているに違いない?以下の私のコードを参照してください。どこが間違っているのか知りたいです。

ありがとう。

私のApplication_Startで:

Container = new WindsorContainer().Install(FromAssembly.This());
Container.Kernel.ComponentModelCreated += WindsorExtension.Kernel_ComponentModelCreated;  

方法:

public static void Kernel_ComponentModelCreated(ComponentModel model)
        {
            if (model.LifestyleType == LifestyleType.Undefined && model.Name.EndsWith("Controller"))
            {
                model.LifestyleType = LifestyleType.Transient;
            }
            else if (model.LifestyleType == LifestyleType.Undefined)
            {
                model.LifestyleType = LifestyleType.PerWebRequest;
            }
        }
4

1 に答える 1

0

あなたが言う部分についてはよくわかりません

イベントはまったく発火していないようです

それは私のマシンで動作します...

根本的な問題に関しては、そのようなイベントハンドラーはそれ自体を変更するのに適切な場所ではありませんComponentModel

そのためにComponentModel構築コントリビューターを使用してください。

于 2012-11-25T22:17:27.020 に答える