views:

834

answers:

2

What is the difference between Introspection and Reflection in .NET

+1  A: 

They're two parts of the same whole.

Introspection refers to the ability of a class to look 'inside' itself and see, for example, what parameters a method takes, what the names of its members are, etc.

Reflection is the specific name for how .NET implements introspection. Other languages may call it something different (C++ calls its limited introspection RTTI, for run-time type inference).

Stephen Deken
+3  A: 

Introspection was introduced with FxCop in 2004 as an alternative to Reflection :

What's new in FxCop 1.30 is that it now performs analysis through a technique called Introspection. The use of the Introspection engine allows for much faster analysis and supports multithreaded analysis. Unlike the Reflection engine from previous versions, in the Introspection engine the assemblies you're analyzing are not locked so you won't need to shut down FxCop to do a fix and recompile of those assemblies. Finally, the Introspection engine offers a much richer analysis infrastructure compared to the Reflection engine.

Akselsson