我正在尝试从app.config获取数据,而且我总是得到零。 App.config在这里:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="ExplorerContext" connectionString="metadata=res://*/ExplorerData.csdl|res://*/ExplorerData.ssdl|res://*/ExplorerData.msl;provider=System.Data.SqlClient;provider connection string="Data Source=MYT\SQLEXPRESS;Initial Catalog=Explorer;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
有人可以解释什么是错的,为什么我不能得到这些值,
System.Configuration.ConfigurationManager.AppSettings.Count
始终为0
我指示我使用类库,我正在尝试使用NUnit项目进行检查。此类库调用另一个使用ADO.NET Entity Project的项目(类库)。
答案 0 :(得分:7)
您没有使用AppSettings
!请改为ConfigurationManager.ConnectionStrings
。
答案 1 :(得分:1)
您的配置文件中没有声明任何AppSettings。如果您尝试获取Connection字符串,则应使用:
var connectionString = ConfigurationManager.ConnectionStrings["ExplorerContext"].ConnectionString;
编辑如果您使用的是NUnit,只要它以DLL命名,就可以提供配置文件。例如,如果DLL名为Foo.dll,则配置文件必须命名为Foo.dll.config。 Visual Studio不会为您执行此操作的DLL。您必须手动创建文件,并且必须确保它进入正确的bin文件夹。
有关详情,请参阅NUnit Configuration Files。
答案 2 :(得分:1)
我忘了指定我使用课程 图书馆,我正试图检查 使用NUnit项目。而这堂课 库调用另一个项目(类 库)也使用ADO.NET实体 项目
您需要将配置信息放入主应用 - 使用/调用具有EF模型的类库项目的应用程序。 .NET配置本身不支持类库级app.config。
因此,在您的测试环境中,主测试工具需要在其app.config中包含这些条目。
如果你坚持你的类库程序集有自己的配置 - 请查看Jon Rista的Cracking the Mysteries of .NET 2.0 Configuration,他详细解释了如何使用ConfigurationManager.OpenExeConfiguration
调用来打开任何* .config文件和在.NET 2.0配置系统中使用它。它有效 - 但它更多的工作,我不会真的推荐它。