C# 类不能序列化 怎么办

[TypeConverter(typeof(DrawBarcodes))]publicoverridestringValueColumn{get{returnvaluec... [TypeConverter(typeof(DrawBarcodes))]
public override string ValueColumn
{
get { return valuecolumn; }
set { valuecolumn = value; }
}
系统报错说,由于TypeConverter这个类型不能序列化,高手指点
现在序列化以及反序列化都成功啦,但序列化过程中有数据丢失,经过测试反序列化过程中数据没有丢失,现在主要问题是”序列化过程中数据丢失”
展开
 我来答
好几只小萝莉
推荐于2016-08-25 · TA获得超过398个赞
知道小有建树答主
回答量:488
采纳率:100%
帮助的人:166万
展开全部

类声明:

[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);
}
hanwt139
2011-07-22 · TA获得超过843个赞
知道小有建树答主
回答量:1144
采纳率:100%
帮助的人:699万
展开全部
你的类里是不是还有其他自定义的类,需要在那个类的定义上加Serializable
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平梦醉神风1I
2011-07-22 · TA获得超过1510个赞
知道小有建树答主
回答量:691
采纳率:0%
帮助的人:1032万
展开全部
类名前是否加了Serializable特性

[Serializable]
public partial class Yourclass
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-22
展开全部
重写这个类,试试这个吧。
private string _valuecolumn;
public string ValueColumn
{
get { return _valuecolumn; }
set { _valuecolumn = value; }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QQ2k5
2011-07-22 · TA获得超过438个赞
知道小有建树答主
回答量:911
采纳率:25%
帮助的人:258万
展开全部
在上方 [Serializable] 就可以了
更多追问追答
追问
已经加了啊,还是不行
追答
TypeConverter这个是C#里的类,如果你想序列化,就必须重写这个类
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式