Ok, let me put it differently. How to specify using Cecil API that the Class implements method IClass::A() with the inherited B:A() method (sorry for the mistake in the first post), when the methods have different names (and of course the same signature)? Should be possible according to the specification.
Janusz On 16 Wrz, 14:05, Jb Evain <[email protected]> wrote: > Hey, > > I suggest you compile your sample (obviously, you'll have to fix it first to > make Class extend Base) and have a look at the metadata produced using > ildasm/monodis. > > There's no link between a TypeDef row and a MethodImpl row, so Class does > need to have a method which overrides IClass.A. > > Jb > > On Sep 15, 2011, at 11:25 PM, Janusz Lembicz wrote: > > > > > > > > > From what I can see Cecil API doesn't allow to create a row in the > > MethodImpl table for the type that implements an interface, but the > > method that override an interface method come from it's base type. > > > public interface IClass > > { > > void A(); > > } > > > public class Base > > { > > public void A() {} > > } > > > public class Class : IClass > > { > > } > > > Is that intentional? I'd like to be able to specify in the type Class > > that method A() from the interface IClass is implemented by method A > > from the type Base, what is valid according to ECMA-335 22.27, in case > > one of them happened to be renamed. Please let me know if I'm getting > > something wrong here. Thanks. > > > -- > > -- > > mono-cecil -- -- mono-cecil
