【发布时间】:2014-06-25 02:53:53
【问题描述】:
我有一个带有一些属性的上下文接口,我希望在解决接口时统一自动设置这些属性。这是接口和类。
public interface IAdapterContext
{
IFoo Foo { get; }
IBar Bar { get; }
}
public class AdapterContext
{
public IFoo Foo { get; set; }
public IBar Bar { get; set; }
}
接口成功解析到类,但所有实例成员均为空。注册了对应的实例成员接口。
一种解决方案是在接收所有值的类中添加一个构造函数,但我宁愿不这样做,因为我还想要默认构造函数以便于测试。仅仅为了满足统一而同时拥有默认值和非默认值并不适合我。
另一个解决方案是使用 InjectionProperty 类,但这总体上是一个比添加构造函数更复杂的解决方案。它还将属性名称与实际类分离,这可能会在重构期间中断。
unity 是否支持为实现的接口自动设置属性值,还是总是需要通过构造函数/InjectionProperty 来完成?
【问题讨论】:
-
如果使用
InjectionProperty路由,请使用nameof(SomeType.TargetProperty)以避免在重构时损坏。
标签: c# unity-container