我是这个类库,是重构操作的结果。 我添加了一个App.config文件并添加了这样的内容:
<configuration>
<connectionStrings>
<add name="MyDatabase" connectionString="Data Source=server;Initial Catalog=database;User ID=userid;Password=password" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
但是当我运行应用程序时,调试学会了我这完全被忽略了。即时窗口告诉我:
ConfigurationManager.ConnectionStrings[0]
{data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true}
base {System.Configuration.ConfigurationElement}: {data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true}
ConnectionString: "data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
Key: "LocalSqlServer"
Name: "LocalSqlServer"
Properties: {System.Configuration.ConfigurationPropertyCollection}
ProviderName: "System.Data.SqlClient"
我已经在bin目录中检查了生成的配置文件,其内容与App.config相同。
我尝试使用以下方法阅读App.config:
ConfigurationManager.ConnectionStrings[Constants.Connections.DevConnection].ConnectionString
没有什么不寻常的我会说,但出了什么问题?
答案 0 :(得分:7)
类库没有自己的配置;对于名为Foo.exe的应用程序,您需要将配置放在Foo.exe.config中。这里的例外是web应用程序,其中web.config是命名约定。
答案 1 :(得分:5)
此connectionString应位于您正在运行的exe的相应app.config中。
答案 2 :(得分:0)
文件是否被复制到输出?其次,连接字符串应该可以从您的代码生成的AssemblyName.Settings.Properties类中访问。