如果我有以下类结构:
public AContainer : IContainer
{
public AContainer(ILogger log, IDataService dataService)
....
}
public BContainer : IContainer
{
public BContainer(ILogger log, IDataService dataService)
....
}
public DataService : IDataService
{
public DataService(ILogger log, ISomethingElse somethingElse, IWhatever whatever)
....
}
我想注册同一个 DataService 的两个不同实例——一个注入 AContainer,一个注入 BContainer——同时将 AContainer 的日志注入其 DataService 并将 BContainer 的日志注入其 DataService。
一条路线似乎引导我使用 ResolvedParameter 注册完整结构,这让我感觉不舒服,因为我需要将 ISomethingElse 和 IWhatever 与 Container 一起注册。
另一条路线将我引向属性注入,这通常是不鼓励的,但在这里可能有一席之地。
那么在 IoC 中是否存在此类问题的常见模式,Unity 是否支持?