Caliburn.micro simplecontainer 是否支持属性注入?我该如何进行这种注射?
问问题
869 次
2 回答
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
方法传递任何内容
于 2013-05-02T16:20:30.400 回答
0
是的,它支持。
属性注入
属性注入提供了将服务注入到在依赖容器之外创建的实体的能力。当一个实体被传递到 BuildUp 方法时,它的属性将被检查,并且任何可用的匹配服务都将使用与上述相同的递归逻辑注入。
...
var shellViewModel = new ShellViewModel();
_container.BuildUp(shellViewModel);
}
}
public class ShellViewModel {
public IEventAggregator EventAggregator { get; set; }
}
在大多数情况下,构造函数注入是最好的选择,因为它明确了服务需求,但是属性注入有很多用例。需要注意的是,属性注入仅适用于接口类型。
资料来源:Caliburn.Micro 文档
于 2017-04-20T05:24:30.473 回答