.net 无法读取app.config,为什么?
我试图从app.config获取数据,但我总是得到零。App.config位于以下位置:.net 无法读取app.config,为什么?,.net,app-config,.net,App Config,我试图从app.config获取数据,但我总是得到零。App.config位于以下位置: <?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> <add name="ExplorerContext" connectionString="metadata=res://*/ExplorerData.csdl|res://*/ExplorerDa
<?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实体项目的项目(类库)。您没有使用
AppSettings
!改为选中ConfigurationManager.ConnectionString。您的配置文件中没有声明任何AppSettings。如果您试图获取连接字符串,则应使用:
var connectionString = ConfigurationManager.ConnectionStrings["ExplorerContext"].ConnectionString;
编辑如果使用NUnit,则可以提供配置文件,只要该文件以DLL命名即可。例如,如果DLL名为Foo.DLL,则配置文件必须名为Foo.DLL.config。Visual Studio不会为DLL执行此操作。您必须手动创建该文件,并且必须确保它进入正确的bin文件夹
更多信息,请参阅
我忘了指定我使用类
图书馆,我想查一下
使用NUnit项目。这个班呢
库调用另一个项目(类
库)使用ADO.NET实体
项目
您需要将配置信息放入主应用程序中——使用/调用带有EF模型的类库项目的应用程序。NET配置本机不支持类库级别的app.config
因此,在您的测试环境中,主测试线束需要在其app.config中包含这些条目
如果坚持类库程序集有自己的配置,请查看Jon Rista的书,他在书中详细解释了如何使用
ConfigurationManager.OpenExeConfiguration
调用打开任意*.config文件并在.NET 2.0配置系统中使用它。它很管用——但它需要更多的工作,我不会真的推荐它。哦,天哪!当我使用这种结构时,我可以看到一些奇怪的连接字符串,这些字符串在我的app.config中没有:System.Configuration.ConfigurationManager.connectionString[0]{data source=。\SQLEXPRESS;Integrated…Name:“LocalSqlServer”ProviderName:“System.data.SqlClient”我无法想象它是从哪里来的???我没有指定ConnectionString[0],而是使用OP中的名称按名称拉取它(即ConnectionString[“ExplorerContext”]。默认情况下,ASP.NET会在LocalSqlServer的machine.config文件中添加一个连接字符串,您可以忽略该字符串。@user46503:到本地SQL server的连接字符串来自系统内部深处的machine.config…..当我尝试调用system.Configuration.ConfigurationManager.ConnectionString[“ExplorerContext”]它总是返回null!我无法理解,为什么会这样,因为我可以看到App.config并将其复制到bin/debug文件夹中…我知道这是旧的,如果这里没有答案,请尝试: