我有一个我要序列化的自定义类型,这个自定义类型接受可能包含转义字符的输入。
M1_Serilizer(MyCustomType customTypeObj)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyCustomType));
StringWriter sw = new StringWriter(CultureInfo.InvariantCulture);
serializer.Serialize(sw, customTypeObj);
string str= sw.ToString();
M2_Deserializer(str);
}
M2_Deserializer(string str)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyCustomType));
StringReader sr = new StringReader(str);
MyCustomType customTypeObj = (MyCustomType)serializer.Deserialize(sr);
}
----------Exception details----------
当客户将输入obj配置为< FieldName> PRINTLINE00< / FieldName>
< FieldValue> DENIAL STATE 217< / FieldValue>,当反序列化相同数据时出现异常:
例外情况是: - 消息:XML文档中存在错误(6,22)。
String:
<?xml version="1.0" encoding="utf-16"?>
<InputEntry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Fields>
<Field>
<FieldName>PRINTLINE00</FieldName>
<FieldValue>DENIAL STATE 217</FieldValue>
</Field>
</Fields>
</InputEntry>
--------------------
当转义类型字符是CustomTypeObj的一部分时,在反序列化时它会抛出异常。
问题1)我如何克服这个问题?
问题2)我应该使用StringReader和StringWriter而不是内存流或其他方式。 StringWriter / reader仅提供我的内部功能。
问题3)如何处理这些逃避字符?