private void WritePrimitive(ref GraphContext context)
{
switch(context.TypeCode)
{
case ObjectTypeCode.Empty:
WriteEmpty();
break;
case ObjectTypeCode.DBNull:
WriteDBNull();
break;
case ObjectTypeCode.Object:
Guard.Fail("WritePrimitive should not have been called for an Object.");
break;
case ObjectTypeCode.Boolean:
WriteBoolean((bool)context.Graph);
break;
case ObjectTypeCode.Char:
WriteChar((char)context.Graph);
break;
case ObjectTypeCode.SByte:
WriteSByte((sbyte)context.Graph);
break;
case ObjectTypeCode.Byte:
WriteByte((byte)context.Graph);
break;
case ObjectTypeCode.Int16:
WriteInt16((short)context.Graph);
break;
case ObjectTypeCode.Int32:
WriteInt32((int)context.Graph);
break;
case ObjectTypeCode.Int64:
WriteInt64((long)context.Graph);
break;
case ObjectTypeCode.UInt16:
WriteUInt16((ushort)context.Graph);
break;
case ObjectTypeCode.UInt32:
WriteUInt32((uint)context.Graph);
break;
case ObjectTypeCode.UInt64:
WriteUInt64((ulong)context.Graph);
break;
case ObjectTypeCode.Single:
WriteSingle((float)context.Graph);
break;
case ObjectTypeCode.Double:
WriteDouble((double)context.Graph);
break;
case ObjectTypeCode.Decimal:
WriteDecimal((decimal)context.Graph);
break;
case ObjectTypeCode.DateTime:
WriteDateTime((DateTime)context.Graph);
break;
case ObjectTypeCode.String:
WriteString((string)context.Graph);
break;
case ObjectTypeCode.TimeSpan:
WriteTimeSpan((TimeSpan)context.Graph);
break;
default:
throw Guard.ArgumentOutOfRange("context.ObjectTypeCode");
}
}