Caliburn.micro simplecontainer是否支持属性注入?

时间:2013-05-02 15:56:01

标签: dependency-injection caliburn.micro

Caliburn.micro simplecontainer是否支持属性注入?我怎么能这样注射?

2 个答案:

答案 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

在大多数情况下,构造函数注入是最佳选择,因为它使服务需求显式化,但是属性注入有许多用例。值得注意的是,属性注入仅适用于接口类型。

来源:define a mutator