Я не хочу десериализовать некоторые элементы файла XML
, если выполняется какое-либо условие, например, посмотрите на следующий пример кода:
namespace Test
{
[Serializable]
public class Person
{
[XmlElement]
public string FirstName { get; set; }
[XmlElement]
public int Age { get; set; }
}
internal class Program
{
private static string _xml = @"<?xml version=""1.0"" encoding=""utf-16""?>
<ArrayOfPerson xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
<Person>
<FirstName>Kate</FirstName>
<Age>25</Age>
</Person>
<Person>
<FirstName>Johh</FirstName>
<Age>THIS IS NOT NUMBER DO NOT SERIALIZE AGE FOR Johh</Age>
</Person>
</ArrayOfPerson>";
public static void Main()
{
var sr = new StringReader(_xml);
var xmlDeserializer = new XmlSerializer(typeof(List<Person>));
var persons = xmlDeserializer.Deserialize(sr);
}
}
}
В основном то, чего я хочу достичь здесьне десериализовать элемент возраста человека и оставить его по умолчанию, если их FirstName = "John"
.Я знаю, что ShouldSerialize * подход к условно сериализовать свойства.Есть ли что-то похожее для десериализации или, возможно, любой другой подход, который я могу использовать для достижения условной десериализации с использованием XmlSerializer
без реализации собственного десериализатора?