如何序列化该类和子类以获得此XML格式

本文关键字:XML 格式 子类 序列化 | 更新日期: 2023-09-27 18:26:28

我目前正在做序列化的工作。现在我正在尝试用子类序列化一个类。

这里是我想要zerialize的类和子类的骨架:

public class MyClass
{
    public class MySubClass
    {
        public static int MySubInt { get; set; }
        public static string MySubStr { get; set; }
    }
    public class MySubClass2
    {
        public static int MySubInt2 { get; set; }
        public static string MySubStr2 { get; set; }
    }
    public static int MyInt { get; set; }
    public static string MyStr { get; set; }
}

注意:如果看起来更好的话,子类可以是枚举。

我想要一些类似的东西:

<MyClass>
    <MySubClass>
        <MySubInt>42</MySubInt>
        <MySubStr>Toto</MySubStr>
    </MySubClass>
    <MySubClass2>
        <MySubInt2>4242</MySubInt2>
        <MySubStr2>Titi</MySubStr2>
    </MySubClass2>
    <MyInt>84</MyInt>
    <MyStr>Tutu</MyStr>
</MyClass>

我知道如何序列化,但我不知道如何获得我想要的预期结果。

编辑:我需要像那样使用这个类:

int toto = MyClass.MySubClass.MySubInt;
string titi = MyClass.MyStr;
string tutu = MyClass.MySubClass2.MySubStr2;
// ...

谢谢你的帮助!

如何序列化该类和子类以获得此XML格式

您可以通过将嵌套类公开为根类的属性来获得确切的输出。

public class MyClass
{
    Public MySubClass MySubClass {get;set;}
    Public MySubClass2 MySubClass2 {get;set;}
    public class MySubClass
    {
        public static int MySubInt { get; set; }
        public static string MySubStr { get; set; }
    }
    public class MySubClass2
    {
        public static int MySubInt2 { get; set; }
        public static string MySubStr2 { get; set; }
    }
    public static int MyInt { get; set; }
    public static string MyStr { get; set; }
}

然而,这是一个相当糟糕的设计,我会回避它

我还强烈建议进行一些搜索,并通读像这样的文章