0

我目前正在处理序列化的东西。现在我正在尝试用子类序列化一个类。

这里是我要序列化的类和子类的骨架:

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;
// ...

感谢您的帮助!

4

1 回答 1

1

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

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; }
}

然而,这是一个非常糟糕的设计,我会回避它。

我还强烈建议您进行一些搜索并阅读类似这样的已发布文章

于 2013-08-05T22:31:47.240 回答