A feature of
attribute-based programming that allows an
application to query its own
metadata. Reflection allows an application to discover information about itself so that it may display this information to the user, modify its own behavior by using
late-binding and
dynamic invocation (i.e., binding to and calling methods at
runtime), or create new
data types at runtime.