2009-08-10 9 views
0

Existe-t-il une mini console C# disponible pour poursuivre Reflection? Jouer autour de la réflexion

+1

Que voulez-vous dire, poursuivre? La réflexion peut être utilisée dans n'importe quel type d'application. –

+0

Je veux dire acquérir une connaissance approfondie de la réflexion en C#. Je souhaite développer une application comme "Reflector". – user146584

+0

@rengaseshan: Pas d'offense mais le réflecteur est déjà écrit, et c'est un territoire expert pour écrire quelque chose comme ça. –

Répondre

1
+0

Nice. Il y a six mois, je suis passé par un lien qui est un jeu basé sur la réflexion, très utile pour apprendre comment la technique fonctionne. Mais le lien est brisé. – user146584

1

IronPython pour jouer avec .NET objets. Pas C#, mais la réflexion très simple sur tous les objets .NET.

>>> import clr 
>>> import System 
>>> ip=System.Net.IPAddress(System.Array[System.Byte]([10,0,0,1])) 
>>> ip 
<System.Net.IPAddress object at 0x0000000000000034 [10.0.0.1]> 
>>> dir(ip) 
['Address', 'AddressFamily', 'Any', 'Broadcast', 'Equals', 'GetAddressBytes', 'G 
etHashCode', 'GetType', 'HostToNetworkOrder', 'IPv6Any', 'IPv6Loopback', 'IPv6No 
ne', 'IsIPv6LinkLocal', 'IsIPv6Multicast', 'IsIPv6SiteLocal', 'IsLoopback', 'Loo 
pback', 'MemberwiseClone', 'NetworkToHostOrder', 'None', 'Parse', 'ReferenceEqua 
ls', 'ScopeId', 'ToString', 'TryParse', '__class__', '__delattr__', '__doc__', ' 
__eq__', '__getattribute__', '__hash__', '__init__', '__ne__', '__new__', '__red 
uce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__'] 
>>> ip.Address 
16777226L 
>>> 
0

Je reconnais que l'utilitaire Reflector est un utilitaire vraiment sympa pour explorer les assemblys .NET.

Si vous voulez créer votre propre application de réflexion pour apprendre comment les métadonnées sont structurées, je vous recommande de lire Expert .NET 2.0 IL Assembler. Cela donne une bonne idée de la façon dont les métadonnées sont structurées dans les assemblages aujourd'hui. Le framework .NET expose déjà des outils de réflexion aux développeurs, comme indiqué par l'utilisateur "weiqure" et je vous recommande de goûter l'espace de noms System.Reflection pour commencer aussi avec la réflexion.

+0

Merci beaucoup Mike – user146584

+0

C'est mon plaisir. J'espère que cette information vous aide! :) –