我正在尝试将 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);
}