Мне нужно десериализовать необработанный 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
Что вы подразумеваете под предварительной обработкой? – JEPAAB
Конвертировать 'True' в' true' любым способом. – Sinatr