.NET核心控制器类。在声明中调用IConfiguration GetConnectionString会引发编译错误
为什么这个代码会出错?有什么解决办法吗?我需要使用配置中的连接字符串设置我的公共字符串ODataBaseAPIUrl变量,这样我就可以在控制器类的任何方法中使用它.NET核心控制器类。在声明中调用IConfiguration GetConnectionString会引发编译错误,.net,.net-core,.net,.net Core,为什么这个代码会出错?有什么解决办法吗?我需要使用配置中的连接字符串设置我的公共字符串ODataBaseAPIUrl变量,这样我就可以在控制器类的任何方法中使用它 namespace AlioPosApi.Controllers { [Route("api/[controller]")] [ApiController] public class PosFunctionsController : ControllerBase { private re
namespace AlioPosApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class PosFunctionsController : ControllerBase
{
private readonly IConfiguration configuration;
public PosFunctionsController(IConfiguration config)
{
this.configuration = config;
}
//THIS NEXT LINE HAS A //COMPILE ERROR!!
//"cannot reference PosFunctionsController.configuration"
public string ODataBaseAPIUrl = configuration.GetConnectionString("ODataBaseAPIUrl");
...
以下是appsettings.json的内容:
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"ODataBaseAPIUrl" : "http://localhost:7048/DynamicsNAV110/api/beta/companies(kj4081cc-de07-41f9-9f7a-6acdaf296fa4)/"
},
"AllowedHosts": "*"
}
如下所示修复代码 你不能那样做作业。您需要通过依赖项注入在构造函数中实现它
[Route("api/[controller]")]
[ApiController]
public class PosFunctionsController : ControllerBase
{
private readonly IConfiguration configuration;
private readonly string oDataBaseAPIUrl;
public PosFunctionsController(IConfiguration config)
{
this.configuration = config;
this.oDataBaseAPIUrl = configuration.GetConnectionString("ODataBaseAPIUrl");
}
如下所示修复代码 你不能那样做作业。您需要通过依赖项注入在构造函数中实现它
[Route("api/[controller]")]
[ApiController]
public class PosFunctionsController : ControllerBase
{
private readonly IConfiguration configuration;
private readonly string oDataBaseAPIUrl;
public PosFunctionsController(IConfiguration config)
{
this.configuration = config;
this.oDataBaseAPIUrl = configuration.GetConnectionString("ODataBaseAPIUrl");
}
字段是在构造函数运行之前初始化的,这就是为什么不能使用configuration
您可以在构造函数中初始化值:
public PosFunctionsController(IConfiguration config)
{
this.configuration = config;
ODataBaseAPIUrl = configuration.GetConnectionString("ODataBaseAPIUrl");
}
或者更改字段,使其不进行初始化,而是在每次调用时获取值:
public string ODataBaseAPIUrl => configuration.GetConnectionString("ODataBaseAPIUrl");
字段是在构造函数运行之前初始化的,这就是为什么不能使用configuration
您可以在构造函数中初始化值:
public PosFunctionsController(IConfiguration config)
{
this.configuration = config;
ODataBaseAPIUrl = configuration.GetConnectionString("ODataBaseAPIUrl");
}
或者更改字段,使其不进行初始化,而是在每次调用时获取值:
public string ODataBaseAPIUrl => configuration.GetConnectionString("ODataBaseAPIUrl");