Joh*_*ore 7 .net c# xml xml-serialization
鉴于以下代码......
[XmlType("Field")]
public class SearchField
{
[XmlAttribute("alias")]
public string Alias;
[XmlAttribute("entity")]
public string Entity;
}
Run Code Online (Sandbox Code Playgroud)
别名是我们的可选字段,但是当xml中缺少"alias"属性时,反序列化器会抛出.你如何让它成为可选的?是否需要架构?
Dar*_*rov 11
很奇怪,因为以下程序对我来说没问题,没有任何投掷:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,alias
输入XML中省略了该属性,但反序列化没有问题.
归档时间: |
|
查看次数: |
9284 次 |
最近记录: |