Beispiel #1
0
 protected override IMessage ReadMessageByType(IDataReader reader, ReadObjectInfo typeTag)
 {
     typeTag.TypeofString  = reader.ReadUTF();
     switch (typeTag.TypeofString)
     {
         case "Register":
             return new Register();
     }
     return null;
 }
Beispiel #2
0
 protected override IMessage ReadMessageByType(IDataReader reader, ReadObjectInfo typeTag)
 {
     typeTag.TypeofString = reader.ReadUTF();
     switch (typeTag.TypeofString)
     {
     case "FileContent":
         return(new FileContent());
     }
     return(null);
 }
Beispiel #3
0
 internal void Init()
 {
     this.PRparseTypeEnum      = InternalParseTypeE.Empty;
     this.PRobjectTypeEnum     = InternalObjectTypeE.Empty;
     this.PRarrayTypeEnum      = InternalArrayTypeE.Empty;
     this.PRmemberTypeEnum     = InternalMemberTypeE.Empty;
     this.PRmemberValueEnum    = InternalMemberValueE.Empty;
     this.PRobjectPositionEnum = InternalObjectPositionE.Empty;
     this.PRname                   = (string)null;
     this.PRvalue                  = (string)null;
     this.PRkeyDt                  = (string)null;
     this.PRdtType                 = (Type)null;
     this.PRdtTypeCode             = InternalPrimitiveTypeE.Invalid;
     this.PRisEnum                 = false;
     this.PRobjectId               = 0L;
     this.PRidRef                  = 0L;
     this.PRarrayElementTypeString = (string)null;
     this.PRarrayElementType       = (Type)null;
     this.PRisArrayVariant         = false;
     this.PRarrayElementTypeCode   = InternalPrimitiveTypeE.Invalid;
     this.PRrank                   = 0;
     this.PRlengthA                = (int[])null;
     this.PRpositionA              = (int[])null;
     this.PRlowerBoundA            = (int[])null;
     this.PRupperBoundA            = (int[])null;
     this.PRindexMap               = (int[])null;
     this.PRmemberIndex            = 0;
     this.PRlinearlength           = 0;
     this.PRrectangularMap         = (int[])null;
     this.PRisLowerBound           = false;
     this.PRtopId                  = 0L;
     this.PRheaderId               = 0L;
     this.PRisValueTypeFixup       = false;
     this.PRnewObj                 = (object)null;
     this.PRobjectA                = (object[])null;
     this.PRprimitiveArray         = (PrimitiveArray)null;
     this.PRobjectInfo             = (ReadObjectInfo)null;
     this.PRisRegistered           = false;
     this.PRmemberData             = (object[])null;
     this.PRsi        = (SerializationInfo)null;
     this.PRnullCount = 0;
 }
Beispiel #4
0
        internal ObjectMap(string objectName, Type objectType, string[] memberNames, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo)
        {
            _objectName   = objectName;
            _objectType   = objectType;
            _memberNames  = memberNames;
            _objectReader = objectReader;
            _objectId     = objectId;
            _assemblyInfo = assemblyInfo;

            _objectInfo  = objectReader.CreateReadObjectInfo(objectType);
            _memberTypes = _objectInfo.GetMemberTypes(memberNames, objectType);

            _binaryTypeEnumA  = new BinaryTypeEnum[_memberTypes.Length];
            _typeInformationA = new object[_memberTypes.Length];

            for (int i = 0; i < _memberTypes.Length; i++)
            {
                object         typeInformation = null;
                BinaryTypeEnum binaryTypeEnum  = BinaryTypeConverter.GetParserBinaryTypeInfo(_memberTypes[i], out typeInformation);
                _binaryTypeEnumA[i]  = binaryTypeEnum;
                _typeInformationA[i] = typeInformation;
            }
        }
Beispiel #5
0
        internal ObjectMap(string objectName, Type objectType, string[] memberNames, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo)
        {
            _objectName = objectName;
            _objectType = objectType;
            _memberNames = memberNames;
            _objectReader = objectReader;
            _objectId = objectId;
            _assemblyInfo = assemblyInfo;

            _objectInfo = objectReader.CreateReadObjectInfo(objectType);
            _memberTypes = _objectInfo.GetMemberTypes(memberNames, objectType);

            _binaryTypeEnumA = new BinaryTypeEnum[_memberTypes.Length];
            _typeInformationA = new object[_memberTypes.Length];

            for (int i = 0; i < _memberTypes.Length; i++)
            {
                object typeInformation = null;
                BinaryTypeEnum binaryTypeEnum = BinaryTypeConverter.GetParserBinaryTypeInfo(_memberTypes[i], out typeInformation);
                _binaryTypeEnumA[i] = binaryTypeEnum;
                _typeInformationA[i] = typeInformation;
            }
        }
Beispiel #6
0
        internal ObjectMap(string objectName, string[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, object[] typeInformationA, int[] memberAssemIds, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
        {
            _objectName       = objectName;
            _memberNames      = memberNames;
            _binaryTypeEnumA  = binaryTypeEnumA;
            _typeInformationA = typeInformationA;
            _objectReader     = objectReader;
            _objectId         = objectId;
            _assemblyInfo     = assemblyInfo;

            if (assemblyInfo == null)
            {
                throw new SerializationException(SR.Format(SR.Serialization_Assembly, objectName));
            }

            _objectType  = objectReader.GetType(assemblyInfo, objectName);
            _memberTypes = new Type[memberNames.Length];

            for (int i = 0; i < memberNames.Length; i++)
            {
                InternalPrimitiveTypeE primitiveTypeEnum;
                string typeString;
                Type   type;
                bool   isVariant;

                BinaryTypeConverter.TypeFromInfo(
                    binaryTypeEnumA[i], typeInformationA[i], objectReader, (BinaryAssemblyInfo)assemIdToAssemblyTable[memberAssemIds[i]],
                    out primitiveTypeEnum, out typeString, out type, out isVariant);
                _memberTypes[i] = type;
            }

            _objectInfo = objectReader.CreateReadObjectInfo(_objectType, memberNames, null);
            if (!_objectInfo._isSi)
            {
                _objectInfo.GetMemberTypes(memberNames, _objectInfo._objectType);  // Check version match
            }
        }
Beispiel #7
0
        internal ObjectMap(string objectName, string[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, object[] typeInformationA, int[] memberAssemIds, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
        {
            _objectName = objectName;
            _memberNames = memberNames;
            _binaryTypeEnumA = binaryTypeEnumA;
            _typeInformationA = typeInformationA;
            _objectReader = objectReader;
            _objectId = objectId;
            _assemblyInfo = assemblyInfo;

            if (assemblyInfo == null)
            {
                throw new SerializationException(SR.Format(SR.Serialization_Assembly, objectName));
            }

            _objectType = objectReader.GetType(assemblyInfo, objectName);
            _memberTypes = new Type[memberNames.Length];

            for (int i = 0; i < memberNames.Length; i++)
            {
                InternalPrimitiveTypeE primitiveTypeEnum;
                string typeString;
                Type type;
                bool isVariant;

                BinaryTypeConverter.TypeFromInfo(
                    binaryTypeEnumA[i], typeInformationA[i], objectReader, (BinaryAssemblyInfo)assemIdToAssemblyTable[memberAssemIds[i]],
                    out primitiveTypeEnum, out typeString, out type, out isVariant);
                _memberTypes[i] = type;
            }

            _objectInfo = objectReader.CreateReadObjectInfo(_objectType, memberNames, null);
            if (!_objectInfo._isSi)
            {
                _objectInfo.GetMemberTypes(memberNames, _objectInfo._objectType);  // Check version match
            }
        }
Beispiel #8
0
 protected override IMessage ReadMessageByType(IDataReader reader, ReadObjectInfo typeTag)
 {
     typeTag.TypeofString = reader.ReadUTF();
     return (IMessage)Activator.CreateInstance(Type.GetType(typeTag.TypeofString));
 }
Beispiel #9
0
 protected override IMessage ReadMessageByType(IDataReader reader, ReadObjectInfo typeTag)
 {
     typeTag.TypeofString = reader.ReadUTF();
     return((IMessage)Activator.CreateInstance(Type.GetType(typeTag.TypeofString)));
 }