gpt4 book ai didi

c# - WPF ViewModel 中的 CaSTLe Windsor 构造函数注入(inject)

转载 作者:行者123 更新时间:2023-11-30 22:08:48 26 4
gpt4 key购买 nike

我试图避免 Container.Resolve() 的反模式。如何更改以下内容以使用构造函数注入(inject)?

安装程序.cs

 public void Install(Castle.Windsor.IWindsorContainer container, 
Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store)
{

container.AddFacility<TypedFactoryFacility>();

container

.Register(Component.For<IData>()
.ImplementedBy<Data>().LifeStyle.Singleton)



}

BootStrapper.cs

public class Bootstrapper
{
private static volatile IWindsorContainer _theWindsorContainer;
private static object syncRoot = new Object();

public static IWindsorContainer Container
{
get
{
if (_theWindsorContainer == null)
{
lock (syncRoot)
{
if (_theWindsorContainer == null)
{
_theWindsorContainer = new WindsorContainer().Install(FromAssembly.This());
}
}
}

return _theWindsorContainer;
}
}
}

OViewModel.cs

public IData ThisData {get;set;}

public OViewModel()
{

ThisData= Bootstrapper.Container.Resolve<IData>();
InitializeComponent();
}

如何使用温莎城堡构造函数注入(inject)来初始化 View 模型并进行构造函数注入(inject)?未调用 InitializeComponent 或 ThisData 为空。

最佳答案

wrote an article几年前关于将 CaSTLe Windsor 集成到 WPF 中以在您的 View 模型中实现 DI。这可能是您正在寻找的。

关于c# - WPF ViewModel 中的 CaSTLe Windsor 构造函数注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com