OK, j'ai fait quelques recherches. Si vous créez la hiérarchie suivante :
public interface One
{
void DoIt();
}
public interface Two : One
{
void DoItMore();
}
public class Magic : Two
{
public void DoItMore()
{
throw new NotImplementedException();
}
public void DoIt()
{
throw new NotImplementedException();
}
}
Et compilez-le, puis référencez la DLL dans une solution différente, tapez Magic et appuyez sur F12, vous obtiendrez ce qui suit :
public class Magic : Two, One
{
public Magic();
public void DoIt();
public void DoItMore();
}
Vous verrez que la hiérarchie des interfaces est aplatie, ou que le compilateur ajoute les interfaces dans ? Si vous utilisez le réflecteur, vous obtenez les mêmes résultats.
Mise à jour : Si vous ouvrez la DLL dans ILDASM, vous verrez qu'elle dit :
met en œuvre ...deux
met en œuvre ...un.