当前位置: 代码迷 >> C# >> AppSettings 值为空是为何
  详细解决方案

AppSettings 值为空是为何

热度:122   发布时间:2016-05-05 02:41:52.0
AppSettings 值为空是为什么?
这代码以前运行都很正常的, 今天突然不正常了  , 请问有哪些原因


  string newConfigFilePath = Path.Combine(Application.StartupPath, "config\\MyApp.config"); 
            if (!System.IO.File.Exists(newConfigFilePath))
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                config.SaveAs(newConfigFilePath);
            }
            if (System.AppDomain.CurrentDomain.SetupInformation.ConfigurationFile != newConfigFilePath)
            { AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", newConfigFilePath); }           

            txtstatus.Text = System.Configuration.ConfigurationManager.AppSettings["SMSSpCode"];

现在txtstatus死活都是空, 但是 SMSSpCode这个节点是有值的.
另外 config.SaveAs  也能把AppSettings的值更新, 但是就是读不出来
------解决思路----------------------
Application.StartupPath
叫你用这个,这个受其他影响的
用 AppDomain.CurrentDomain.BaseDirectory来定位物理路径
------解决思路----------------------
设置该配置文件为始终复制,经测试,用x86模式可以获取到值
------解决思路----------------------
引用:
Quote: 引用:

设置该配置文件为始终复制,经测试,用x86模式可以获取到值

改成x86模式生成还是取不到  ,我以前一直都很稳定的, 用这个代码做的其他程序也可以读取到


配置文件生成到指定位置了?
------解决思路----------------------
程序启动时你的appsettings中有值吗,还是说你是启动后通过程序写进去的?如果是后者,可能需要刷新一下
ConfigurationManager.RefreshSection("appSettings"); 然后再读取新值