Rhu*_*arb 27 .net c# xml serialization xml-serialization
我有一个简单的枚举:
enum simple
{
one,
two,
three
};
Run Code Online (Sandbox Code Playgroud)
我也有一个具有类型属性的类simple.我尝试用属性装饰它:[XmlAttribute(DataType = "int")].但是,当我尝试使用一个序列化它时失败XmlWriter.
这样做的正确方法是什么?我是否必须标记枚举本身以及属性,如果是,请使用哪种数据类型?
zeb*_*box 46
根据Darin Dimitrov的回答 - 我要指出的另一件事是,如果你想控制枚举字段的序列化方式,那么你可以使用XmlEnum属性来装饰每个字段.
public enum Simple
{
[XmlEnum(Name="First")]
one,
[XmlEnum(Name="Second")]
two,
[XmlEnum(Name="Third")]
three,
}
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 24
串行化枚举属性应该没有任何问题:
public enum Simple { one, two, three }
public class Foo
{
public Simple Simple { get; set; }
}
class Program
{
static void Main(string[] args)
{
using (var writer = XmlWriter.Create(Console.OpenStandardOutput()))
{
var foo = new Foo
{
Simple = Simple.three
};
var serializer = new XmlSerializer(foo.GetType());
serializer.Serialize(writer, foo);
}
}
}
Run Code Online (Sandbox Code Playgroud)
生产:
<?xml version="1.0" encoding="utf-8"?>
<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Simple>three</Simple>
</Foo>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26113 次 |
| 最近记录: |