期間指定的依賴名字我下面的代碼片段:統一:配置
static void Main(string[] args) {
var container = new UnityContainer();
container.RegisterType<IConnection, SerialPortConnection>("SerialConnection");
container.RegisterType<IConnection, ParallelPortConnection>("ParallelConnection");
container.RegisterType<Device>("ParallelDevice");
container.RegisterType<Device>("SerialDevice");
}
我想在兩個不同的名字來註冊類型Device
,使取決於名稱請求Device
實例將適當Connection
進行初始化。以下是解決此問題的一種方法,僅供演示:
public class ParallelDevice : Device {
public ParallelDevice([Dependency("ParallelConnection")] IConnection connection) : base(connection) {}
}
public class SerialDevice : Device {
public SerialDevice([Dependency("ParallelConnection")] IConnection connection) : base(connection) {}
}
// and register with
container.RegisterType<Device, ParallelDevice>("ParallelDevice");
container.RegisterType<Device, SerialDevice>("SerialDevice");
有沒有更好的方法來做到這一點?喜歡的東西:
container.RegisterType<Device>("ParallelDevice").UseDependencyNames("ParallelConnection");