コード例 #1
0
        public void ReadFrom(ObjectReader reader)
        {
            FieldType     = (TypeFullDescriptor)reader.ReadType();
            DeclaringType = (TypeFullDescriptor)reader.ReadType();
            Name          = reader.PrimitiveReader.ReadString();

            UnderlyingFieldInfo = DeclaringType.UnderlyingType.GetField(Name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
        }
コード例 #2
0
ファイル: TypeDescriptor.cs プロジェクト: anthrax3/Migrant
        private void ReadTypeStamp(ObjectReader reader)
        {
            TypeAssembly    = reader.ReadAssembly();
            GenericFullName = reader.PrimitiveReader.ReadString();
            var genericArgumentsCount = reader.PrimitiveReader.ReadInt32();

            genericArguments = new List <TypeDescriptor>();
            for (int i = 0; i < genericArgumentsCount; i++)
            {
                genericArguments.Add(reader.ReadType());
            }
            Resolve();
        }
コード例 #3
0
ファイル: TypeDescriptor.cs プロジェクト: anthrax3/Migrant
        private void ReadStructureStamp(ObjectReader reader, VersionToleranceLevel versionToleranceLevel)
        {
            baseType = reader.ReadType();
            var noOfFields = reader.PrimitiveReader.ReadInt32();

            for (int i = 0; i < noOfFields; i++)
            {
                var fieldDescriptor = new FieldDescriptor(this);
                fieldDescriptor.ReadFrom(reader);
                fields.Add(fieldDescriptor);
            }
            FieldsToDeserialize   = VerifyStructure(versionToleranceLevel);
            cache[UnderlyingType] = this;
        }