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