【发布时间】:2021-01-13 20:42:22
【问题描述】:
我已经开始学习 asp.net core 并尝试提高我的 c# 知识。
我在启动课程中遇到了 ConfigureServices 的问题。
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");
});
}
以上是导致编译错误
"警告 MVC1005 使用 'UseMvcWithDefaultRoute' 配置 MVC 是 使用端点路由时不支持。继续使用 'UseMvcWithDefaultRoute',请设置'MvcOptions.EnableEndpointRouting = false' 在 'ConfigureServices' 中"
我可以改为在 AddMvc 方法中使用 Lambda 表达式来消除错误,但我不明白为什么会这样
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc((options) => options.EnableEndPointRouting = false);
}
以上工作没有问题。我只是不明白 Action 委托的实现有什么问题?
【问题讨论】:
标签: c# asp.net-core generics delegates