我有一个C#程序正在创建一个深度嵌套的List。我正在序列化(XML)列表以保存程序中的所有用户输入,并且我能够对文件进行反序列化(XML)以恢复列表中的用户输入。
序列化列表后,我最近将程序中的几个变量从布尔值更改为用户定义的类型,因为true / false未正确定义其属性。
现在当我尝试反序列化文件时,我得到一个异常,说明我没有变量的有效值。这使得总计有意义。
问题是我的代码中是否可以执行某些操作,以便在类型不匹配时反序列化将使用当前默认值。目前我根本无法阅读该文件。
下面是我反序列化文件的代码。
xmlserializer = new XmlSerializer(Type.GetType(strCampusType), GlobalClass.objRunApplication.m_ListOfSerializableTypes.ToArray());
stream = File.OpenRead(strFileName);
try
{
objCampusCopy = (CAMPUS)xmlserializer.Deserialize(stream);
if (objCampusCopy != null)
{...}
}
catch {}
答案 0 :(得分:0)
您可以尝试按如下方式归因于相关字段:
[OptionalField]
此处有更多信息 - https://msdn.microsoft.com/en-us/library/ms229752(v=vs.110).aspx