我需要將一個raw xml反序列化爲一個特定的對象。但是,當涉及到布爾類型和枚舉類型時,我遇到了問題,因爲區分大小寫是完整的。DataContractSerializer大小寫敏感性
public MyObjectTypeDeserializeMethod(string rawXML)
{
DataContractSerializer serializer = new DataContractSerializer(typeof(MyObjectType));
MyObjectType tempMyObject = null;
try
{
// Use Memory Stream
using (MemoryStream memoryStream = new MemoryStream())
{
// Use Stream Writer
using (StreamWriter streamWriter = new StreamWriter(memoryStream))
{
// Write and Flush
streamWriter.Write(rawXML);
streamWriter.Flush();
// Read
memoryStream.Position = 0;
tempMyObject = (MyObjectType)serializer.ReadObject(memoryStream);
}
}
}
catch (Exception e)
{
throw e;
}
return tempMyObject;
}
public class MyObjectType
{
public bool boolValue {get; set;}
public MyEnumType enumValue {get; set;}
}
如果原始XML包含
<boolValue>true</boolValue>
它工作正常。然而,每當值是對以前的,如
<boolValue>True</boolValue>
如何這一問題,以便允許區分大小寫布爾和枚舉值來解決從原始XML傳遞不同拋出一個異常?
預處理XML應該解決您的問題。 – Sinatr 2014-12-19 10:31:21
預處理是什麼意思? – JEPAAB 2014-12-19 10:32:24
以任何方式將'True'轉換爲'true'。 – Sinatr 2014-12-19 10:35:24