C# 温莎IoC命名注入:构造函数

C# 温莎IoC命名注入:构造函数,c#,asp.net-core,dependency-injection,inversion-of-control,castle-windsor,C#,Asp.net Core,Dependency Injection,Inversion Of Control,Castle Windsor,我想知道如何在温莎实现以下目标。我以前使用AutoFac时使用了以下代码,这些代码工作得非常好,但我不确定如何在温莎实现同样的功能: // named injection registrations builder.RegisterType<FoodMarketProvider>().Keyed<IMarketProvider>(MarketProviders.Food.GetDescription()).PropertiesAutowired();

我想知道如何在温莎实现以下目标。我以前使用AutoFac时使用了以下代码,这些代码工作得非常好,但我不确定如何在温莎实现同样的功能:

// named injection registrations
builder.RegisterType<FoodMarketProvider>().Keyed<IMarketProvider>(MarketProviders.Food.GetDescription()).PropertiesAutowired();            
builder.RegisterType<ClothsMarketProvider>().Keyed<IMarketProvider>(MarketProviders.Cloths.GetDescription()).PropertiesAutowired();
用法示例:

public Task<dynamic> GetResellerProducts(MarketProviders market)
{
    var marketProvider = base.ServiceDictionary[market.GetDescription()];
    return marketProvider.GetProducts();
}
public任务获取经销商产品(MarketProviders市场)
{
var marketProvider=base.ServiceDictionary[market.GetDescription()];
return marketProvider.GetProducts();
}

提前谢谢

IIndex
IIndex
是Autofac独有的,Windsor没有确切的对应项。在这些场景中,最常用的工具是什么。您可以将它们配置为按名称查找组件,方式类似于
IIndex

public Task<dynamic> GetResellerProducts(MarketProviders market)
{
    var marketProvider = base.ServiceDictionary[market.GetDescription()];
    return marketProvider.GetProducts();
}