void Initialize()
 {
     signature.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Signature));
     };
 }
示例#2
0
 void Initialize()
 {
     rva.ReadOriginalValue = () => {
         InitializeRawRow();
         return((RVA)rawRow.RVA);
     };
     implFlags.ReadOriginalValue = () => {
         InitializeRawRow();
         return((MethodImplAttributes)rawRow.ImplFlags);
     };
     flags.ReadOriginalValue = () => {
         InitializeRawRow();
         return((MethodAttributes)rawRow.Flags);
     };
     name.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
     };
     signature.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Signature));
     };
     implMap.ReadOriginalValue = () => {
         return(readerModule.ResolveImplMap(readerModule.MetaData.GetImplMapRid(Table.Method, rid)));
     };
     methodBody.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadMethodBody(this, rawRow));
     };
     declaringType.ReadOriginalValue = () => {
         return(readerModule.GetOwnerType(this));
     };
 }
        void Initialize()
        {
            signature.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ReadSignature(rawRow.Signature));
            };
#if THREAD_SAFE
            signature.Lock = theLock;
#endif
        }
 void Initialize()
 {
     method.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ResolveMethodDefOrRef(rawRow.Method));
     };
     instantiation.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Instantiation));
     };
 }
示例#5
0
 void Initialize()
 {
     @class.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ResolveMemberRefParent(rawRow.Class));
     };
     name.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
     };
     signature.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Signature));
     };
 }
示例#6
0
        void Initialize()
        {
            method.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ResolveMethodDefOrRef(rawRow.Method));
            };
            instantiation.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ReadSignature(rawRow.Instantiation));
            };
#if THREAD_SAFE
            method.Lock        = theLock;
            instantiation.Lock = theLock;
#endif
        }
示例#7
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>StandAloneSig</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <param name="gpContext">Generic parameter context</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception>
        public StandAloneSigMD(ModuleDefMD readerModule, uint rid, GenericParamContext gpContext)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.StandAloneSigTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("StandAloneSig rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint signature = readerModule.TablesStream.ReadStandAloneSigRow2(origRid);
            this.signature = readerModule.ReadSignature(signature, gpContext);
        }
示例#8
0
 void Initialize()
 {
     flags.ReadOriginalValue = () => {
         InitializeRawRow();
         return((FieldAttributes)rawRow.Flags);
     };
     name.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
     };
     signature.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Signature));
     };
     fieldOffset.ReadOriginalValue = () => {
         var row = readerModule.TablesStream.ReadFieldLayoutRow(readerModule.MetaData.GetFieldLayoutRid(rid));
         return(row == null ? null : new uint?(row.OffSet));
     };
     fieldMarshal.ReadOriginalValue = () => {
         return(readerModule.ResolveFieldMarshal(readerModule.MetaData.GetFieldMarshalRid(Table.Field, rid)));
     };
     rva.ReadOriginalValue = () => {
         RVA rva2;
         GetFieldRVA(out rva2);
         return(rva2);
     };
     initialValue.ReadOriginalValue = () => {
         RVA rva2;
         if (!GetFieldRVA(out rva2))
         {
             return(null);
         }
         return(ReadInitialValue(rva2));
     };
     implMap.ReadOriginalValue = () => {
         return(readerModule.ResolveImplMap(readerModule.MetaData.GetImplMapRid(Table.Field, rid)));
     };
     constant.ReadOriginalValue = () => {
         return(readerModule.ResolveConstant(readerModule.MetaData.GetConstantRid(Table.Field, rid)));
     };
     declaringType.ReadOriginalValue = () => {
         return(readerModule.GetOwnerType(this));
     };
 }
示例#9
0
        void Initialize()
        {
            @class.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ResolveMemberRefParent(rawRow.Class));
            };
            name.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
            };
            signature.ReadOriginalValue = () => {
                InitializeRawRow_NoLock();
                return(readerModule.ReadSignature(rawRow.Signature));
            };
#if THREAD_SAFE
            @class.Lock    = theLock;
            name.Lock      = theLock;
            signature.Lock = theLock;
#endif
        }
示例#10
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>MethodSpec</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <param name="gpContext">Generic parameter context</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception>
        public MethodSpecMD(ModuleDefMD readerModule, uint rid, GenericParamContext gpContext)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.MethodSpecTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("MethodSpec rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint method;
            uint instantiation = readerModule.TablesStream.ReadMethodSpecRow(origRid, out method);
            this.method        = readerModule.ResolveMethodDefOrRef(method, gpContext);
            this.instantiation = readerModule.ReadSignature(instantiation, gpContext);
        }
示例#11
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>Property</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception>
        public PropertyDefMD(ModuleDefMD readerModule, uint rid)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.PropertyTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("Property rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint name;
            uint type = readerModule.TablesStream.ReadPropertyRow(origRid, out this.attributes, out name);
            this.name           = readerModule.StringsStream.ReadNoNull(name);
            this.declaringType2 = readerModule.GetOwnerType(this);
            this.type           = readerModule.ReadSignature(type, new GenericParamContext(declaringType2));
        }
示例#12
0
 void Initialize()
 {
     flags.ReadOriginalValue = () => {
         InitializeRawRow();
         return((PropertyAttributes)rawRow.PropFlags);
     };
     name.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.StringsStream.ReadNoNull(rawRow.Name));
     };
     type.ReadOriginalValue = () => {
         InitializeRawRow();
         return(readerModule.ReadSignature(rawRow.Type));
     };
     constant.ReadOriginalValue = () => {
         return(readerModule.ResolveConstant(readerModule.MetaData.GetConstantRid(Table.Property, rid)));
     };
     declaringType.ReadOriginalValue = () => {
         return(readerModule.GetOwnerType(this));
     };
 }
示例#13
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>MemberRef</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <param name="gpContext">Generic parameter context</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception>
        public MemberRefMD(ModuleDefMD readerModule, uint rid, GenericParamContext gpContext)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.MemberRefTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("MemberRef rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            this.module       = readerModule;
            uint @class, name;
            uint signature = readerModule.TablesStream.ReadMemberRefRow(origRid, out @class, out name);
            this.name      = readerModule.StringsStream.ReadNoNull(name);
            this.@class    = readerModule.ResolveMemberRefParent(@class, gpContext);
            this.signature = readerModule.ReadSignature(signature, GetSignatureGenericParamContext(gpContext, this.@class));
        }
示例#14
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>Field</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule" /> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid" /> is invalid</exception>
        public FieldDefMD(ModuleDefMD readerModule, uint rid)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.FieldTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("Field rid {0} does not exist", rid));
            }
#endif
            OrigRid           = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint name;
            var signature = readerModule.TablesStream.ReadFieldRow(OrigRid, out attributes, out name);
            this.name      = readerModule.StringsStream.ReadNoNull(name);
            origAttributes = (FieldAttributes)attributes;
            declaringType2 = readerModule.GetOwnerType(this);
            this.signature = readerModule.ReadSignature(signature, new GenericParamContext(declaringType2));
        }
示例#15
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="readerModule">The module which contains this <c>Method</c> row</param>
        /// <param name="rid">Row ID</param>
        /// <exception cref="ArgumentNullException">If <paramref name="readerModule"/> is <c>null</c></exception>
        /// <exception cref="ArgumentException">If <paramref name="rid"/> is invalid</exception>
        public MethodDefMD(ModuleDefMD readerModule, uint rid)
        {
#if DEBUG
            if (readerModule == null)
            {
                throw new ArgumentNullException("readerModule");
            }
            if (readerModule.TablesStream.MethodTable.IsInvalidRID(rid))
            {
                throw new BadImageFormatException(string.Format("Method rid {0} does not exist", rid));
            }
#endif
            this.origRid      = rid;
            this.rid          = rid;
            this.readerModule = readerModule;
            uint name;
            uint signature = readerModule.TablesStream.ReadMethodRow(origRid, out this.rva, out this.implAttributes, out this.attributes, out name);
            this.name               = readerModule.StringsStream.ReadNoNull(name);
            this.origRva            = rva;
            this.origImplAttributes = (MethodImplAttributes)implAttributes;
            this.declaringType2     = readerModule.GetOwnerType(this);
            this.signature          = readerModule.ReadSignature(signature, new GenericParamContext(declaringType2, this));
            this.parameterList      = new ParameterList(this, declaringType2);
        }