ComponentModelCreated用于管理Windsor生活方式的正确用法是什么?

时间:2012-11-25 21:59:16

标签: c# asp.net-mvc castle-windsor

我正在尝试使用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;
            }
        }

1 个答案:

答案 0 :(得分:0)

我不确定你说的部分

  

事件似乎根本没有发生

它适用于我的机器......

至于潜在的问题,像这样的事件处理程序是修改ComponentModel本身的正确位置。

使用ComponentModel construction contributor