1,978
社区成员
发帖
与我相关
我的任务
分享
[Serializable]
public class ClassA : ISerializable
{
private string str_;
private Color m_aa;
private int num_;
private DateTime overdueTime;
public ClassA()
{
}
protected ClassA(SerializationInfo info, StreamingContext context)
{
this.str_ = info.GetString("str");
this.num_ = info.GetInt32("num_");
this.m_aa.A = info.GetInt32("colorA");
this.m_aa.R = info.GetInt32("colorR");
this.m_aa.G = info.GetInt32("colorG");
this.m_aa.B = info.GetInt32("colorB");
//this.m_aa=Color.FromArgb(info.GetInt32("color"); 或者
}
public ClassA(string myStr, int myNum)
{
str_ = myStr;
num_ = myNum;
this.overdueTime = DateTime.Now;
}
public string Str
{
get { return str_; }
set
{
str_ = value;
}
}
public int Num
{
get { return num_; }
set
{
this.num_ = value;
}
}
public DateTime OverdueTime
{
get { return overdueTime; }
set { overdueTime = value; }
}
public Color AA
{
get{
return this.m_aa;
}
set {
this.m_aa = value;
}
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("str", str_);
info.AddValue("num_", num_);
info.AddValue("colorA", this.m_aa.A);
info.AddValue("colorR", this.m_aa.R);
info.AddValue("colorG", this.m_aa.G);
info.AddValue("colorB", this.m_aa.B);
//info.AddValue("color", this.m_aa.ToArgb()); 或者
}
}
public class Program1
{
static void Main(string[] args)
{
ClassA ca = new ClassA("Hello ", 10);
XmlSerializer xSerial = new XmlSerializer(typeof(ClassA));
//StreamReader reader = new StreamReader(@"D:\temp\po.xml ");
//object obj = xSerial.Deserialize(reader);
//StreamWriter write = new StreamWriter(@"D:\temp\po.xml ");
//xSerial.Serialize(write, ca);//为什么串行化不了值
//or use BinaryFormatter
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(@"D:\temp\po.xml", FileMode.Open, FileAccess.Read, FileShare.None);
//formatter.Serialize(stream, ca);
object obj = formatter.Deserialize(stream);
stream.Close();
}
}
[Serializable]
public class ClassA : ISerializable
{
private string str_;
private object m_aa;
private int num_;
private DateTime overdueTime;
public ClassA()
{
}
protected ClassA(SerializationInfo info, StreamingContext context)
{
this.str_ = info.GetString("str");
this.num_ = info.GetInt32("num_");
}
public ClassA(string myStr, int myNum)
{
str_ = myStr;
num_ = myNum;
this.overdueTime = DateTime.Now;
}
public string Str
{
get { return str_; }
set
{
str_ = value;
}
}
public int Num
{
get { return num_; }
set
{
this.num_ = value;
}
}
public DateTime OverdueTime
{
get { return overdueTime; }
set { overdueTime = value; }
}
public object AA
{
get
{
return this.m_aa;
}
set {
this.m_aa = value;
}
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("str", str_);
info.AddValue("num_", num_);
}
}
public class Program1
{
static void Main(string[] args)
{
ClassA ca = new ClassA("Hello ", 10);
XmlSerializer xSerial = new XmlSerializer(typeof(ClassA));
//StreamReader reader = new StreamReader(@"D:\temp\po.xml ");
//object obj = xSerial.Deserialize(reader);
//StreamWriter write = new StreamWriter(@"D:\temp\po.xml ");
//xSerial.Serialize(write, ca);//为什么串行化不了值
//or use BinaryFormatter
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(@"D:\temp\po.xml", FileMode.Open, FileAccess.Read, FileShare.None);
//formatter.Serialize(stream, ca);
object obj = formatter.Deserialize(stream);
stream.Close();
}
}