3

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

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

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

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

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

4

3 回答 3

2

好吧,我想这有助于提出这个问题,我发现 - 就是这样。

container.Configure<InjectedMembers>().ConfigureInjectionFor<BasicLogger>(
  new InjectionProperty("FileName", @"C:\test.log")
);
于 2009-07-07T11:48:27.337 回答
0

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

于 2009-07-07T11:41:53.577 回答
0

您通常希望注入一个 IConfiguration 接口。这可能有一个您可以读取的 LogFile 属性。

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

于 2009-07-10T01:11:18.267 回答