/// <summary>
        /// εΊεˆ—εŒ–
        /// </summary>
        /// <param name="reader"></param>
        public void Serialize(DbDataReader reader)
        {
            if (this.isValue)
            {
                serializer.CharStream.Write(',');
            }
            else
            {
                this.isValue = true;
            }
            int  fieldCount = reader.FieldCount;
            bool isValue    = false;

            if (fieldCount != 0)
            {
                for (int index = 0; index != fieldCount; ++index)
                {
                    if (reader.IsDBNull(index))
                    {
                        if (!isIgnoreNull)
                        {
                            if (isValue)
                            {
                                serializer.CustomWriteNextName(reader.GetName(index));
                            }
                            else
                            {
                                serializer.CustomWriteFirstName(reader.GetName(index));
                                isValue = true;
                            }
                            serializer.CharStream.WriteJsonNull();
                        }
                    }
                    else
                    {
                        if (isValue)
                        {
                            serializer.CustomWriteNextName(reader.GetName(index));
                        }
                        else
                        {
                            serializer.CustomWriteFirstName(reader.GetName(index));
                            isValue = true;
                        }
                        object value = reader.GetValue(index);

                        Action <AutoCSer.Json.Serializer, object> typeSerializer;
                        if (serializers == null)
                        {
                            typeSerializer = typeSerializers[value.GetType()];
                        }
                        else
                        {
                            if (serializers.Length == 0)
                            {
                                serializers = new Action <Json.Serializer, object> [reader.FieldCount];
                            }
                            if ((typeSerializer = serializers[index]) == null)
                            {
                                serializers[index] = typeSerializer = typeSerializers[value.GetType()];
                            }
                        }
                        typeSerializer(serializer, value);
                    }
                }
            }
            if (isValue)
            {
                serializer.CustomObjectEnd();
            }
            else
            {
                serializer.CharStream.WriteJsonObject();
            }
        }