Я пытаюсь десериализовать XML для объекта. Ниже приведен класс
[XmlRoot("Root")]
public class Root
{
[XmlElement("SampleXmls")]
public List<SampleXml> SampleXmls { get; set; }
}
public class SampleXml
{
[XmlElement("firstname")]
public string fname { get; set; }
[XmlElement("lastname")]
public string lname { get; set; }
[XmlElement("age")]
public int age { get; set; }
[XmlElement("additionalinformation")]
public AdditionalInformation AdditionalInformation { get; set; }
}
public class AdditionalInformation
{
[XmlElement("firstlane")]
public string firstlane { get; set; }
[XmlElement("secondlane")]
public string secondlane { get; set; }
[XmlElement("cityCode")]
public decimal? cityCode { get; set; }
[XmlElement("countryCode", IsNullable = true)]
public int? countryCode { get; set; }
[XmlElement("isValid", IsNullable = true)]
public bool? isValid { get; set; }
[XmlIgnore]
public DateTime enteredDate { get; set; }
}
Тестовый код
class Bar
{
static void Main(string[] args)
{
string testData = @"
<Root>
<SampleXmls>
<firstname>
Vijay
</firstname>
<lastname></lastname>
<age>
25
</age>
<additionalinformation>
<firstlane>
335
</firstlane>
<secondlane>
gulmohar
</secondlane>
<cityCode></cityCode>
<countryCode></countryCode>
<isValid></isValid>
</additionalinformation>
</SampleXmls>
</Root>";
XmlSerializer serializer = new XmlSerializer(typeof(Root));
using (TextReader reader = new StringReader(testData))
{
Root SampleXml = (Root)serializer.Deserialize(reader);
}
Console.ReadKey();
}
}
Я могу десериализовать XML для объекта, когда я указываювсе данные для всех узлов. Но когда я не указываю данные для обнуляемых типов, я получаю исключение времени выполнения FormatException: Input string was not in a correct format
, а когда isValid
не указано с true or false
, тогда я получаю The string '' is not a valid Boolean value.
Я неПонимаю, почему я получаю эти исключения во время выполнения, когда я указал IsNullabble = true
для обнуляемых свойств класса.
Не могли бы вы помочь мне с этой проблемой и сообщить мне причину также
Спасибозаранее