当前位置:编程学习 > C#/ASP.NET >>

C# 读取App.Config 文件

我在程序中修改了配置文件中的内容,然后再去读取配置文件的内容。读取出来的内容还是修改之前的内容 --------------------编程问答-------------------- 重新编译后试试看,默认读取debug下的app.config。 --------------------编程问答-------------------- 那说明你上次没有保存,或者保存失败,看下代码 --------------------编程问答-------------------- 试试ConfigurationManager.RefreshSection方法 --------------------编程问答-------------------- <connectionStrings>
    <add name="conn" connectionString="server=.;uid=sa;pwd=123;database=Test"/>
  </connectionStrings>
这是在config里面写的代码
//获取配置文件中的字符串  
        private static string connString = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString; --------------------编程问答-------------------- 修改之后记得保存 --------------------编程问答-------------------- 配置文件的修改我使用的修改XML文件的方法。在程序中修改之后,在文件中我也看到是修改过了的,但是在程序中去调取显示的方法,还是显示修改之前的值。 --------------------编程问答-------------------- 应该是没有编译吧 --------------------编程问答-------------------- 不知道楼主开发的是哪类的应用程序,如果是用clickonce部署的应用程序(比如wpf),修改配置文件以后,需要用mage工具重新签名,否则程序清单manifest是不更新的(或者出现检测hash值不匹配等错误)。

--------------------编程问答--------------------



//一般情况下,我是这么操作的:

  string mkmc = ConfigurationManager.AppSettings["Main"];

//写在 Config文件里的是这样:
 <appSettings>
     <add key="Main" value="Win_Cammer_Web.exe" />
  </appSettings>
--------------------编程问答-------------------- string key =  ConfigurationManager.AppSettings["Key"].Trim();

常用的话,封装个函数,要不有点长,能省点代码,就省点。。 --------------------编程问答-------------------- app.config文件在程序运行之初就加载了,所以在程序中的修改需要在下次运行中才能体现出来。 --------------------编程问答-------------------- 参考 --------------------编程问答-------------------- // Show how to use OpenExeConfiguration(ConfigurationUserLevel) 
// and RefreshSection.
static void UpdateAppSettings()
{
    // Get the configuration file.
    System.Configuration.Configuration config =
      ConfigurationManager.OpenExeConfiguration(
      ConfigurationUserLevel.None);

    // Add an entry to appSettings.
    int appStgCnt = 
        ConfigurationManager.AppSettings.Count;
    string newKey = "NewKey" + appStgCnt.ToString();

    string newValue = DateTime.Now.ToLongDateString() + " " +
                   DateTime.Now.ToLongTimeString();

    config.AppSettings.Settings.Add(newKey, newValue);

    // Save the configuration file.
    config.Save(ConfigurationSaveMode.Modified);

    // Force a reload of the changed section.
    ConfigurationManager.RefreshSection("appSettings");

} --------------------编程问答--------------------
引用 1 楼 guwei4037 的回复:
重新编译后试试看,默认读取debug下的app.config。

大侠,请问为什么我默认读取了和bin文件同一层中的app。config --------------------编程问答-------------------- 重新编译工程! --------------------编程问答--------------------
引用 14 楼 Mic_Gary 的回复:
Quote: 引用 1 楼 guwei4037 的回复:

重新编译后试试看,默认读取debug下的app.config。

大侠,请问为什么我默认读取了和bin文件同一层中的app。config


右击项目属性,点生成,有个输出路径,里面是你的调试路径 --------------------编程问答-------------------- 没保存啊。 --------------------编程问答--------------------
引用 16 楼 wm5920 的回复:
Quote: 引用 14 楼 Mic_Gary 的回复:

Quote: 引用 1 楼 guwei4037 的回复:

重新编译后试试看,默认读取debug下的app.config。

大侠,请问为什么我默认读取了和bin文件同一层中的app。config


右击项目属性,点生成,有个输出路径,里面是你的调试路径

额,好吧,我用了一个application.startuppaht
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,