0
这很奇怪。我有一个配置文件,它是格式良好的XML。我从文件创建流并使用似乎是非常典型的代码序列化:XmlSerializer反序列化在发布模式下失败
TextWriter tw = new StreamWriter(tempFile);
我使用创造了一个串行如下:
XmlSerializer ConfigSettingSerializer = new XmlSerializer(typeof(ConfigSettings));
哪里ConfigSettings仅仅是一个包含容器类的字符串变量和值。
然后我使用序列化的流并使用ConfigurationManager类和AppSettings将其作为配置存储起来。然后,我检索的appSettings序列化的数据,并尝试将数据流转换回原班:
string configXml = ConfigurationManager.AppSettings[Id];
using (StringReader reader = new StringReader(configXml))
{
retVal = (ConfigSettings)MVHelper.ConfigSettingSerializer.Deserialize(reader);
}
这一切都工作得很好,直到我从调试开关可以松开,当我在有关反序列化调用得到一个错误无效的XML,抱怨文档中最后一个字符:XML文档中存在错误(92,18)。内部例外情况是:“根级数据无效,92行,18位”。该文档与在调试模式下生成的文档相同,并且在任何浏览器中呈现良好。我的猜测是,可能还有其他事情在发生,真正的错误在某种程度上被掩盖了,但到目前为止我没有看到它。任何建议将不胜感激。
谢谢,
加里
如果您将xml缩短为最小值,会发生什么情况?你仍然得到错误? – Default
可能的解决方案http://stackoverflow.com/q/5748668/395718 – Dialecticus
最小化configsettings类以仅包含一个值我仍然得到相同的错误。 – Gary