与静态成员变量到XML序列化沿着对象[复制](Serialize object along with

2019-10-18 07:05发布

这个问题已经在这里有一个答案:

  • 序列化一个静态类? 6个回答

我有以下的对象包含静态成员变量。

我想这样做的是序列化这个对象,并将其保存为XML。 不幸的是,下面的代码似乎并没有做的工作。

我希望在得到这个工作,请任何帮助。

[Serializable]
public class Numbers
{
    public int no;
    public static int no1;
    public SubNumbers SubNumber;
}

[Serializable]
public class SubNumbers
{
    public int no;
    public static int no2;
}

[TestMethod]
public void Serialize_Object_with_Static_Property_test()
{
    Numbers a = new Numbers();
    a.no = 12;
    Numbers.no1 = 345243;
    SubNumbers s = new SubNumbers();
    s.no = 459542; 
    SubNumbers.no2 = 9999999;
    a.SubNumber = s;
    String filename = @"a1.txt";
    FileStream fs = new FileStream(filename, FileMode.Open);
    XmlSerializer x = new XmlSerializer(typeof(Numbers));
    x.Serialize(fs, a); 
    fs.Close(); 
}

Answer 1:

系列化,我们只能序列化的属性:

  • 上市
  • 不是静态的
  • 不读只有

在这种情况下,如果你想序列“NO1”,就必须把它包起来,这样的:

[Serializable]
public class Numbers
{
    public int no;
    public static int no1;
    public SubNumbers SubNumber;

    public int no1_Serialize {get {return no1;} set {no1 = value;} }
}


文章来源: Serialize object along with static member variables to XML [duplicate]