[英].NET Xml serializer optional attributes
鑒於以下代碼......
[XmlType("Field")]
public class SearchField
{
[XmlAttribute("alias")]
public string Alias;
[XmlAttribute("entity")]
public string Entity;
}
別名是我們的可選字段,但是當xml中缺少“alias”屬性時,反序列化器會拋出。 你如何讓它成為可選的? 是否需要架構?
很奇怪,因為以下程序對我來說沒問題,沒有任何投擲:
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
[XmlType("Field")]
public class SearchField
{
[XmlAttribute("alias")]
public string Alias;
[XmlAttribute("entity")]
public string Entity;
}
class Program
{
static void Main()
{
using (var reader = new StringReader("<Field entity=\"en\" />"))
{
var serializer = new XmlSerializer(typeof(SearchField));
var s = (SearchField)serializer.Deserialize(reader);
Console.WriteLine(s.Alias);
Console.WriteLine(s.Entity);
}
}
}
如您所見,輸入XML中省略了alias
屬性,但反序列化沒有問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.