C# 类不能序列化 怎么办
[TypeConverter(typeof(DrawBarcodes))]publicoverridestringValueColumn{get{returnvaluec...
[TypeConverter(typeof(DrawBarcodes))]
public override string ValueColumn
{
get { return valuecolumn; }
set { valuecolumn = value; }
}
系统报错说,由于TypeConverter这个类型不能序列化,高手指点
现在序列化以及反序列化都成功啦,但序列化过程中有数据丢失,经过测试反序列化过程中数据没有丢失,现在主要问题是”序列化过程中数据丢失” 展开
public override string ValueColumn
{
get { return valuecolumn; }
set { valuecolumn = value; }
}
系统报错说,由于TypeConverter这个类型不能序列化,高手指点
现在序列化以及反序列化都成功啦,但序列化过程中有数据丢失,经过测试反序列化过程中数据没有丢失,现在主要问题是”序列化过程中数据丢失” 展开
展开全部
类声明:
[Serializable] //←这里加一个[Serializable]
public class Preson
{
//......
}
序列化和反序列化:
//===================序列化===================
//首先,创建一个对象
Person p = new Person();
//我们意图使用一个文件来保存这个对象,于是我们会用到一个文件流
using (FileStream fs = new FileStream("D:/xx.xx", FileMode.OpenOrCreate, FileAccess.Write))
{
//创建一个BinaryFormatter对象用于序列化操作。p=>xx.xx
BinaryFormatter bf = new BinaryFormatter();
//顾名思义,序列化。
//需要我们存放对象的文件的流,当然需要我们意图序列化的对象。
bf.Serialize(fs, p);
}
//===================反序列化===================
Person p2 = null;
//首先我们有一个已经存放对象的文件,即上面你的操作产生的文件xx.xx
using (FileStream fs = new FileStream("D:/xx.xx", FileMode.Open, FileAccess.Read))
{
//同样创建一个BinaryFormatter对象用于反序列化。xx.xx=>p2
BinaryFormatter bf = new BinaryFormatter();
//顾名思义,反序列化。
//需要我们存放对象的文件的流。
//该方法返回的object可强制转化为Person对象,因为xx.xx文件原本就是一个Person对象序列化得到的
p2 = (Person)bf.Deserialize(fs);
}
展开全部
你的类里是不是还有其他自定义的类,需要在那个类的定义上加Serializable
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类名前是否加了Serializable特性
[Serializable]
public partial class Yourclass
[Serializable]
public partial class Yourclass
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-22
展开全部
重写这个类,试试这个吧。
private string _valuecolumn;
public string ValueColumn
{
get { return _valuecolumn; }
set { _valuecolumn = value; }
}
private string _valuecolumn;
public string ValueColumn
{
get { return _valuecolumn; }
set { _valuecolumn = value; }
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在上方 [Serializable] 就可以了
更多追问追答
追问
已经加了啊,还是不行
追答
TypeConverter这个是C#里的类,如果你想序列化,就必须重写这个类
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询