/// <summary>
        /// <para>得到读取某个类型的IL代码</para>
        /// <para>reader.ReadXXX(); 或 deserialzer.Deserialze();</para>
        /// </summary>
        /// <param name="g"></param>
        /// <param name="valueType"></param>
        /// <param name="loadValue"></param>
        public static void Read(MethodGenerator g, string dtoMemberName, Type valueType)
        {
            var method   = SerializationMethodHelper.GetTypeMethod(valueType, SerializationMethodType.Deserialize);
            var prmIndex = SerializationMethodHelper.GetParameterIndex(method, SerializationMethodType.Deserialize);

            g.Call(method, () =>
            {
                g.LoadParameter(prmIndex);
                g.Load(dtoMemberName);
                //if (prmIndex == SerializationArgs.DeserializerIndex)
                //{
                //    //是deserializer.Deserializ();
                //    g.LoadVariable(SerializationArgs.TypeNameTable);
                //}
            });
        }
        /// <summary>
        /// <para>得到写入某个类型的IL代码</para>
        /// <para>writer.Write(value); 或 serialzer.Serialze(value);</para>
        /// </summary>
        /// <param name="g"></param>
        /// <param name="valueType"></param>
        /// <param name="loadValue"></param>
        public static void Write(MethodGenerator g, string dtoMemberName, Type valueType, Action <Type> loadValue)
        {
            var method   = SerializationMethodHelper.GetTypeMethod(valueType, SerializationMethodType.Serialize);
            var prmIndex = SerializationMethodHelper.GetParameterIndex(method, SerializationMethodType.Serialize);

            g.Call(method, () =>
            {
                g.LoadParameter(prmIndex);
                g.Load(dtoMemberName);
                var argType = method.GetParameters()[1].ParameterType;
                loadValue(argType);



                //if (prmIndex == SerializationArgs.SerializerIndex)
                //{
                //    //是serializer.Serializ();
                //    g.LoadVariable(SerializationArgs.TypeNameTable);
                //}
            });
        }