С помощью Structuremap мы можем зарегистрировать интерфейсы следующим образом:
Scan(x =>
{
x.AssemblyContainingType<Startup>();
x.Assembly("Api");
x.LookForRegistries();
x.AddAllTypesOf<Profile>();
x.WithDefaultConventions();
});
Если у меня есть Интерфейс, и несколько конкретных реализаций используют этот интерфейс, IService, ServiceA, ServiceB, ServiceC, как я могу это сделать с помощью Microsoft DI,или мне нужно записать addtransient 3 раза?
То же самое для шаблона стратегии:
public class ServiceStrategy : IServiceStrategy
{
private readonly List<IService> _services;
public ServiceStrategy(List<IService> services)
{
this._services= services;
}
public string GetProcedure(Enum enum, EnumTwo enum2)
{
return this._managers.FirstOrDefault(x => x.Type == enum)
?.GetProcedure(enum2);
}
}
Как мне зарегистрировать стратегию здесь?