public void Serialize(Stream dest, Exception value)
{
if (dest == null)
throw new ArgumentNullException("dest");
if (value == null)
throw new ArgumentNullException("value");
var type = value.GetType();
int typeAlias = _data.TypeTable.GetAlias(type);
var typeSerializable = _data.MessageSerializer.CanSerialize(type);
dest.WriteByte((byte)((typeAlias != 0 ? 1 : 0) | (typeSerializable ? 2 : 0)));
if (typeAlias != 0)
dest.Write32BitEncodedInt(typeAlias);
else
dest.WriteString(type.FullName);
if (typeSerializable)
{
var lengthMarker = new StreamLengthMarker(dest, true);
_data.MessageSerializer.Serialize(dest, value);
lengthMarker.WriteLength(true);
}
}