Я прочитал только свойство в моем классеКак игнорировать свойство только для чтения во время десериализации XmlSerializer?
[XmlIgnore]
public string Amount
{
get { return "Some value"; }
}
Когда я пытаюсь десериализация объекта из файла я не хочу, чтобы десериализация идет вбрасывание исключения и я не получаю объект. Я пробовал использовать атрибут xml ignore, но мне это не помогает. Только то, что мне нужно, чтобы установить свойства, которые существуют в моем файле.
XML файл
<?xml version="1.0" encoding="utf-8"?>
<Class xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Id>1</KaumeheId>
<PrivaatKey>123</PrivaatKey>
</Class>
Класс
public class Class
{
public int Id { get; set; }
public string PrivaatKey { get; set; }
public string Amount
{
get { return "Some value"; }
}
}
Serializer
public static class XmlDeserializerService<T>
{
public static void LoadDataToClass(T obj, string filePath)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
{
obj = (T) serializer.Deserialize(fileStream);
}
}
}
Дополнительная информация (измененная):
Если я смотрю в отладчике под obj.Amount у меня есть сумма = «obj.Amount» бросил исключение типа System.NullReferenceException
Вы пробовали [XmlAttributeOverrides] (https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributeoverrides (V = vs.110) .aspx), чтобы увидеть, ведет ли он себя по-другому? – Carson
Whar - ваше исключение? ваш пример работает с вашим xml (если вы исправите тег Id в xml) –
XmlIgnoreAttribute должен работать так, что XML будет абсолютно игнорировать readonly Property и должен создавать объект только из того, что определено в XML. Более подробная информация об исключении будет приятной. – Tatranskymedved