public IMethod ReadMethodRef() { var babelMethodRef = new MethodRefReader(this).Read(); var method = GetMethodRef(babelMethodRef); if (method == null) { throw new ApplicationException($"Could not find method '{Utils.RemoveNewlines(babelMethodRef.Name)}' in type '{Utils.RemoveNewlines(babelMethodRef.DeclaringType)}'"); } var git = babelMethodRef.DeclaringType.ToGenericInstSig(); if (git == null) { return(method); } var mr = new MemberRefUser(module, method.Name, method.MethodSig.Clone(), babelMethodRef.DeclaringType.ToTypeDefOrRef()); return(module.UpdateRowId(mr)); }
public MethodDefReader(ImageReader imageReader) { bmd = new BabelMethodDef(); methodRefReader = new MethodRefReader(imageReader, bmd); methodBodyReader = new MethodBodyReader(imageReader); }
public IMethod ReadMethodRef() { var babelMethodRef = new MethodRefReader(this, reader).Read(); var method = GetMethodRef(babelMethodRef); if (method == null) { throw new ApplicationException(string.Format("Could not find method '{0}' in type '{1}'", Utils.RemoveNewlines(babelMethodRef.Name), Utils.RemoveNewlines(babelMethodRef.DeclaringType))); } var git = babelMethodRef.DeclaringType.ToGenericInstSig(); if (git == null) return method; var mr = new MemberRefUser(module, method.Name, method.MethodSig.Clone(), babelMethodRef.DeclaringType.ToTypeDefOrRef()); return module.UpdateRowId(mr); }
public MethodDefReader(ImageReader imageReader, IBinaryReader reader) { this.bmd = new BabelMethodDef(); this.methodRefReader = new MethodRefReader(imageReader, reader, bmd); this.methodBodyReader = new MethodBodyReader(imageReader, reader); }