关于序列化

triout 2004-06-10 09:35:14
一个序列化的类,如何让其中的某些成员不序列化?
...全文
161 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
北极猩猩 2004-06-11
  • 打赏
  • 举报
回复
使用
[NoSerialized]修饰不想序列化的属性
triout 2004-06-11
  • 打赏
  • 举报
回复
我是这样想的:

把IMAGE文件、CSS文件、XSL文件的内容读入到一个成员(byte[]、string、XmlDocument)变量中,然后,把这个类SERIALIZE后存储。
triout 2004-06-10
  • 打赏
  • 举报
回复
不会吧?

我的计划是建立一个CLASS,在CLASS中存储数据,然后把这个CLASS SERERIAL后保存的。
  • 打赏
  • 举报
回复
NonSerializedAttribute Class Requirements
Namespace: System

Indicates that a field of a serializable class should not be serialized. This class cannot be inherited.

river168 2004-06-10
  • 打赏
  • 举报
回复
如果成员是私有的,应该不会被序列化吧?
  • 打赏
  • 举报
回复
you mean:

public class ByRef
{
public ByRef()
{
}
public int i=1;

}
[Serializable]
public class SerialClass:ISerializable
{
string str=string.Empty;
int i;
[NonSerialized]
ByRef br=new ByRef();
public SerialClass()
{
i=0;
}
public SerialClass(int ii)
{
i=ii;
}
public SerialClass(int ii,string s)
{
i=ii;
str=s;
}
public void setObj(ByRef b)
{
b.i=this.i;
}
protected SerialClass(SerializationInfo info, StreamingContext context)
{
this.str=info.GetString("str");
this.i=info.GetInt32("i");
}
public void getValues(out int i,ref String str)
{
i=this.i;
str=this.str;
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
// TODO: 添加 SerialClass.GetObjectData 实现
info.AddValue("str",str);
info.AddValue("i",i);
}
}

if you want to serialization,you can:
SerialClass sc=new SerialClass(100,"hhh");
IFormatter formatter=new BinaryFormatter();
Stream stream=new FileStream (@"d:\obj.bin",FileMode.Create,FileAccess.Write,FileShare.None);
formatter.Serialize(stream,sc);
stream.Close();
it is ok!br can not be serialized in stream
huangsuipeng 2004-06-10
  • 打赏
  • 举报
回复
楼主的CLASS目的都是作为一个DATA CONTAINER吧?
triout 2004-06-10
  • 打赏
  • 举报
回复
up

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧