1

Caliburn.micro simplecontainer 是否支持属性注入?我该如何进行这种注射?

4

2 回答 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 回答