Donné le:Étant donné un objet, comment puis-je dire par programme quelles interfaces il prend en charge?
Interface IBase {string X {get;set;}}
Interface ISuper {string Y {get;set;}}
class Base : IBase {etc...}
class Super : Base, ISuper {etc...}
void Questionable (Base b) {
Console.WriteLine ("The class supports the following interfaces... ")
// The Magic Happens Here
}
Que puis-je remplacer "The Magic" avec pour afficher les interfaces prises en charge sur l'objet b?
Oui, je sais en étant de la classe Base, il supporte "IBase", la hiérarchie réelle est plus complexe que cela. :)
Merci! -DF5
EDIT: Maintenant que j'ai vu la réponse, je me sens stupide de ne pas trébucher dessus via Intellisense. :)
Merci à tous! -DF5
Lorsque vous avez la liste d'interface, qu'est-ce que vous allez faire? –
Alimentez-le à une méthode qui sait comment générer des composants d'interface utilisateur (basés sur les interfaces) pour permettre à l'utilisateur de manipuler les valeurs de propriété (via l'interface) de certains objets. IE: Si l'objet prend en charge IDateTimeFormat, alors je dois présenter une liste déroulante des formats de date courants. –
Certains objets possèdent 3 ~ 5 propriétés éditables de l'interface utilisateur ... –