Caliburn.micro simplecontainer是否支持属性注入?我该如何做这种注射?Caliburn.micro simplecontainer是否支持属性注入?
1
A
回答
1
通过Bootstrapper.BuildUp()
是 - 只需拨打container.BuildUp(instance)
在你的引导程序:
SimpleContainer _container;
protected override void Configure()
{
_container = new SimpleContainer();
// Register stuff:
_container.RegisterSingleton(typeof(IWindowManager), null, typeof(WindowManager));
base.Configure();
}
// Property inject:
protected override void BuildUp(object instance)
{
_container.BuildUp(instance);
}
呼吁在代码中IoC.BuildUp
将通过Bootstrapper.BuildUp
方法
0
是的,它支持通过任何东西。
物业注射
属性注入提供了中注入服务的依赖容器之外创建一个实体的能力。当一个实体被传入BuildUp方法时,它的属性将被检查,并且任何可用的匹配服务都将使用与上面相同的递归逻辑来注入。
...
var shellViewModel = new ShellViewModel();
_container.BuildUp(shellViewModel);
}
}
public class ShellViewModel {
public IEventAggregator EventAggregator { get; set; }
}
在大多数情况下,构造函数注入是最好的选择,因为它使服务需求明确的,但是物业注入有许多用例。注意属性注入仅适用于接口类型,这一点很重要。