我想反序列化一個XML到一個類,但它給了我一個例外。當屬性是布爾反序列化錯誤
我的類是類似的東西:
public class FieldsVO
{
public bool AllowPrint { get; set; }
public bool AllowAbort { get; set; }
public bool AllowPrintFSFSDA { get; set; }
}
我的XML:
<fields>
<AllowPrint>True</AllowPrint>
<AllowAbort>True</AllowAbort>
<AllowPrintFSFSDA>True</AllowPrintFSFSDA>
</fields>
的反序列化工作的唯一方法是,如果屬性是 「字符串」。 有什麼辦法可以用它做什麼?
這裏的反序列化代碼:
public static object Deserialize(string xml, Type objType)
{
if (false == xml.StartsWith("<"))
{
int pos = xml.IndexOf('<');
xml = xml.Remove(0, pos);
}
XmlSerializer serializer = new XmlSerializer(objType);
XmlReaderSettings set = new XmlReaderSettings();
set.ValidationFlags = XmlSchemaValidationFlags.AllowXmlAttributes;
using (XmlReader reader = XmlReader.Create(new StringReader(xml), set))
return serializer.Deserialize(reader);
}
後的實際(德)序列化代碼的位置。 –
@HenkHolterman剛剛添加了代碼。 – Rafael
感嘆。現在序列化代碼請。他們必須匹配。 XmlSerializer寫入「true」,而不是「True」。 –