コード例 #1
0
        void InitFields_NoLock()
        {
            var  mdi   = readerModule.MetaDataImport;
            uint token = OriginalToken.Raw;

            fieldRidToFieldOffset = CalculateFieldOffsets();

            var fds = fields;

            if (fds != null)
            {
                fds.Clear();
            }

            var itemTokens = MDAPI.GetFieldTokens(mdi, token);
            var newItems   = new MemberInfo <CorFieldDef> [itemTokens.Length];

            for (int i = 0; i < itemTokens.Length; i++)
            {
                uint itemRid = itemTokens[i] & 0x00FFFFFF;
                newItems[i] = readerModule.Register(new CorFieldDef(readerModule, itemRid, this), cmd => cmd.Initialize());
            }

            fields = new LazyList <FieldDef>(itemTokens.Length, this, itemTokens, (itemTokens2, index) => newItems[index].Item);
        }
コード例 #2
0
ファイル: CorMethodDef.cs プロジェクト: pashav15/pashav
        void InitParamDefs_NoLock()
        {
            var  mdi   = readerModule.MetaDataImport;
            uint token = OriginalToken.Raw;

            paramDefs?.Clear();

            var itemTokens = MDAPI.GetParamTokens(mdi, token);
            var newItems   = new MemberInfo <CorParamDef> [itemTokens.Length];

            for (int i = 0; i < itemTokens.Length; i++)
            {
                uint itemRid = itemTokens[i] & 0x00FFFFFF;
                newItems[i] = readerModule.Register(new CorParamDef(readerModule, itemRid, this), cmd => cmd.Initialize());
            }

            paramDefs = new LazyList <ParamDef>(itemTokens.Length, this, itemTokens, (itemTokens2, index) => newItems[index].Item);
        }