XML 文档(0, 0)中有错误

cc850107 2008-01-22 05:51:57
用下面的代码操作XML文件,
private void OpenConfigFile()
{
cf = new XMLConfigCSharp.Config();
XmlSerializer ser = new XmlSerializer(typeof(XMLConfigCSharp.Config));

if (File.Exists(appPath)) //若存在,读取,存入cf ,方便以后操作
{
FileStream fs = new FileStream(appPath, FileMode.Open);
cf = (XMLConfigCSharp.Config)ser.Deserialize(fs); //报错处

fs.Close();
}
else //
{
cf.UserName = "sa";
cf.UserPass = "111";
FileStream fs = new FileStream(appPath, FileMode.CreateNew);

TextWriter tw = new StreamWriter(fs, new UTF8Encoding());
ser.Serialize(tw, cf);
tw.Close();
fs.Close();
}
}
其中appPath=AppDomain.CurrentDomain.BaseDirectory.ToString() + "MyWinApp.exe.config";
XMLConfigCSharp.Config 是自己编写的类,中有UserName等属性.

第一次调用 OpenConfigFile() 后的MyWinApp.exe.config:
<?xml version="1.0" encoding="utf-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UserName>sa</UserName>
<UserPass>111</UserPass>
</Config>
但再运行时,就报错 "XML 文档(0, 0)中有错误",打开MyWinApp.exe.config文件,里面"未声明config元素"
写这么多是不知道问题出在哪里,希望大虾指教,这种配置文件的操作方法有问题吗?谢谢!
...全文
2272 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jave.Lin 2009-06-25
  • 打赏
  • 举报
回复
楼主精神可嘉。
我现在越来越发现这CSDN的回贴质量不行了。
不过我些高人回答的很好。
看到楼主最后自己解决了。
我也遇到一样的报错,但是我的错误详细的和你的不一样。
我也要自己努力解决这些问题。
cc850107 2008-01-22
  • 打赏
  • 举报
回复
问题解决
问题出在 debug 文件下的exe.config文件上.在vs2003中,C#应用程序配置文件 若取 应用程序名称.exe.config ,这样的名字,每次程序重新编译完后就不见(可按F11后验证),所以我一开始就取的不一样的名字,后面就没有出现问题.
而在 vs2005中 应用程序配置文件即使取 应用程序名称.exe.config 这样的名字,它不会在编译后消失,然后后面不知什么原因就出错了,要想自己操作这个congfig文件,取个不一样的名字就好了.
这是vs2003 与 vs2005的一点区别吧,但终极原因还是不明白,希望各位指教!
cc850107 2008-01-22
  • 打赏
  • 举报
回复
试过了,vs2003下是可以通过的,不知道vs2005应该怎么弄,请指点,谢谢
cc850107 2008-01-22
  • 打赏
  • 举报
回复
忘说了,用的是.net 2005 (.net framework 2.0),好像在.net 2003 里不报错,我先试一下去
cc850107 2008-01-22
  • 打赏
  • 举报
回复
自己顶一下,在线等呢

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧