城堡 – 温莎 – 温莎城堡 – 释放拦截器与瞬态生活方式

documentation中声明,你应该总是使拦截器瞬态.如果我有这个示例代码;

//register interceptor
container.Register(Classes.FromAssemblyNamed("Sample.Interceptors")
.BasedOn<Castle.DynamicProxy.IInterceptor>()
.LifestyleTransient());

//Configure components to intercept
 container.Register(Classes.FromAssemblyNamed("Sample.Component")
.IncludeNonPublicTypes().InNamespace("Sample.Component", true)
            .Configure(c=>
                c.Interceptors(InterceptorReference.ForType<SampleInterceptor>())
                 .Anywhere.LifestyleSingleton())
                 .WithService.DefaultInterfaces()
                );

我是否应该担心释放SampleInterceptor,还是在容器释放Sample.Component中的服务后会自动释放它?

最佳答案
您的瞬态拦截器将使其生命周期与您关联的对象绑定,并且当该对象作为该对象的图形的任何其他部分释放时将被释放

转载注明原文:城堡 – 温莎 – 温莎城堡 – 释放拦截器与瞬态生活方式 - 代码日志