我想将我的对象序列化为字符串,但我确实收到错误“System.OutOfMemoryException”

时间:2016-12-21 00:18:06

标签: c# .net

我想将对象序列化为字符串,但我确实收到错误:

System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
       at System.Text.StringBuilder.ToString()
       at System.IO.StreamReader.ReadToEnd()
   at TEG.USBSharing.Utility.FileUtility.ValidateReadByStreamReader(StreamReader streamReader)

这是我的代码: (1)序列化

public static string Serialization<T>(T obj)
{
    using (MemoryStream memoryStream = new MemoryStream())
    using (StreamReader reader = new StreamReader(memoryStream))
    {
        DataContractSerializer serializer = new DataContractSerializer(obj.GetType());
        serializer.WriteObject(memoryStream, obj);
        memoryStream.Position = 0;
        return FileUtility.ValidateReadByStreamReader(reader);
    }
}

(2)ReadToEnd

public string ValidateReadByStreamReader(StreamReader streamReader)
{
    string m_Data = string.Empty;
    if (streamReader != null)
    {
        m_Data = streamReader.ReadToEnd();
    }
    return m_Data;
}

(3)我的对象

DataPacKet m_DataPacKet = new DataPacKet() {
    Command = DataPacKet.COMMAND_SEND_FILE_TRANSFER_CONTENT,
    GuidId = m_Guid,
    Data = new DataPacKetContent()
    {
        Sequence = i,
        DataBase64 = Convert.ToBase64String(m_SendingBuffer),
    },
    TransferType = dataPacketRequest.TransferType }; string m_MessageFileDataPacKet =
JsonUtility.Serialization<DataPacKet>(m_DataPacKet);

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您确定您的系统有足够的内存来容纳您的对象,您可以尝试编译x64:

如果您使用的是Visual Studio,则可以转到项目的属性,并在“构建”选项卡下将“平台”目标设置为x64。

enter image description here