private void DumpInternal() { if (BCLDebug.CheckEnabled("BINARY")) { string text = Converter.ToComType(this.typeInformation); } }
private void DumpInternal() { if (!BCLDebug.CheckEnabled("BINARY")) { return; } Converter.ToComType(this.typeInformation); }
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); }
internal static InternalNameSpaceE GetNameSpaceEnum(InternalPrimitiveTypeE code, Type type, WriteObjectInfo objectInfo, out string typeName) { InternalNameSpaceE internalNameSpaceE = InternalNameSpaceE.None; typeName = (string)null; switch (code) { case InternalPrimitiveTypeE.Boolean: case InternalPrimitiveTypeE.Byte: case InternalPrimitiveTypeE.Char: case InternalPrimitiveTypeE.Double: case InternalPrimitiveTypeE.Int16: case InternalPrimitiveTypeE.Int32: case InternalPrimitiveTypeE.Int64: case InternalPrimitiveTypeE.SByte: case InternalPrimitiveTypeE.Single: case InternalPrimitiveTypeE.TimeSpan: case InternalPrimitiveTypeE.DateTime: case InternalPrimitiveTypeE.UInt16: case InternalPrimitiveTypeE.UInt32: case InternalPrimitiveTypeE.UInt64: internalNameSpaceE = InternalNameSpaceE.XdrPrimitive; typeName = "System." + Converter.ToComType(code); break; case InternalPrimitiveTypeE.Decimal: internalNameSpaceE = InternalNameSpaceE.UrtSystem; typeName = "System." + Converter.ToComType(code); break; } if (internalNameSpaceE == InternalNameSpaceE.None && type != null) { if (type == Converter.typeofString) { internalNameSpaceE = InternalNameSpaceE.XdrString; } else if (objectInfo == null) { typeName = type.FullName; internalNameSpaceE = !(type.Assembly == Converter.urtAssembly) ? InternalNameSpaceE.UrtUser : InternalNameSpaceE.UrtSystem; } else { typeName = objectInfo.GetTypeFullName(); internalNameSpaceE = !objectInfo.GetAssemblyString().Equals(Converter.urtAssemblyString) ? InternalNameSpaceE.UrtUser : InternalNameSpaceE.UrtSystem; } } return(internalNameSpaceE); }
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); }
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); }
// 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())); } }