2008-09-16 7 views
4

Quelle est la différence entre les Introspection et la réflexion dans .NETIntrospection .NET VS Réflexion

+0

Vous devez probablement être plus précis avec ce que vous entendez par "introspection". Tu veux dire comme Mono.Cecil? Ou FxCop? Ou quelque chose d'autre spécifique? –

Répondre

6

Introspection a été introduit avec FxCop in 2004 as an alternative to Reflection:

Quoi de neuf dans FxCop 1,30 est qu'il effectue maintenant l'analyse grâce à une technique appelée Introspection. L'utilisation du moteur Introspection permet pour une analyse beaucoup plus rapide et prend en charge l'analyse multithread . A la différence du moteur de réflexion par rapport aux versions précédentes , dans le moteur Introspection les ensembles que vous analysez sont pas verrouillé de sorte que vous ne aurez pas besoin de fermer vers le bas FxCop faire une solution et recompiler de ces assemblées. Enfin, le moteur d'introspection offre une infrastructure d'analyse plus riche par rapport au moteur de réflexion.

11

Ils sont deux parties d'un même tout.

Introspection fait référence à la capacité d'une classe à regarder « l'intérieur » lui-même et voir, par exemple, quels paramètres d'une méthode prend, ce que les noms de ses membres sont, etc.

La réflexion est le nom spécifique comment .NET implémente l'introspection. D'autres langages peuvent l'appeler quelque chose de différent (C++ appelle son RTTI d'introspection limitée, pour les informations de type à l'exécution).

+0

+1 - Je ne sais pas comment l'autre réponse a obtenu plus de votes, cela répond à la question. – Seth

+0

Dans .NET, spécifiquement dans Microsoft.Cci.dll, l'introspection fait référence au processus d'inspection d'un assembly sans le charger dans un domaine ApplicationDomain. La réflexion nécessite que l'assemblage soit chargé. En ce sens, la réflexion se penche sur les types qui composent le processus actuel, tandis que l'introspection est un moyen pour un processus de regarder des assemblages qui ne sont pas «à l'intérieur» de lui-même. –