ASP.NET Core UI App具有单独的数据.dll

时间:2016-09-07 23:16:52

标签: c# dll asp.net-core asp.net-core-mvc sqlconnection

我正在将应用程序的UI端移动到新的ASP.NET Core MVC结构。不幸的是,我仍然需要引用在上一代ASP.NET框架中构建的数据层。这个数据.dll具有到ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString管理的各种数据库的适当连接字符串,这要求我模仿UI层以实际获取数据。

现在,使用ASP.NET Core MVC,配置的web.config已替换为appsettings.json文件。

这种范式转换打破了我对数据的所有访问权限,因为我无法再在UI应用程序中复制连接字符串。

是否有适当的解决方案可以使这个数据层.dll更加自包含并依赖于自己的内部定义的连接字符串,同时仍然将方法暴露给包含"包含"应用程序 - 在这种情况下,UI层?

2 个答案:

答案 0 :(得分:1)

实际上你确实引用了新的.json文件中的连接字符串。您将执行以下操作:

var builder = new ConfigurationBuilder();
builder.AddInMemoryCollection();
var config = builder.Build();
config["somekey"] = "somevalue";

// do some other work

var setting = config["somekey"]; // also returns "somevalue"

这是一个链接:docs.asp.net

答案 1 :(得分:0)

我已经通过解决方案解决了我的问题,现在就可以了。最终,我想找到一个更好的选择,但我正在前进,这让我的老板感到高兴。

我最后更改了我的方法签名,以接受一个字符串值,表示由于转换为Core MVC而不再在调用项目中的连接字符串。

在被调用的.dll中,代码现在查看传递的参数是否有值,如果是,则使用传递的值初始化SqlConnection。如果未提供参数,则会使用web.config功能查看ConfigurationManager中的配置部分。

这将允许现有项目使用代码以及新的Core MVC项目。它有点笨拙,但功能齐全。