为了账号安全,请及时绑定邮箱和手机立即绑定

XmlSerializer,可序列化所有和唯一的嵌套值类型属性

XmlSerializer,可序列化所有和唯一的嵌套值类型属性

C#
米琪卡哇伊 2021-03-31 09:39:23
我需要序列化一个类,以便序列化将包括所有嵌套的值类型属性。我发现用英语将其概括起来有些困难(不是母语的人,因此欢迎措词的编辑),所以我将解释:如果属性是值类型-序列化其名称和值如果属性为Nullable类型:如果其值非null,则执行上述操作(有效地,序列化Nullable的Value属性);否则,将其设置为null 。否则,请不要序列化它。如果属性是类类型,请根据上述内容对类的属性进行序列化,而不要对类名进行序列化。例如,这:public class SerializeMe{    public int A { get; set; }    public int? B { get; set; }    public int? C { get; set; }    public MyClass MyClass { get; set;}}public class MyClass{    public int Z { get; set;}}如果像这样实例化:public static void Main(){    var instance = new SerializeMe    {        A = 1,        B = 3,        MyClass = new MyClass { Z = 2},    });}应该像这样序列化:<SerializeMe>  <A>1</A>  <B>3</B>  <Z>2</Z></SerializeMe>但是我不知道该怎么做,最后我说:<SerializeMe>  <A>1</A>  <B>3</B>  <UndesiredTag><Z>2</Z></UndesiredTag></SerializeMe>现在,最后一个项目符号要求是递归,但是据我从这个答案可以理解WriteXml,可能是父类可以省略<UndesiredTag>标记,而嵌套类则不能。请注意,我当前的代码仅假设一层嵌套。如果您认为可以使用递归来解决我的问题,那会更好-因为您允许多个嵌套级别。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信