如何为已注册的组件添加其他服务

时间:2013-01-15 11:34:46

标签: castle-windsor

我在为已注册的组件添加附加服务时遇到问题。 我有以下情况:

public class MyImplementation : BaseClass, IInterface
{

}

在我的应用程序的基础结构中的某处(不受更改),我的课程以下列方式注册:

container.Register(Classes
                               .FromThisAssembly()
                               .BasedOn(typeof (BaseClass))
                               .WithServiceBase()                                                                      
                               .LifestyleTransient());

我现在要做的是向MyImplementation组件添加其他服务。我尝试使用以下方法在我的安装程序中执行此操作:

container.Register(Classes
                               .FromThisAssembly()
                               .BasedOn(typeof (IInterface))
                               .WithServiceBase()                                                                      
                               .LifestyleTransient());

但是当试图从容器中解析IInterface时,我得到的错误是没有为IInterface注册的组件。

我的问题是,是否可以为已注册的组件添加其他服务? 提前致谢。 迈克

1 个答案:

答案 0 :(得分:0)

我认为如果您更改第二次注册,它将起作用:

container.Register(Classes
                           .FromThisAssembly()
                           .BasedOn(typeof (IInterface))
                           .WithServiceAllInterfaces()                                                                      
                           .LifestyleTransient());