/**
  * <summary>Write date.</summary>
  */
 private static void WriteDate(PortableWriterImpl ctx, object obj)
 {
     WriteDateTyped(ctx.Stream, (DateTime?)obj);
 }
 /**
  * <summary>Write double.</summary>
  */
 private static void WriteDouble(PortableWriterImpl ctx, object obj)
 {
     WriteDoubleTyped(ctx.Stream, (double)obj);
 }
 /**
  * <summary>Write decimal.</summary>
  */
 private static void WriteDecimal(PortableWriterImpl ctx, object obj)
 {
     WriteDecimalTyped(ctx.Stream, (decimal)obj);
 }
 /**
  * <summary>Write long.</summary>
  */
 private static void WriteLong(PortableWriterImpl ctx, object obj)
 {
     WriteLongTyped(ctx.Stream, (long)obj);
 }
 /**
  * <summary>Write float.</summary>
  */
 private static void WriteFloat(PortableWriterImpl ctx, object obj)
 {
     WriteFloatTyped(ctx.Stream, (float)obj);
 }
 /**
  * <summary>Write char.</summary>
  */
 private static void WriteChar(PortableWriterImpl ctx, object obj)
 {
     WriteCharTyped(ctx.Stream, (char)obj);
 }
 /**
  * <summary>Write int.</summary>
  */
 private static void WriteInt(PortableWriterImpl ctx, object obj)
 {
     WriteIntTyped(ctx.Stream, (int)obj);
 }
 /**
  * <summary>Write byte.</summary>
  */
 private static void WriteByte(PortableWriterImpl ctx, object obj)
 {
     WriteByteTyped(ctx.Stream, (byte)obj);
 }
 /**
  * <summary>Write short.</summary>
  */
 private static void WriteShort(PortableWriterImpl ctx, object obj)
 {
     WriteShortTyped(ctx.Stream, (short)obj);
 }
 /**
  * <summary>Write boolean.</summary>
  */
 private static void WriteBool(PortableWriterImpl ctx, object obj)
 {
     WriteBoolTyped(ctx.Stream, (bool)obj);
 }
        /// <summary>
        /// Write enum.
        /// </summary>
        private static void WriteEnum(PortableWriterImpl ctx, object obj)
        {
            ctx.Stream.WriteByte(PortableUtils.TypeEnum);

            PortableUtils.WriteEnum(ctx.Stream, (Enum)obj);
        }
        /**
         * <summary>Write portable object.</summary>
         */
        private static void WritePortable(PortableWriterImpl ctx, object obj)
        {
            ctx.Stream.WriteByte(PortableUtils.TypePortable);

            PortableUtils.WritePortable(ctx.Stream, (PortableUserObject)obj);
        }
        /**
         * <summary>Write map entry.</summary>
         */
        private static void WriteMapEntry(PortableWriterImpl ctx, object obj)
        {
            ctx.Stream.WriteByte(PortableUtils.TypeMapEntry);

            PortableUtils.WriteMapEntry(ctx, (DictionaryEntry)obj);
        }
        /**
         * <summary>Write Hashtable.</summary>
         */
        private static void WriteHashtable(PortableWriterImpl ctx, object obj)
        {
            ctx.Stream.WriteByte(PortableUtils.TypeDictionary);

            PortableUtils.WriteTypedDictionary((IDictionary)obj, ctx, PortableUtils.MapHashMap);
        }