我有一个包含四个项目的解决方案 - 项目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独立运行它,它获得连接字符串没有错误。
答案 0 :(得分:1)
通常,您不能在“入口点项目”以外的任何内容中使用应用程序配置阅读器 - 即IIS加载的项目。这里的最佳做法是让“入口点项目”读取其应用程序设置文件,并通过某种服务类将其提供给应用程序的其余部分。
它是“最佳实践”的原因是,您可以在不依赖外部文件的情况下对您的子项目和类进行单元测试(当然,每个测试部署只有一组属性)。通过在输入点设置参数 - 在本例中为测试用例,您可以同时测试多个配置。
答案 1 :(得分:1)
您可以尝试将资源文件(.resx)添加到项目中,添加连接字符串并将其可访问性更改为public,以便您可以通过项目使用它。希望这可以帮助你