Pex - Automated Whitebox Testing for .NET : Microsoft.ExtendedReflection


Extended Reflection (ER) is a library that offers functionality that greatly extends the standard reflection library, and also lifts the unmanaged CLR profiling API into the managed world.


Our Presentations and Screencasts contain an overview of how the managed profiling API works and how you can use it.

Extended Reflection consists of two assemblies:

  • The managed assembly has the following namespaces:
    • Metadata -- metadata model that can faithfully represent all entities that exist at runtime
    • DataAccess -- fast and type-safe accessors to "live" program data
    • Interpretation -- interpreter of all MSIL instructions, and symbolic representation of runtime values and entire states by terms
    • Reasoning -- interface for symbolic reasoning over MSIL instructions
    • Monitoring -- the managed counterpart of the ClrMonitor that receives callbacks from the instrumented code
    • Utilities -- a set of general utility classes (collections, for debugging, logging, etc)
  • The unmanaged CLR profiler called "ClrMonitor"; it instruments MSIL instructions, i.e. redirecting calls and inserting callbacks

Extended Reflection comes with a set of Code Substitutions to better handle calls to native code.
(c) Microsoft Corporation. All rights reserved. pex Wiki Documentation 0.93.50813.0