使用Microsoft Unity进行编程属性注入

时间:2009-07-07 11:33:33

标签: inversion-of-control unity-container property-injection

我在我的解决方案中使用了构造函数注入,但是这个类有一个我不想在构造函数中传递的属性,其中我有不变的依赖项。

假设我有一个ILogger,它有一个我想设置的FileName属性,同时仍然在构造函数中设置了依赖项。 我如何注册类型,同时传递defaunt连接字符串。

我希望有一种简单的方法可以做到这一点 - 最好不要使用属性来修饰属性,但如果设置更容易使用属性我觉得很酷:)

所以问题是,如何在一个也使用构造函数注入的对象上注入属性值 - 使用Unity。

更新:我在标题中提到过它,但我忘了在文本正文中详细说明 - 我想手动(在代码中)设置这些依赖项,而不是在配置文件中。

3 个答案:

答案 0 :(得分:2)

好吧我猜它有问题,我发现了 - 这里是。

container.Configure<InjectedMembers>().ConfigureInjectionFor<BasicLogger>(
  new InjectionProperty("FileName", @"C:\test.log")
);

答案 1 :(得分:0)

如果要注入属性,则必须使用[Dependency],否则手动注入该依赖项。

答案 2 :(得分:0)

您通常需要注入IConfiguration接口。这可能有一个你可以阅读的LogFile属性。

Configuration implimentation通常只是一个简单的包装器,用于从配置文件中读取项目。