using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
using System.Windows.Forms;
namespace Test
{
public class Dog
{
string name;
string color;
int age;
Cat cat;
[NonSerialized]
private static Dog _instance;
[XmlIgnore]
public static Dog Instance
{
get
{
if (Dog._instance == null)
{
Dog._instance = new Dog();
}
return Dog._instance;
}
set
{
Dog._instance = value;
}
}
static Dog()
{
}
public static void LoadFromXmlFile()
{
FileStream fileStream = new FileStream("dog.xml", FileMode.Open, FileAccess.Read);
object obj = new XmlSerializer(typeof(Dog)).Deserialize((Stream)fileStream);
fileStream.Close();
Dog.Instance = (Dog)obj;
}
public static void SaveToXmlFile()
{
FileStream fileStream = new FileStream("dog.xml", FileMode.Create, FileAccess.Write);
new XmlSerializer(typeof(Dog)).Serialize((Stream)fileStream, (object)Dog.Instance);
fileStream.Close();
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Color
{
get { return color; }
set { color = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public LoginTest.Cat Cat
{
get
{
if (cat == null)
{
cat = new Cat();
}
return cat;
}
set { cat = value; }
}
}
public class Cat
{
public Cat()
{
}
string name;
string color;
int age;
public string Name
{
get { return name; }
set { name = value; }
}
public string Color
{
get { return color; }
set { color = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
}
//测试代码
Dog.LoadFromXmlFile();
Dog.Instance.Age = 10;
Dog.Instance.Color = "Yellow";
Dog.Instance.Name = "Snoopy";
Dog.Instance.Cat.Age = 100;
Dog.Instance.Cat.Name = "Miky";
Dog.Instance.Cat.Color = "Black";
Dog.SaveToXmlFile();
一样像其他变量用啊,你把类当做类型来用就行了
举个例子
public class A
{
public int age;
public strng name;
}
public class B
{
public A member;
public int index;
}
实例化B的对象 B b = new B(){member = new A(){age = 10, name="ad"}, index = 0};
b序列化之后的结果类似于