【发布时间】:2019-12-13 11:36:51
【问题描述】:
我正在尝试对一个已经提出的问题进行更多说明。因为我是新用户,所以我还不能评论(你必须有 50 声望才能评论)。
关于Global Variables in ASP.Net Core 2
@nurdyguy 认为“框架中内置的依赖注入将填充选项变量”。
var repo = new DB();
更多代码来演示问题:
public class Secrets
{
public string ConnectionString { get; set; }
}
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
.
.
.
System.Action<Secrets> opts = (opt =>
{
opt.ConnectionString = Configuration["ConnectionString"];
});
services.Configure(opts);
services.AddSingleton(resolver => resolver.GetRequiredService<IOptions<Secrets>>().Value);
}
}
public sealed class DB
{
private string _connectionString;
public DB(Secrets secrets)
{
_connectionString = secrets.ConnectionString;
}
}
public class testModel : PageModel
{
public void OnGet()
{
DB db = new DB();
}
}
当我尝试实例化该类时,我收到以下编译时错误:
错误 CS7036 没有给出与“DB(Secrets)”所需的形参“secrets”相对应的参数
我确定我正确地遵循了代码示例。他们是另一种实例化类的方式吗?
【问题讨论】:
-
你读过stackoverflow.com/a/47464619/34092 吗?看看他们对
IFileSystem做了什么?您需要在此处执行此操作。 -
谢谢@mjwills,提供的链接给了我一个有效的解决方案。我仍然完全不知道 DI 是如何工作的。非常感谢您对新用户的坚持和耐心。这是一个糟糕的问题,我敢肯定没有人会觉得有用,但我现在的日子肯定更好了。干杯????
-
当您对某事不熟悉时,学习是困难的并且需要时间。没什么好羞愧的。很高兴听到该链接有帮助。
标签: c# asp.net-core razor-pages asp.net-core-2.2