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;
}