我有一个ASP.NET Core应用程序,我想根据所选的Route使用不同的策略。 例如,如果有人导航到/ fr / Index,我想将法语翻译实现注入到我的Controller中。 同样,当有人导航到/ de / Index时,我希望注入德语翻译。
这是为了避免让我的控制器上的每个动作都读取“ language”参数并将其传递给我们。
从更高层次上讲,我想拥有这样的东西:
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
// Stuff here
app.MapWhen(
context => context.Request.Query["language"] == "fr",builder =>
{
builder.Register<ILanguage>(FrenchLanguageImplementation);
});
app.MapWhen(
context => context.Request.Query["language"] == "de",builder =>
{
builder.Register<ILanguage>(GermanLanguageImplementation);
});
}
不幸的是,看起来我并没有达到该级别的IoC容器解析上下文。
PS:我正在使用Lamar作为IoC。