Caliburn.micro simplecontainer是否支持属性注入?我怎么能这样注射?
答案 0 :(得分: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
方法传递任何内容
答案 1 :(得分:0)
是的,它支持。
物业注入
Property Injection提供了将服务注入到依赖项容器外部创建的实体的功能。当一个实体被传递到BuildUp方法时,将检查其属性,并使用与上面相同的递归逻辑注入任何可用的匹配服务。
writer.sheets['Validation'] = worksheet
在大多数情况下,构造函数注入是最佳选择,因为它使服务需求显式化,但是属性注入有许多用例。值得注意的是,属性注入仅适用于接口类型。