ToType() static private method

static private ToType ( InternalPrimitiveTypeE code ) : Type
code InternalPrimitiveTypeE
return System.Type
示例#1
0
        private void ReadMemberPrimitiveUnTyped()
        {
            ObjectProgress objectProgress = (ObjectProgress)this.stack.Peek();

            if (this.memberPrimitiveUnTyped == null)
            {
                this.memberPrimitiveUnTyped = new MemberPrimitiveUnTyped();
            }
            this.memberPrimitiveUnTyped.Set((InternalPrimitiveTypeE)this.expectedTypeInformation);
            this.memberPrimitiveUnTyped.Read(this);
            this.memberPrimitiveUnTyped.Dump();
            this.prs.Init();
            this.prs.PRvarValue        = this.memberPrimitiveUnTyped.value;
            this.prs.PRdtTypeCode      = (InternalPrimitiveTypeE)this.expectedTypeInformation;
            this.prs.PRdtType          = Converter.ToType(this.prs.PRdtTypeCode);
            this.prs.PRparseTypeEnum   = InternalParseTypeE.Member;
            this.prs.PRmemberValueEnum = InternalMemberValueE.InlineValue;
            if (objectProgress.objectTypeEnum == InternalObjectTypeE.Object)
            {
                this.prs.PRmemberTypeEnum = InternalMemberTypeE.Field;
                this.prs.PRname           = objectProgress.name;
            }
            else
            {
                this.prs.PRmemberTypeEnum = InternalMemberTypeE.Item;
            }
            this.objectReader.Parse(this.prs);
        }
示例#2
0
        private void ReadMemberPrimitiveUnTyped()
        {
            ObjectProgress objectOp = (ObjectProgress)_stack.Peek();

            if (memberPrimitiveUnTyped == null)
            {
                memberPrimitiveUnTyped = new MemberPrimitiveUnTyped();
            }
            memberPrimitiveUnTyped.Set((InternalPrimitiveTypeE)_expectedTypeInformation);
            memberPrimitiveUnTyped.Read(this);

            PRs.Init();
            PRs._varValue = memberPrimitiveUnTyped._value;

            PRs._dtTypeCode      = (InternalPrimitiveTypeE)_expectedTypeInformation;
            PRs._dtType          = Converter.ToType(PRs._dtTypeCode);
            PRs._parseTypeEnum   = InternalParseTypeE.Member;
            PRs._memberValueEnum = InternalMemberValueE.InlineValue;

            if (objectOp._objectTypeEnum == InternalObjectTypeE.Object)
            {
                PRs._memberTypeEnum = InternalMemberTypeE.Field;
                PRs._name           = objectOp._name;
            }
            else
            {
                PRs._memberTypeEnum = InternalMemberTypeE.Item;
            }

            _objectReader.Parse(PRs);
        }
        private void ReadMemberPrimitiveUnTyped()
        {
            SerTrace.Log(this, "ReadMemberPrimitiveUnTyped ");
            ObjectProgress objectOp = (ObjectProgress)stack.Peek();

            if (memberPrimitiveUnTyped == null)
            {
                memberPrimitiveUnTyped = new MemberPrimitiveUnTyped();
            }
            memberPrimitiveUnTyped.Set((InternalPrimitiveTypeE)expectedTypeInformation);
            memberPrimitiveUnTyped.Read(this);
            memberPrimitiveUnTyped.Dump();

            prs.Init();
            prs.PRvarValue = memberPrimitiveUnTyped.value;

            prs.PRdtTypeCode      = (InternalPrimitiveTypeE)expectedTypeInformation;
            prs.PRdtType          = Converter.ToType(prs.PRdtTypeCode);
            prs.PRparseTypeEnum   = InternalParseTypeE.Member;
            prs.PRmemberValueEnum = InternalMemberValueE.InlineValue;

            if (objectOp.objectTypeEnum == InternalObjectTypeE.Object)
            {
                prs.PRmemberTypeEnum = InternalMemberTypeE.Field;
                prs.PRname           = objectOp.name;
            }
            else
            {
                prs.PRmemberTypeEnum = InternalMemberTypeE.Item;
            }

            objectReader.Parse(prs);
        }
        internal static void TypeFromInfo(BinaryTypeEnum binaryTypeEnum, object typeInformation, ObjectReader objectReader, BinaryAssemblyInfo assemblyInfo, out InternalPrimitiveTypeE primitiveTypeEnum, out string typeString, out Type type, out bool isVariant)
        {
            isVariant         = false;
            primitiveTypeEnum = InternalPrimitiveTypeE.Invalid;
            typeString        = null;
            type = null;
            switch (binaryTypeEnum)
            {
            case BinaryTypeEnum.Primitive:
                primitiveTypeEnum = (InternalPrimitiveTypeE)typeInformation;
                typeString        = Converter.ToComType(primitiveTypeEnum);
                type = Converter.ToType(primitiveTypeEnum);
                return;

            case BinaryTypeEnum.String:
                type = Converter.typeofString;
                return;

            case BinaryTypeEnum.Object:
                type      = Converter.typeofObject;
                isVariant = true;
                return;

            case BinaryTypeEnum.ObjectUrt:
            case BinaryTypeEnum.ObjectUser:
                if (typeInformation != null)
                {
                    typeString = typeInformation.ToString();
                    type       = objectReader.GetType(assemblyInfo, typeString);
                    if (type == Converter.typeofObject)
                    {
                        isVariant = true;
                        return;
                    }
                }
                return;

            case BinaryTypeEnum.ObjectArray:
                type = Converter.typeofObjectArray;
                return;

            case BinaryTypeEnum.StringArray:
                type = Converter.typeofStringArray;
                return;

            case BinaryTypeEnum.PrimitiveArray:
                primitiveTypeEnum = (InternalPrimitiveTypeE)typeInformation;
                type = Converter.ToArrayType(primitiveTypeEnum);
                return;

            default:
                throw new SerializationException(Environment.GetResourceString("Serialization_TypeRead", new object[]
                {
                    binaryTypeEnum.ToString()
                }));
            }
        }
        private void ReadMemberPrimitiveTyped()
        {
            SerTrace.Log(this, "ReadObjectPrimitive");

            if (memberPrimitiveTyped == null)
            {
                memberPrimitiveTyped = new MemberPrimitiveTyped();
            }

            memberPrimitiveTyped.Read(this);
            memberPrimitiveTyped.Dump();

            prs.PRobjectTypeEnum = InternalObjectTypeE.Object;             //Get rid of
            ObjectProgress objectOp = (ObjectProgress)stack.Peek();

            prs.Init();
            prs.PRvarValue   = memberPrimitiveTyped.value;
            prs.PRkeyDt      = Converter.ToComType(memberPrimitiveTyped.primitiveTypeEnum);
            prs.PRdtType     = Converter.ToType(memberPrimitiveTyped.primitiveTypeEnum);
            prs.PRdtTypeCode = memberPrimitiveTyped.primitiveTypeEnum;

            if (objectOp == null)
            {
                // Top level boxed primitive
                SerTrace.Log(this, "ReadObjectPrimitive, Non-Nested");
                prs.PRparseTypeEnum = InternalParseTypeE.Object;
                prs.PRname          = "System.Variant";
            }
            else
            {
                // Nested in an Object
                SerTrace.Log(this, "ReadObjectPrimitive, Nested");

                prs.PRparseTypeEnum   = InternalParseTypeE.Member;
                prs.PRmemberValueEnum = InternalMemberValueE.InlineValue;

                switch (objectOp.objectTypeEnum)
                {
                case InternalObjectTypeE.Object:
                    prs.PRname           = objectOp.name;
                    prs.PRmemberTypeEnum = InternalMemberTypeE.Field;
                    break;

                case InternalObjectTypeE.Array:
                    prs.PRmemberTypeEnum = InternalMemberTypeE.Item;
                    break;

                default:
                    throw new SerializationException(String.Format(Environment.GetResourceString("Serialization_ObjectTypeEnum"), ((Enum)objectOp.objectTypeEnum).ToString()));
                }
            }

            objectReader.Parse(prs);
        }
示例#6
0
        private void ReadMemberPrimitiveTyped()
        {
            if (_memberPrimitiveTyped == null)
            {
                _memberPrimitiveTyped = new MemberPrimitiveTyped();
            }
            _memberPrimitiveTyped.Read(this);

            PRs._objectTypeEnum = InternalObjectTypeE.Object; //Get rid of
            ObjectProgress objectOp = (ObjectProgress)_stack.Peek();

            PRs.Init();
            PRs._varValue   = _memberPrimitiveTyped._value;
            PRs._keyDt      = Converter.ToComType(_memberPrimitiveTyped._primitiveTypeEnum);
            PRs._dtType     = Converter.ToType(_memberPrimitiveTyped._primitiveTypeEnum);
            PRs._dtTypeCode = _memberPrimitiveTyped._primitiveTypeEnum;

            if (objectOp == null)
            {
                // Top level boxed primitive
                PRs._parseTypeEnum = InternalParseTypeE.Object;
                PRs._name          = "System.Variant";
            }
            else
            {
                // Nested in an Object

                PRs._parseTypeEnum   = InternalParseTypeE.Member;
                PRs._memberValueEnum = InternalMemberValueE.InlineValue;

                switch (objectOp._objectTypeEnum)
                {
                case InternalObjectTypeE.Object:
                    PRs._name           = objectOp._name;
                    PRs._memberTypeEnum = InternalMemberTypeE.Field;
                    break;

                case InternalObjectTypeE.Array:
                    PRs._memberTypeEnum = InternalMemberTypeE.Item;
                    break;

                default:
                    throw new SerializationException(SR.Format(SR.Serialization_ObjectTypeEnum, objectOp._objectTypeEnum.ToString()));
                }
            }

            _objectReader.Parse(PRs);
        }
示例#7
0
        private void ReadMemberPrimitiveTyped()
        {
            if (this.memberPrimitiveTyped == null)
            {
                this.memberPrimitiveTyped = new MemberPrimitiveTyped();
            }
            this.memberPrimitiveTyped.Read(this);
            this.memberPrimitiveTyped.Dump();
            this.prs.PRobjectTypeEnum = InternalObjectTypeE.Object;
            ObjectProgress objectProgress = (ObjectProgress)this.stack.Peek();

            this.prs.Init();
            this.prs.PRvarValue   = this.memberPrimitiveTyped.value;
            this.prs.PRkeyDt      = Converter.ToComType(this.memberPrimitiveTyped.primitiveTypeEnum);
            this.prs.PRdtType     = Converter.ToType(this.memberPrimitiveTyped.primitiveTypeEnum);
            this.prs.PRdtTypeCode = this.memberPrimitiveTyped.primitiveTypeEnum;
            if (objectProgress == null)
            {
                this.prs.PRparseTypeEnum = InternalParseTypeE.Object;
                this.prs.PRname          = "System.Variant";
            }
            else
            {
                this.prs.PRparseTypeEnum   = InternalParseTypeE.Member;
                this.prs.PRmemberValueEnum = InternalMemberValueE.InlineValue;
                switch (objectProgress.objectTypeEnum)
                {
                case InternalObjectTypeE.Object:
                    this.prs.PRname           = objectProgress.name;
                    this.prs.PRmemberTypeEnum = InternalMemberTypeE.Field;
                    break;

                case InternalObjectTypeE.Array:
                    this.prs.PRmemberTypeEnum = InternalMemberTypeE.Item;
                    break;

                default:
                    throw new SerializationException(Environment.GetResourceString("Serialization_ObjectTypeEnum", (object)objectProgress.objectTypeEnum.ToString()));
                }
            }
            this.objectReader.Parse(this.prs);
        }
示例#8
0
        // Given the wire type information, returns the actual type and additional information
        internal static void TypeFromInfo(BinaryTypeEnum binaryTypeEnum,
                                          object?typeInformation,
                                          ObjectReader objectReader,
                                          BinaryAssemblyInfo?assemblyInfo,
                                          out InternalPrimitiveTypeE primitiveTypeEnum,
                                          out string?typeString,
                                          out Type?type,
                                          out bool isVariant)
        {
            isVariant         = false;
            primitiveTypeEnum = InternalPrimitiveTypeE.Invalid;
            typeString        = null;
            type = null;

            switch (binaryTypeEnum)
            {
            case BinaryTypeEnum.Primitive:
                primitiveTypeEnum = (InternalPrimitiveTypeE)typeInformation !;
                typeString        = Converter.ToComType(primitiveTypeEnum);
                type = Converter.ToType(primitiveTypeEnum);
                break;

            case BinaryTypeEnum.String:
                type = Converter.s_typeofString;
                break;

            case BinaryTypeEnum.Object:
                type      = Converter.s_typeofObject;
                isVariant = true;
                break;

            case BinaryTypeEnum.ObjectArray:
                type = Converter.s_typeofObjectArray;
                break;

            case BinaryTypeEnum.StringArray:
                type = Converter.s_typeofStringArray;
                break;

            case BinaryTypeEnum.PrimitiveArray:
                primitiveTypeEnum = (InternalPrimitiveTypeE)typeInformation !;
                type = Converter.ToArrayType(primitiveTypeEnum);
                break;

            case BinaryTypeEnum.ObjectUser:
            case BinaryTypeEnum.ObjectUrt:
                if (typeInformation != null)
                {
                    typeString = typeInformation.ToString();
                    type       = objectReader.GetType(assemblyInfo !, typeString !);
                    if (ReferenceEquals(type, Converter.s_typeofObject))
                    {
                        isVariant = true;
                    }
                }
                break;

            default:
                throw new SerializationException(SR.Format(SR.Serialization_TypeRead, binaryTypeEnum.ToString()));
            }
        }