我有一个给定类型的serializes
和deserializes
个对象的类。我正在尝试序列化包含文件名,文件中的数据以及与文件关联的一些其他详细信息(如创建时间,修改时间等)的自定义文件对象。另外,custome
类包括我在接收器端需要的一些属性或标志(我反序列化的地方)。
当我尝试序列化大约30K这样的文件对象时,它会成功地为大多数文件执行序列化,但会抛出一些文件的outofmemoryexception。
下面是我的序列化类代码:
public static string SerializeToByteArray(Type T, object request)
{
DataContractSerializer serializer = new DataContractSerializer(T);
using (MemoryStream memStream = new MemoryStream())
{
using (StreamReader reader = new StreamReader(memStream))
{
serializer.WriteObject(memStream, request);
memStream.Position = 0;
return reader.ReadToEnd();
}
}
}
public static T DeserializeFromByteArray<T>(string xml)
{
DataContractSerializer deserializer = new DataContractSerializer(typeof(T));
using (MemoryStream memStream = new MemoryStream())
{
byte[] data = System.Text.Encoding.UTF8.GetBytes(xml);
memStream.Write(data, 0, data.Length);
memStream.Position = 0;
var newobj = (T)deserializer.ReadObject(memStream);
return newobj;
}
}