从app.config获取数据的最佳方法是什么?

时间:2010-08-18 20:38:39

标签: c# app-config

我用了很长时间:

ConfigurationManager.ConnectionStrings["sqlconnectionstring"].ConnectionString

从app.config文件中获取连接字符串

<configuration>
   <connectionStrings>
       <add name="sqlconnectionstring" connectionString="Data  Source=ggg;Initial Catalog =DB;User ID=sa;Password=sa" />
   </connectionStrings>
</configuration>

最近我发现我可以使用

来获取字符串
global::myProj.Properties.Settings.Default.sqlconnectionstring;
  1. 有什么区别?
  2. 我可以在appSetting下访问密钥吗?
  3. 为什么我不需要导入System.Configuration?
  4. 谢谢Asaf

3 个答案:

答案 0 :(得分:3)

global::myProj.Properties.Settings.Default.sqlconnectionstring;内容由Visual Studio中的设置设计器生成。

可以在解决方案资源管理器中的Properties-&gt; Settings.settings中找到设置,为设置设计器中定义的所有属性自动生成类型安全包装器方法。

这仅适用于设置设计器中定义的设置(连接字符串会自动添加到设置设计器中)。

修改,以回答您的具体问题

  1. 第二个是第一个生成的包装器。
  2. 不,但如果您在设置设计器中创建自己的设置,则会将其存储在另一个名为“applicationSettings”的部分中。
  3. 导入(或者由完全限定名称使用,在生成的包装类中完成)。

答案 1 :(得分:1)

如果您使用的是项目设置,我认为您提到的类型global::myProj.Properties.Settings.Default是由Visual Studio为您生成的。它使用低级基础架构来访问app.config。

请注意,即使您未引用System.configuration.dll,命名空间System.Configuration也可用。这是因为几种类型的System.Configuration命名空间驻留在其他几个程序集中(例如System.dll),默认情况下会引用它们。

ConfigurationManager驻留在System.configuration.dll中。因此,如果您想使用它,则需要引用该程序集。

如果您需要访问app.config文件中的appSetting部分,我认为您需要坚持使用ConfigurationManager。如果您要启动新应用程序,我建议使用Visual Studio对设置的支持,并通过global::myProj.Properties命名空间中提供的类型访问您的设置。

答案 2 :(得分:0)

只有在需要区分特定方法或变量的命名空间时,才真正需要使用global::。更多信息可以在here

找到

对于C#,使用Properties.Settings.Default访问配置文件中的属性要容易得多。