Razor Pages 3.1配置注入类



配置注入在我保存代码的简单类(不是从PageModel继承的(中不起作用

尽管有这个代码:

private readonly IConfiguration _configuration;
public MyClass(IConfiguration configuration){
_configuration = configuration;
}

一旦初始化为对象,类总是要求参数configuration,该参数将由框架注入。这就是Razor Pages的工作原理——继承自PageModel的类。

Program.csStartup.cs中的所有配置都是Visual Studio创建的标准配置。我使用Visual Studio 16.4.5和ASP.NET Core 3.1。

我怎样才能做到这一点?

您也可以尝试使用[inject]属性,如:

[Inject]
private IConfiguration Config { get; set; }

这应该将您的IConfiguration注入到类中的属性中。

如果在自定义类中注入IConfiguration,则可以将类注册到DI中,这样可以帮助解决依赖关系:

services.AddTransient<CustomClass>();

然后定义要在其中使用自定义类的实例,例如,在索引页中:

private readonly ILogger<IndexModel> _logger;
private CustomClass _myClass;
public PrivacyModel(ILogger<IndexModel> logger, CustomClass myClass)
{
_logger = logger;
_myClass = myClass;
}
public void OnGet()
{
var connectString=   _myClass.getConnectString();
}

你的班级:

public class CustomClass
{
private IConfiguration _configuration;
public CustomClass(IConfiguration configuration) {
_configuration = configuration;
}
public string getConnectString() {
return  _configuration.GetValue<string>("ConnectionStrings:DefaultConnection"); ;
}
}

最新更新