Csharp/C#教程:使用数组名称包装序列化数组元素分享


使用数组名称包装序列化数组元素

我使用的是VSTS2008 + C#+ .Net 3.0。 我使用下面的代码来序列化XML,我的对象包含数组类型属性,我想在下面的预期结果中添加一个额外的元素’layer(“MyInnerObjectProperties”元素层),我想将“MyInnerObjectProperties”元素作为父元素所有MyInnerObjectProperty元素的元素)。 有任何想法吗?

当前的序列化XML,

    Foo Type   Goo Type    

预期的序列化XML,

      Foo Type   Goo Type     

目前的代码,

 public class MyClass { private MyObject[] _myObjectProperty; [XmlElement(IsNullable=false)] public MyObject[] MyObjectProperty { get { return _myObjectProperty; } set { _myObjectProperty = value; } } } public class MyObject { private MyInnerObject[] _myInnerObjectProperty; [XmlElement(IsNullable = false)] public MyInnerObject[] MyInnerObjectProperty { get { return _myInnerObjectProperty; } set { _myInnerObjectProperty = value; } } } public class MyInnerObject { public string ObjectName; } public class Program { static void Main(string[] args) { XmlSerializer s = new XmlSerializer(typeof(MyClass)); FileStream fs = new FileStream("foo.xml", FileMode.Create); MyClass instance = new MyClass(); instance.MyObjectProperty = new MyObject[1]; instance.MyObjectProperty[0] = new MyObject(); instance.MyObjectProperty[0].MyInnerObjectProperty = new MyInnerObject[2]; instance.MyObjectProperty[0].MyInnerObjectProperty[0] = new MyInnerObject(); instance.MyObjectProperty[0].MyInnerObjectProperty[0].ObjectName = "Foo Type"; instance.MyObjectProperty[0].MyInnerObjectProperty[1] = new MyInnerObject(); instance.MyObjectProperty[0].MyInnerObjectProperty[1].ObjectName = "Goo Type"; s.Serialize(fs, instance); return; } } 

使用XmlArrayItemAttribute

上述就是C#学习教程:使用数组名称包装序列化数组元素分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 [XmlArray("MyInnerObjectProperties")] [XmlArrayItemAttribute("MyInnerObjectProperty", typeof(MyInnerObject), IsNullable = false)] public MyInnerObject[] MyInnerObjectProperty { get { return _myInnerObjectProperty; } set { _myInnerObjectProperty = value; } } 

  ... [XmlArray(IsNullable = false)] [XmlArrayItem("MyInnerObjectProperties")] public MyObject[] MyObjectProperty { get { return _myObjectProperty; } set { _myObjectProperty = value; } } ... 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1004666.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐