Comment utilisez-vous IronRuby pour imprimer un rapport de méthodes publiques et les propriétés publiques de la classe de C#?

StackOverflow https://stackoverflow.com/questions/4992672

  •  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.

Était-ce 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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top