2

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

我想做的是序列化这个对象并将其保存到 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(); 
}
4

1 回答 1

10

使用序列化,我们只能序列化以下属性:

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

在这种情况下,如果要序列化“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;} }
}
于 2013-06-20T20:37:42.930 回答