动作委托未在 ConfigureServices 中配置 mvc
Action delegate not configuring mvc in ConfigureServices
我已经开始学习 asp.net 核心并努力提高我的 c# 知识。
我在启动时遇到 ConfigureServices 问题 class。
public void ConfigureMvcOptions(MvcOptions options)
{
options.EnableEndpointRouting = false;
}
public void ConfigureServices(IServiceCollection services)
{
Action<MvcOptions> options = new Action<MvcOptions>(ConfigureMvcOptions);
services.AddMvc(options);
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello world");
});
}
以上导致编译错误
"Warning MVC1005 Using 'UseMvcWithDefaultRoute' to configure MVC is
not supported while using Endpoint Routing. To continue using
'UseMvcWithDefaultRoute', please set 'MvcOptions.EnableEndpointRouting
= false' inside 'ConfigureServices'"
我可以通过在 AddMvc 方法中使用 Lambda 表达式来消除错误,但我不明白为什么会这样
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc((options) => options.EnableEndPointRouting = false);
}
以上操作没有问题。我只是不明白我对 Action 委托的实现有什么问题?
有一个 Roslyn Analyzer 可以检查您使用 UseMvc
或 UseMvcWithDefaultRoute
但您没有将 EnableEndPointRouting
设置为 [=13] 的情况=].不幸的是,此分析器不够智能,无法检测到您的 ConfigureMvcOptions
方法 确实 将 EnableEndPointRouting
设置为 false
。
这意味着避免此警告的唯一方法是设置内联值,正如您使用所显示的修复所做的那样。值得注意的是,将 MVC 与 ASP.NET Core 3+ 一起使用的推荐设置是使用端点路由,而不是禁用它。
我已经开始学习 asp.net 核心并努力提高我的 c# 知识。
我在启动时遇到 ConfigureServices 问题 class。
public void ConfigureMvcOptions(MvcOptions options)
{
options.EnableEndpointRouting = false;
}
public void ConfigureServices(IServiceCollection services)
{
Action<MvcOptions> options = new Action<MvcOptions>(ConfigureMvcOptions);
services.AddMvc(options);
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello world");
});
}
以上导致编译错误
"Warning MVC1005 Using 'UseMvcWithDefaultRoute' to configure MVC is not supported while using Endpoint Routing. To continue using 'UseMvcWithDefaultRoute', please set 'MvcOptions.EnableEndpointRouting = false' inside 'ConfigureServices'"
我可以通过在 AddMvc 方法中使用 Lambda 表达式来消除错误,但我不明白为什么会这样
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc((options) => options.EnableEndPointRouting = false);
}
以上操作没有问题。我只是不明白我对 Action 委托的实现有什么问题?
有一个 Roslyn Analyzer 可以检查您使用 UseMvc
或 UseMvcWithDefaultRoute
但您没有将 EnableEndPointRouting
设置为 [=13] 的情况=].不幸的是,此分析器不够智能,无法检测到您的 ConfigureMvcOptions
方法 确实 将 EnableEndPointRouting
设置为 false
。
这意味着避免此警告的唯一方法是设置内联值,正如您使用所显示的修复所做的那样。值得注意的是,将 MVC 与 ASP.NET Core 3+ 一起使用的推荐设置是使用端点路由,而不是禁用它。