您好,我需要序列化我的类的几个字段
class Foo
{
Guid value1;
decimal value2;
SomeCustomEnum value3;
}是否可以逐个序列化所有字段:
MemoryStream ms = new MemoryStream();
SoapFormatter sf = new SoapFormatter();
sf.Serialize(ms,value1;
sf.Serialize(ms, value2);
sf.Serialize(ms, value3);
string data = Convert.ToBase64String(ms.ToArray());
ms.Close();发布于 2009-12-01 04:45:26
标记您不想用NonSerialized序列化的字段。这样您就可以跳过第三方字段。
[Serializable]
class Foo
{
Guid value1;
decimal value2;
SomeCustomEnum value3;
[NonSerialized]
int Skip = 12;
}在关于继承的注释后编辑新示例。您可以手动控制序列化:
class Foo
{
public Guid value1;
public decimal value2;
public SomeCustomEnum value3;
}
[Serializable]
class Bar : Foo, ISerializable
{
private int a;
public Bar()
{
}
#region Implementation of ISerializable
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("a", a);
info.AddValue("value1", value1);
info.AddValue("value2", value2);
}
protected Bar(SerializationInfo info,StreamingContext context)
{
a = info.GetInt32("a");
value1 = (Guid)info.GetValue("value1", typeof(Guid));
value2 = info.GetDecimal("value2");
}
#endregion
}https://stackoverflow.com/questions/1820400
复制相似问题