我已經在我的課如何忽略XmlSerializer反序列化期間只讀屬性集?
[XmlIgnore]
public string Amount
{
get { return "Some value"; }
}
只讀屬性當我嘗試從文件反序列化對象,我不希望出現這種情況反序列化去拋出異常,我沒有收到對象。我試過使用xml忽略屬性,但它不能幫助我。只有我需要設置我的文件中存在的屬性。
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"; }
}
}
串行
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(如果您更正了xml中的Id標記) –
XmlIgnoreAttribute應該起作用,因爲XML將絕對忽略只讀屬性,並且應該僅根據XML中定義的內容創建對象。有關異常的更多細節會很好。 – Tatranskymedved