Comment utilisez-vous IronRuby pour imprimer un rapport de méthodes publiques et les propriétés publiques de la classe de C#?
-
13-11-2019 - |
Question
Quelqu'un aurait-il un exemple de code montrant comment vous réfléchir à un hasard de classe c# à partir d'un arbitraire .NET de l'assemblée à l'aide de IronRuby?Je suis plus intéressée par la liste publique des méthodes et des propriétés d'un hasard de classe C# et .NET de l'assemblée.
J'ai essayé de charger "le Système de.Réflexion à partir de IronRuby.Je n'arrive pas à trouver un bon exemple de code pour faire cela.
Je sais que Ruby pouvez explorer les méta-données liées à une classe ainsi.J'ai, cependant, n'arrive pas à charger mon test de l'assemblée.(c'est à direTest.dll)
Toute aide que vous pouvez offrir serait utile.
La solution
Afin de charger votre Test.dll vous aurez juste besoin de require 'Test'
en supposant que son visible de votre script.
Vous pouvez utiliser le haut-méthode Ruby public_instance_methods
mais ce seront ceux de Ruby dans la classe d'Objet, par exemple:
System::String.public_instance_methods
Si vous êtes uniquement intéressé par les méthodes de votre type CLR ensuite, vous pouvez accéder au Type d'un objet donné par le IronRuby to_clr_type
la méthode.Cela vous donne accès à tous les réflexion méthodes de ce Système.Type d'offre.Par exemple, le script suivant la liste de tous les publics les méthodes d'instance d'une classe de Test.MyClass dans Test.dll:
$: << 'path/to/dll'
require 'Test'
puts Test::MyClass.to_clr_type.get_methods(
System::Reflection::BindingFlags.Public | System::Reflection::BindingFlags.Instance | System::Reflection::BindingFlags.DeclaredOnly)