看下面实例
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;[Serializable()] 
public class TestSimpleObject 
{
private int AA =  10;
private string BB = "Test";
private static string CC = "TestString";
}public class Test
{
  public static void Main()
{
  TestSimpleObject obj = new TestSimpleObject();   // 创建一个文件"data.xml"并将对象序列化后存储在其中
  Stream stream = File.Open("data.xml", FileMode.Create);
  SoapFormatter formatter = new SoapFormatter();   formatter.Serialize(stream, obj);
  stream.Close();
Console.ReadLine();
}
}生成的data.xml中有下面一段
<a1:TestSimpleObject id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/assem/ConsoleApplication2%2C%20Version%3D1.0.1949.37242%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull"><AA>10</AA>
<BB id="ref-3">Test</BB>
</a1:TestSimpleObject>有AA,BB却没有CC,
怎么样才可以使CC也被序列化?

解决方案 »

  1.   

    public test{
      public static int a;
      ...
      public int aa{
        get{ return test.a; }
        set{ test.a = value; }
      }
    }
      

  2.   

    我认为可以在类中设置一个实例成员变量,在序列化的时候将类的静态成员存于这个成员变量中,在还原的时候可以将这个实例变量的值赋予给类的静态变量.
        public class MyNewClass
        {
            public static int myValue = 0 ;
            public int MyInstanceValue ;        public void SaveStaticToInstance()
            {
                MyInstanceValue = MyNewClass.myValue;
            }
            public void RestoreInstanceToStatic()
            {
                MyNewClass.myValue = MyInstanceValue;
            }
        }    在序列化之前先调用该对象的SaveStaticToInstance()方法,还原后再调用RestoreInstanceToStatic()方法.
      

  3.   

    但这种方式会不会有点麻烦,
    还得建字段与static字段一一对应
      

  4.   

    to  lxhvc(lanhai) :
    "还是做成对象好了" 是什么意思,
    能说明白点吗?