use*_*486 8 c# xml xmlserializer
我想将类序列化为XML,为其分配XML属性.片段:
[XmlType(TypeName = "classmy")]
public class MyClass2 : List<object>
{
[XmlAttribute(AttributeName = "myattr")]
public string Name { get; set; }
}
public class MyConst
{
public MyConst()
{
MyClass2 myClass2 = new MyClass2 { 10, "abc" };
myClass2.Name = "nomm";
XmlSerializer serializer = new XmlSerializer(typeof(MyClass2));
serializer.Serialize(Console.Out, myClass2);
}
}
Run Code Online (Sandbox Code Playgroud)
但是生成的XML看起来像这样
<?xml version="1.0" encoding="IBM437"?>
<classmy xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<anyType xsi:type="xsd:int">10</anyType>
<anyType xsi:type="xsd:string">abc</anyType>
</classmy>
Run Code Online (Sandbox Code Playgroud)
一切都很好,唯一的例外是myClass2.Name没有被序列化.我期待着一些东西
<classmy myattr="nomm" [...]>[...]</classmy>
Run Code Online (Sandbox Code Playgroud)
...为什么不是序列化的,它怎么可能?
不要派生List<T>,用成员创建类List
[XmlType(TypeName = "classmy")]
public class MyClass2
{
[XmlAttribute(AttributeName = "Items")]
List<object> Items { get; set; } //need to change type in `<>`
[XmlAttribute(AttributeName = "myattr")]
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6820 次 |
| 最近记录: |