示例#1
0
        protected virtual InstanceDescriptor GetInstanceDescriptor(DAEParameter parameter)
        {
            ConstructorInfo info;
            Type            type = parameter.GetType();

            switch (ShouldSerializeSignature(parameter))
            {
            case 0:
            case 1:
            case 2:
            case 3:
                info = type.GetConstructor
                       (
                    new Type[]
                {
                    typeof(string),
                    typeof(DAEDbType)
                }
                       );
                return(new InstanceDescriptor
                       (
                           info,
                           new object[]
                {
                    parameter.ParameterName,
                    parameter.DAEDbType
                }
                       ));

            case 4:
            case 5:
            case 6:
            case 7:
                info = type.GetConstructor
                       (
                    new Type[]
                {
                    typeof(string),
                    typeof(DAEDbType),
                    typeof(string)
                }
                       );
                return(new InstanceDescriptor
                       (
                           info,
                           new object[]
                {
                    parameter.ParameterName,
                    parameter.DAEDbType,
                    parameter.SourceColumn
                }
                       ));

            default:
                info = type.GetConstructor
                       (
                    new Type[]
                {
                    typeof(string),
                    typeof(DAEDbType),
                    typeof(int),
                    typeof(ParameterDirection),
                    typeof(bool),
                    typeof(byte),
                    typeof(byte),
                    typeof(string),
                    typeof(DataRowVersion),
                    typeof(object)
                }
                       );
                return(new InstanceDescriptor
                       (
                           info,
                           new object[]
                {
                    parameter.ParameterName,
                    parameter.DAEDbType,
                    parameter.Size,
                    parameter.Direction,
                    parameter.IsNullable,
                    parameter.Precision,
                    parameter.Scale,
                    parameter.SourceColumn,
                    parameter.SourceVersion,
                    parameter.Value
                }
                       ));
            }
        }