PERWAPI.FieldRef.ResolveParent C# (CSharp) Méthode

ResolveParent() private méthode

private ResolveParent ( PEReader buff ) : Member
buff PEReader
Résultat Member
        internal override Member ResolveParent(PEReader buff)
        {
            if (parent != null) return this;
            MetaDataElement paren = buff.GetCodedElement(CIx.MemberRefParent,parentIx);
            //Console.WriteLine("parentIx = " + parentIx);
            //Console.WriteLine("paren = " + paren);
            if (paren is ClassDef)
                return((ClassDef)paren).GetField(this.name);
            //if (paren is ClassSpec)
            // paren = ((ClassSpec)paren).GetParent();
            if (paren is ReferenceScope)
                parent = ((ReferenceScope)paren).GetDefaultClass();
            if (paren is TypeSpec)
                parent = new ConstructedTypeSpec((TypeSpec)paren);
            else
                parent = (Class)paren;
            if (parent != null) {
                Field existing = (Field)((Class)parent).GetFieldDesc(name);
                if (existing != null) {
                    return existing;
                }
            }
            parent.AddToFieldList(this);
            return this;
        }