Déterminer le membre implémentant un membre donné d'une interface
2 réponses
Patrice Ongla
Bonjour à tous,
Dans les api de réflexion, je cherche le moyen de trouver, pour un type
implémentant une interface, quel membre de ce type implémente un membre
donné de cette interface. Je vois que reflector sait le faire. Une fonction
simple pour obtenir ça ? J'ai tourné la doc dans tous les sens et pas mal
surfé sans succès.
Dans les api de réflexion, je cherche le moyen de trouver, pour un type implémentant une interface, quel membre de ce type implémente un membre donné de cette interface. Je vois que reflector sait le faire. Une fonction simple pour obtenir ça ? J'ai tourné la doc dans tous les sens et pas mal surfé sans succès.
D'avance merci.
Vous pouvez utiliser la méthode Type.GetInterfaceMap. Par exemple:
public interface IToto
{
void Titi();
void Tata();
}
public class Tutu: IToto
{
public void Machin()
{
}
public void Titi()
{
}
void IToto.Tata()
{
}
}
foreach(MethodInfo mi in
typeof(Tutu).GetInterfaceMap(typeof(IToto)).TargetMethods)
{
Console.WriteLine("mi=" + mi.Name + ", dt=" + mi.DeclaringType);
}
"Patrice Ongla" <patrice.ongla@wanadoo.fr> a écrit dans le message de news:
eLUowCU8GHA.2248@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Dans les api de réflexion, je cherche le moyen de trouver, pour un type
implémentant une interface, quel membre de ce type implémente un membre
donné de cette interface. Je vois que reflector sait le faire. Une
fonction
simple pour obtenir ça ? J'ai tourné la doc dans tous les sens et pas mal
surfé sans succès.
Dans les api de réflexion, je cherche le moyen de trouver, pour un type implémentant une interface, quel membre de ce type implémente un membre donné de cette interface. Je vois que reflector sait le faire. Une fonction simple pour obtenir ça ? J'ai tourné la doc dans tous les sens et pas mal surfé sans succès.
D'avance merci.
Patrice Ongla
Impec ! Merci.
"Simon Mourier [SoftFluent]" a écrit dans le message de news:
Vous pouvez utiliser la méthode Type.GetInterfaceMap. Par exemple:
public interface IToto { void Titi(); void Tata(); }
public class Tutu: IToto { public void Machin() { }
public void Titi() { }
void IToto.Tata() { } }
foreach(MethodInfo mi in typeof(Tutu).GetInterfaceMap(typeof(IToto)).TargetMethods) { Console.WriteLine("mi=" + mi.Name + ", dt=" + mi.DeclaringType); }
Dans les api de réflexion, je cherche le moyen de trouver, pour un type implémentant une interface, quel membre de ce type implémente un membre donné de cette interface. Je vois que reflector sait le faire. Une fonction simple pour obtenir ça ? J'ai tourné la doc dans tous les sens et pas mal surfé sans succès.
D'avance merci.
Impec ! Merci.
"Simon Mourier [SoftFluent]" <simon.mourier@mycompany.com> a écrit dans le
message de news: OFbInVd8GHA.2120@TK2MSFTNGP03.phx.gbl...
Vous pouvez utiliser la méthode Type.GetInterfaceMap. Par exemple:
public interface IToto
{
void Titi();
void Tata();
}
public class Tutu: IToto
{
public void Machin()
{
}
public void Titi()
{
}
void IToto.Tata()
{
}
}
foreach(MethodInfo mi in
typeof(Tutu).GetInterfaceMap(typeof(IToto)).TargetMethods)
{
Console.WriteLine("mi=" + mi.Name + ", dt=" + mi.DeclaringType);
}
"Patrice Ongla" <patrice.ongla@wanadoo.fr> a écrit dans le message de
news: eLUowCU8GHA.2248@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Dans les api de réflexion, je cherche le moyen de trouver, pour un type
implémentant une interface, quel membre de ce type implémente un membre
donné de cette interface. Je vois que reflector sait le faire. Une
fonction
simple pour obtenir ça ? J'ai tourné la doc dans tous les sens et pas
mal
surfé sans succès.
Dans les api de réflexion, je cherche le moyen de trouver, pour un type implémentant une interface, quel membre de ce type implémente un membre donné de cette interface. Je vois que reflector sait le faire. Une fonction simple pour obtenir ça ? J'ai tourné la doc dans tous les sens et pas mal surfé sans succès.