Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法读取app.config,为什么?_.net_App Config - Fatal编程技术网

.net 无法读取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

我试图从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=&quot;Data Source=MYT\SQLEXPRESS;Initial Catalog=Explorer;Integrated Security=True;MultipleActiveResultSets=True&quot;" 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文件夹中…我知道这是旧的,如果这里没有答案,请尝试: