我在Visual Studio 2015中打开一些旧的VB.NET项目,当我编辑代码时,VS会更改语法:
它删除了连接中的"_":
'Before
myString = "ABC" & _
"DEF"
'After
myString = "ABC" &
"DEF"
Run Code Online (Sandbox Code Playgroud)
或者在之前添加一个空格!:
'Before
myDatatable.Rows(0)!myColumn
'After
myDatatable.Rows(0) !myColumn
Run Code Online (Sandbox Code Playgroud)
此语法与Visual Studio 2010或2013不兼容.
如何禁用此更改?
问题:
我正在使用 NET Core 3.1 创建 API 应用程序。我想避免在每个ApiControllers和操作上设置路由属性。我尝试了很多组合UseEndpoints来设置常规路线,但我失败了。
对于某些配置,我无法使 Api 正常工作,而在其他一些配置中,我在启动过程中遇到此异常:
InvalidOperationException:操作“ApiIsWorking”没有属性路由。使用 ApiControllerAttribute 注释的控制器上的操作方法必须进行属性路由。
如何startup.cs使用类名和方法名设置自动映射控制器?
谢谢!
一些代码:
启动文件
...
services.AddControllers()
...
app.UseHttpsRedirection()
.UseRouting()
.UseAuthentication()
.UseEndpoints(endpoints => ?? )
.UseCoreHttpContext()
.UseServerConfiguration();
Run Code Online (Sandbox Code Playgroud)
控制器.cs
[ApiController]
public class BaseAPI : ControllerBase
{
[HttpGet]
public string ApiIsWorking()
{
return "API is working!";
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案:
正如 Reza Aghaei 在解决方案中所说,错误是添加了 ApiController 属性。删除它后,命令 UseEndpoints 开始工作。
我的错误是添加属性以便能够识别应通过 API 公开哪些类。这是没有必要的,因为 UseEndpoints 只映射从 ControllerBase 继承的类。
警告:
2) 我强调了 Zinov …
c# asp.net-apicontroller asp.net-core asp.net-core-webapi asp.net-core-3.1