public static object DeSerializeXrecordData(ResultBuffer xrecordData)
{
object obj2;
bool flag = xrecordData != null;
if (!flag)
{
obj2 = null;
}
else
{
BinaryFormatter formatter
= new BinaryFormatter
{ Binder
= new DomainBinder
() };
MemoryStream serializationStream
= new MemoryStream
(); try
{
TypedValue[] valueArray = xrecordData.AsArray();
int index = 1;
while (true)
{
flag = index < valueArray.Length;
if (!flag)
{
serializationStream.Position = 0L;
obj2 = formatter.Deserialize(serializationStream);
break;
}
if (valueArray[index].TypeCode == 310)
{
byte[] buffer = (byte[]) valueArray[index].Value;
serializationStream.Write(buffer, 0, buffer.Length);
}
index++;
}
}
finally
{
if (!ReferenceEquals(serializationStream, null))
{
serializationStream.Dispose();
}
}
}
return obj2;
}