Exemple #1
0
        internal override void ResolveParent(PEReader buff, bool isExtern)
        {
            if (parent != null)
            {
                return;
            }
            CIx cIx = CIx.ResolutionScope;

            if (isExtern)
            {
                cIx = CIx.Implementation;
            }
            parent = (ClassRef)buff.GetCodedElement(cIx, resScopeIx);
            parent.ResolveParent(buff, isExtern);
            parent = (ClassRef)buff.GetCodedElement(cIx, resScopeIx);
            if (parent == null)
            {
                return;
            }
            NestedClassRef existing = parent.GetNestedClass(Name);

            if (existing == null)
            {
                scope = parent.GetScope();
                parent.AddToClassList(this);
            }
            else if (isExtern)
            {
                buff.InsertInTable(MDTable.ExportedType, Row, existing);
            }
            else
            {
                buff.InsertInTable(MDTable.TypeRef, Row, existing);
            }
        }
Exemple #2
0
 internal override void ResolveParent(PEReader buff, bool isExtern)
 {
     if (parent != null) return;
     CIx cIx = CIx.ResolutionScope;
     if (isExtern) cIx = CIx.Implementation;
     parent = (ClassRef)buff.GetCodedElement(cIx, resScopeIx);
     parent.ResolveParent(buff, isExtern);
     parent = (ClassRef)buff.GetCodedElement(cIx, resScopeIx);
     if (parent == null) return;
     NestedClassRef existing = parent.GetNestedClass(Name);
     if (existing == null)
     {
         scope = parent.GetScope();
         parent.AddToClassList(this);
     }
     else if (isExtern)
         buff.InsertInTable(MDTable.ExportedType, Row, existing);
     else
         buff.InsertInTable(MDTable.TypeRef, Row, existing);
 }