dra*_*fly 6 .net c# .net-4.0 xmlserializer
我有一个属性:
public object Tag
Run Code Online (Sandbox Code Playgroud)
但它可以包含有限数量的类型,遗憾的是没有基类型(对象类型除外).但是,当我使用此属性序列化对象时,它不会被序列化.有没有办法用可能的类型指示XmlSerializer?
Mar*_*ell 10
我不推荐这个,但是,您可以使用[XmlElement]etc告诉它有关成员的多个候选类型:
public class Test
{
private static void Main()
{
var ser = new XmlSerializer(typeof (Test));
var obj = new Test {Value = "abc"};
ser.Serialize(Console.Out, obj);
obj = new Test { Value = 123 };
ser.Serialize(Console.Out, obj);
obj = new Test { Value = 456.7F };
ser.Serialize(Console.Out, obj);
}
[XmlElement("a", Type = typeof(int))]
[XmlElement("b", Type = typeof(string))]
[XmlElement("c", Type = typeof(float))]
public object Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
输出的重要位(忽略所有xmlns/ <?xml>etc)是:
<Test>
<b>abc</b>
</Test>
<Test>
<a>123</a>
</Test>
<Test>
<c>456.7</c>
</Test>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11089 次 |
| 最近记录: |