获取具有多个项目的连接字符串C#SQL Server

时间:2016-10-28 17:17:21

标签: c# sql-server

我有一个包含四个项目的解决方案 - 项目1,项目2等。每个项目都有一个app.config文件。我试图在项目1的调用中引用Project 4中的System.Configuration.ConfigurationManager.ConnectionStrings。

所以在项目1中,我有:

        UtilitiesClass util = new UtilitiesClass();
        string connectionString = util.getConnectionString();

在Project 4中,我有一个实用程序:

public string getConnectionString()
    {
        string cx = System.Configuration.ConfigurationManager.ConnectionStrings["Shared Items.Properties.Settings.ConnectionString"].ConnectionString;
        return (cx);
    }

我得到的错误是连接字符串为空。我从Project 4独立运行它,它获得连接字符串没有错误。

2 个答案:

答案 0 :(得分:1)

通常,您不能在“入口点项目”以外的任何内容中使用应用程序配置阅读器 - 即IIS加载的项目。这里的最佳做法是让“入口点项目”读取其应用程序设置文件,并通过某种服务类将其提供给应用程序的其余部分。

它是“最佳实践”的原因是,您可以在不依赖外部文件的情况下对您的子项目和类进行单元测试(当然,每个测试部署只有一组属性)。通过在输入点设置参数 - 在本例中为测试用例,您可以同时测试多个配置。

答案 1 :(得分:1)

您可以尝试将资源文件(.resx)添加到项目中,添加连接字符串并将其可访问性更改为public,以便您可以通过项目使用它。希望这可以帮助你