System.Runtime.Serialization.Formatters.Binary.BinaryConverter.ReadTypeInfo C# (CSharp) Method

ReadTypeInfo() static private method

static private ReadTypeInfo ( BinaryTypeEnum binaryTypeEnum, __BinaryParser input, int &assemId ) : Object
binaryTypeEnum BinaryTypeEnum
input __BinaryParser
assemId int
return Object
        internal static Object ReadTypeInfo(BinaryTypeEnum binaryTypeEnum, __BinaryParser input, out int assemId)
        {
            SerTrace.Log( "BinaryConverter", "ReadTypeInfo Entry  ",((Enum)binaryTypeEnum).ToString());
            Object var = null;
            int readAssemId = 0;

            switch (binaryTypeEnum)
            {
                case BinaryTypeEnum.Primitive:
                case BinaryTypeEnum.PrimitiveArray:
                    var = (InternalPrimitiveTypeE)input.ReadByte();
                    break;
                case BinaryTypeEnum.String:
                case BinaryTypeEnum.Object:
                case BinaryTypeEnum.StringArray:
                case BinaryTypeEnum.ObjectArray:
                    break;                    
                case BinaryTypeEnum.ObjectUrt:
                    var = input.ReadString();                   
                    break;
                case BinaryTypeEnum.ObjectUser:
                    var = input.ReadString();
                    readAssemId = input.ReadInt32();
                    break;                    
                default:
                    throw new SerializationException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Serialization_TypeRead"),((Enum)binaryTypeEnum).ToString()));                 
            }
            SerTrace.Log( "BinaryConverter", "ReadTypeInfo Exit  ",var," assemId ",readAssemId);
            assemId = readAssemId;
            return var;
        }

Usage Example

示例#1
0
 public void Read(__BinaryParser input)
 {
     this.objectId         = input.ReadInt32();
     this.name             = input.ReadString();
     this.numMembers       = input.ReadInt32();
     this.memberNames      = new string[this.numMembers];
     this.binaryTypeEnumA  = new BinaryTypeEnum[this.numMembers];
     this.typeInformationA = new object[this.numMembers];
     this.memberAssemIds   = new int[this.numMembers];
     for (int index = 0; index < this.numMembers; ++index)
     {
         this.memberNames[index] = input.ReadString();
     }
     for (int index = 0; index < this.numMembers; ++index)
     {
         this.binaryTypeEnumA[index] = (BinaryTypeEnum)input.ReadByte();
     }
     for (int index = 0; index < this.numMembers; ++index)
     {
         if (this.binaryTypeEnumA[index] != BinaryTypeEnum.ObjectUrt && this.binaryTypeEnumA[index] != BinaryTypeEnum.ObjectUser)
         {
             this.typeInformationA[index] = BinaryConverter.ReadTypeInfo(this.binaryTypeEnumA[index], input, out this.memberAssemIds[index]);
         }
         else
         {
             BinaryConverter.ReadTypeInfo(this.binaryTypeEnumA[index], input, out this.memberAssemIds[index]);
         }
     }
     if (this.binaryHeaderEnum != BinaryHeaderEnum.ObjectWithMapTypedAssemId)
     {
         return;
     }
     this.assemId = input.ReadInt32();
 }
All Usage Examples Of System.Runtime.Serialization.Formatters.Binary.BinaryConverter::ReadTypeInfo