【发布时间】:2011-10-04 22:39:33
【问题描述】:
我有一个具有模型和服务程序集的 WPF MVVM 应用程序。我正在尝试弄清楚如何使用 Windsor 容器来解决本地(服务层中的服务)依赖项,但我唯一能弄清楚的事情是笨拙且不正确。
服务安装程序:
public class ServicesInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
//Services
container.Register(
Component.For<IServiceA>().ImplementedBy<ServiceA>().LifeStyle.Singleton,
Component.For<IServiceB>().ImplementedBy<ServiceB>().LifeStyle.Singleton
}
}
服务消费者(位于服务中):
public class ServiceConsumer
{
public SomeMethodThatUsesServiceAOnlyOcassionally()
{
//buncha logic.
if (allThatFailed)
{
??? ResolveServiceA ???
}
}
}
因为我不经常依赖 ServiceA,所以我不想通过构造函数注入或属性注入来传递它。我会向安装程序添加一个静态容器实例,但我必须相信还有比这更惯用的解决方案。
【问题讨论】:
标签: c# dependency-injection castle-windsor