我对 Adem 与 RC2 合作的回复做了一些更正,所以我想我最好将它们发布出来。
我配置了 appsettings.json 并创建了一个像 Adem 的类
{
"ConnectionStrings": {
"DefaultConnectionString": "Default",
"CustomConnectionString": "Custom"
}
}
and
public class ConnectionStrings
{
public string DefaultConnectionString { get; set; }
public string CustomConnectionString { get; set; }
}
Adem 的大部分代码都是在 VS for RC2 中开箱即用的,因此我只需将下面的行添加到 ConfigureServices 方法中
services.Configure<Models.ConnectionStrings>(Configuration.GetSection("ConnectionStrings"));
主要的缺失点是连接字符串必须是传递给控制器(一旦指定了强类型配置对象并将其添加到服务集合中,您就可以通过请求 IOptions 实例从任何 Controller 或 Action 方法请求它,https://docs.asp.net/en/latest/mvc/controllers/dependency-injection.html)
所以这会进入控制器,
private readonly ConnectionStrings _connectionStrings;
public HomeController(IOptions<ConnectionStrings> connectionStrings)
{
_connectionStrings = connectionStrings.Value;
}
然后当你实例化 DAL 时,你传递适当的连接字符串
DAL.DataMethods dm = new DAL.DataMethods(_connectionStrings.CustomConnectionString);
所有的例子都表明了这一点,他们只是没有说明这一点,为什么我尝试直接从 DAL 中提取数据不起作用