我在我的解决方案中使用了构造函数注入,但是这个类有一个我不想在构造函数中传递的属性,其中我有不变的依赖项。
假设我有一个ILogger,它有一个我想设置的FileName属性,同时仍然在构造函数中设置了依赖项。 我如何注册类型,同时传递defaunt连接字符串。
我希望有一种简单的方法可以做到这一点 - 最好不要使用属性来修饰属性,但如果设置更容易使用属性我觉得很酷:)
所以问题是,如何在一个也使用构造函数注入的对象上注入属性值 - 使用Unity。
更新:我在标题中提到过它,但我忘了在文本正文中详细说明 - 我想手动(在代码中)设置这些依赖项,而不是在配置文件中。
答案 0 :(得分:2)
好吧我猜它有问题,我发现了 - 这里是。
container.Configure<InjectedMembers>().ConfigureInjectionFor<BasicLogger>(
new InjectionProperty("FileName", @"C:\test.log")
);
答案 1 :(得分:0)
如果要注入属性,则必须使用[Dependency],否则手动注入该依赖项。
答案 2 :(得分:0)
您通常需要注入IConfiguration接口。这可能有一个你可以阅读的LogFile属性。
Configuration implimentation通常只是一个简单的包装器,用于从配置文件中读取项目。