Gallio An action chain captures a sequence of actions to be performed as part of a complex multi-part process. The action argument type Gets a singleton action that does nothing when invoked. This field is read-only. Gets or sets a representation of the chain as a single action. The action is progressively augmented as new contributions are registered using , and . By default the action is . Thrown if is null Registers an action to perform after all other actions currently in the chain. The action to register Thrown if is null Registers an action to perform around all other actions currently in the chain. The contained part of the chain is passed in as an action to the decorator that the decorator can choose to run (or not) as needed. The decorator to register Thrown if is null Registers an action to perform before all other actions currently in the chain. The action to register Thrown if is null Clears the chain and sets it action to . An action chain captures a sequence of actions to be performed as part of a complex multi-part process. The first argument type The second argument type Gets a singleton action that does nothing when invoked. This field is read-only. Gets or sets a representation of the chain as a single action. The action is progressively augmented as new contributions are registered using , and . By default the action is . Thrown if is null Registers an action to perform after all other actions currently in the chain. The action to register Thrown if is null Registers an action to perform around all other actions currently in the chain. The contained part of the chain is passed in as an action to the decorator that the decorator can choose to run (or not) as needed. The decorator to register Thrown if is null Registers an action to perform before all other actions currently in the chain. The action to register Thrown if is null Clears the chain and sets it action to . An action with no arguments. An action with two arguments. The first argument type The second argument type The first argument The second argument An action with three arguments. The first argument type The second argument type The third argument type The first argument The second argument The third argument An action with four arguments. The first argument type The second argument type The third argument type The fourth argument type The first argument The second argument The third argument The fourth argument Represents a method that decorates another action. The type of object the action is performed upon The object to act upon The action to decorate which should be called in the middle of applying the decoration Represents a method that decorates another action. The first argument type The second argument type The first argument The second argument The action to decorate which should be called in the middle of applying the decoration A function with zero arguments. The result type A function with one argument. The first argument type The result type The first argument A function with two arguments. The first argument type The second argument type The result type The first argument The second argument A function with three arguments. The first argument type The second argument type The third argument type The result type The first argument The second argument The third argument A function with four arguments. The first argument type The second argument type The third argument type The fourth argument type The result type The first argument The second argument The third argument The fourth argument Compares arrays for equality by element. Gets a default instance of the array equality comparer. This field is read-only. Utility functions for manipulating collections. This is a and so cannot be inherited or instantiated. Converts all elements of the input collection and returns the collected results as an array of the same size. The input type The output type The input collection The conversion function to apply to each element The output array Returns the first element of the input enumeration for which the specified predicate returns true. The element type The input enumeration The predicate The first matching value or the default for the type if not found Copies all of the elements of the input collection to an array. The element type The input collection The output array A covariant list converts a list of the input type to a read-only list of the more generic output type. The wrapped list can be used to mimic covariance in method return types. The input list type The output list type Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Provides a singleton empty array instance. This is a and so cannot be inherited or instantiated. The type of array to provide An empty array of type . This field is read-only. A read-only empty dictionary. The dictionary key type The dictionary value type A read-only empty dictionary instance. This field is read-only. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the element with the specified key. The key of the element to get or set. The element with the specified key. Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Adds an element with the provided key and value to the . The object to use as the key of the element to add. The object to use as the value of the element to add. Removes all items from the . Determines whether the contains an element with the specified key. The key to locate in the . true if the contains an element with the key; otherwise, false. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Removes the element with the specified key from the . The key of the element to remove. true if the element is successfully removed; otherwise, false. This method also returns false if key was not found in the original . Utility functions for manipulating generic collections. This is a and so cannot be inherited or instantiated. Adds all elements of the input enumeration to the output collection. The element type The input enumeration The output collection Converts each element of the input collection and returns the collected results as an array of the same size. The input type The output type The input collection The conversion function to apply to each element The output array Converts each element of the input collection and adds the result to the output collection succession in the same order. The input type The output type The input list The output list The conversion function to apply to each element Converts each element of the input collection and stores the result in the output list using the same index. The output list must be at least as large as the input list. The input type The output type The input list The output list The conversion function to apply to each element Returns true if the elements of both lists are equal. The first collection The second collection True if the elements are equal Returns the first element of the input enumeration for which the specified predicate returns true. The element type The input enumeration The predicate The first matching value or the default for the type if not found Returns true if both dictionaries have equal key/value pairs. The first collection The second collection True if the elements are equal Copies all of the elements of the input enumerable to an array. The element type The input enumerable The output array Copies all of the elements of the input collection to an array. The element type The input collection The output array A hashtable-based set implementation. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Adds an item to the . The object to add to the . Removes all items from the . Determines whether the contains a specific value. The object to locate in the . true if item is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in array at which copying begins. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Removes the first occurrence of a specific object from the . The object to remove from the . true if item was successfully removed from the ; otherwise, false. This method also returns false if item is not found in the original . A multi-map allows a list of values to be associated with a single key. Gets the number of distinct keys in the map. Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets or sets the list of values associated with the specified key. Returns an empty list if there are none. The key The list of values Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Adds a value to the list of those associated with a key. The key The value to associate Adds all values in the pair to the specified key. The key and values pair Adds all values in the pair to the specified key. The key The values Adds all of the values from the specified map. The map Thrown if is null Removes all items from the . Returns true if the map contains an entry with the specified key and value. The key The value to find True if the map contains an entry with the specified key and value Returns true if the map contains at least one value associated with the specified key. The key True if there is at least one value associated with the key Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Obtains a read-only view of another multi-map. The multi-map Thrown if is null Removes all values associated with the specified key. The key True if the key existed and was removed Removes a value from the list of those associated with a key. The key The value to remove from the key True if the value was removed Removes all values in the pair from the specified key. The key and values pair True if at least one value was removed Provides functions for manipulating ad-hoc trees. This is a and so cannot be inherited or instantiated. A user data collection stores arbitrary key/value pairs that may be associated with other objects in the system. Accesses to the collection are synchronized during access. To safely manupulate multiple keys at one time, simply lock the for the duration of the operation. Gets a value from the collection. The type of value to retrieve The key The associated value, or default(T) if none present Thrown if is null Determines whether a key has an associated value in the collection. The key True if the key has an associated value Thrown if is null Sets a value in the collection. The key The value to set, or null to remove the value Thrown if is null A multi-map allows a list of values to be associated with a single key. Adds a value to the list of those associated with a key. The key The value to associate Adds all of the values from the specified map. The map Thrown if is null Returns true if the map contains an entry with the specified key and value. The key The value to find True if the map contains an entry with the specified key and value Removes a value from the list of those associated with a key. The key The value to remove from the key True if the value was removed Enumerates child nodes in a tree. The node A process task provides support for launching external processes and collecting their output. The process task provides a guarnatee that when you call all redirected output from the console output and error streams will already have been captured and delivered to the event handlers, as appropriate. Gets the arguments. Gets or sets whether console error stream of the process should be captured and made available via the property. The default value is false. Gets or sets whether console output stream of the process should be captured and made available via the property. The default value is false. Gets the captured contents of the console error stream written by the process. Thrown if the process has not been started or if is null Gets the captured contents of the console output stream written by the process. Thrown if the process has not been started or if is null Gets the executable path. Gets the exit code of the process, or -1 if the process did not run or has not exited. Gets the that was started or null if the process has not been started yet. Gets the working directory path. Aborts the task. Waits for the task to terminate. The timeout True if the task is not running as of the time this method exits, false if a timeout occurred while waiting Starts the task. Starts a . The that has been started The process The event fired when new output is received on the console error stream. The event fired when new output is received on the console output stream. A task represents a concurrently executing operation. A might not necessarily represent an operation that is executing in a local . It can represent other processes that execute remotely or that are represented by some other mechanism. A is guaranteed to send events in the following order: , (if applicable), . The events are dispatched synchronously such that the next event in the sequence will not be fired until the previous event is completely processed. This class is and so cannot be instantiated. Returns true if the task has been aborted. Returns true if the task has not been started or aborted yet. Returns true if the task is running. Returns true if the task ran and was terminated. Gets the name of the task. Gets the task result, or null if the task has not terminated or was aborted before starting. Asynchronously aborts the task. If the task has not been started, then the task will be forbidden from starting later and its property will be set. If the task has already terminated, then does nothing. Aborts the task. Waits for the task to terminate. Does nothing if the task has not been started or is not running. The timeout True if the task is not running as of the time this method exits, false if a timeout occurred while waiting Thrown if represents a negative time span Waits for the task to terminate. The timeout True if the task is not running as of the time this method exits, false if a timeout occurred while waiting Dispatches notification that the task has terminated and provides its result. The task result Thrown if is null Thrown if the task is not currently running Notifies the event handlers. Notifies the event handlers. Notifies the event handlers. Starts the task and waits for it to complete until the timeout expires. If the timeout expires, aborts the task and returns false. The timeout True if the task ran to completion within the specified time span, false if the task was aborted Starts running the task. Does nothing if the task has already been started or has been aborted. Starts the task. Adds or removes an event handler that is signaled when the task is aborted. If a handler is being added and the task has already aborted, it is immediately invoked. Adds or removes an event handler that is signaled when the task is started. If a handler is being added and the task has already started, it is immediately invoked. Adds or removes an event handler that is signaled when the task is terminated. If a handler is being added and the task has already terminated, it is immediately invoked. A manages the lifecycle of any number of s and monitors their run-time behavior. For example, when a terminates abruptly due to an exception, its container will send out a notification that may cause all of the other tasks to be aborted and for the currently executing test case to fail. Asynchronously aborts all of the tasks currently running within the container. Waits for all of currently running tasks to terminate. The maximum amount of time to wait True if no tasks are running as of the time this method exits, false if a timeout occurred while waiting Thrown if represents a negative time span Adds a new task for this container to watch. The task to monitor Thrown if is null Adds or removes an event handler that is signaled when any watched task is aborted. Adds or removes an event handler that is signaled when any watched task is started. Adds or removes an event handler that is signaled when any watched task is terminated. A task-related event. Gets the task that the event is about. Holds the result of executing a task. This is a and so cannot be inherited or instantiated. Gets the exception that was encountered by the task and caused it to terminated, or null if no exception was thrown. Gets the value yielded by the task when it terminated, or null if an exception was thrown. Creates a task result that contains the specified exception that was encountered by the task and caused it to terminate. The exception Thrown if is null Creates a task result that contains the specified value yielded by the task when it terminated. The value Returns a that represents the current . A that represents the current . A executes a block of code inside a special scope that is designed to issue and safely handle on demand. This class may be used as a primitive for implementing higher-level protected scopes for the purpose of asynchronous cancelation and time-limited execution. Aborts the currently running action and prevents any further actions from running inside of this scope. Runs an action inside of the scope. The action to run The that was caught if the action was aborted, or null if the action completed normally Thrown if is null Thrown if an action is already running in this scope Any other exception thrown by itself An implementation of based on a locally running thread. Gets the thread on which the task is running, or null if the task is not running. Aborts the task. Waits for the task to terminate. The timeout True if the task is not running as of the time this method exits, false if a timeout occurred while waiting Starts the task. An attachment is an embedded object in an execution log. An attachment must specify a content type (a MIME type), and some contents. This class is and so cannot be instantiated. Gets the content type of the attachment specified as a MIME type, not null. for definitions of common supported MIME types. Gets the name of the attachment, not null. Creates an HTML attachment. The attachment name, or null to automatically assign one The html string, not null The attachment Thrown if is null Embeds an image attachment with a mime-type compatible with its internal representation. The attachment name, or null to automatically assign one The image to attach Thrown if is null Embeds an XML-serialized object as an XML attachment with mime-type using the specified serializer. The attachment name, or null to automatically assign one The object to serialize and embed, must not be null The xml serializer to use, or null to use the default based on the object's type Thrown if is null Creates a plain text attachment. The attachment name, or null to automatically assign one The text string, not null The attachment Thrown if is null Creates an XHTML attachment. The attachment name, or null to automatically assign one The xhtml string, not null The attachment Thrown if is null Creates an XML attachment. The attachment name, or null to automatically assign one The XML string, not null The attachment Thrown if is null Represents a binary-encoded attachments. This class cannot be inherited. Gets the binary content of the attachment, not null. The context provides information about the environment in which a test is executing. A new context is created each time a test or test step begins execution. Contexts are arranged in a hierarchy that corresponds to the order in which the contexts were entered. Thus the context for a test likely has as its parent the context for its containing test fixture. Arbitrary user data can be associated with a context. Furthermore, client code may attach event handlers to perform resource reclamation just prior to marking the test step as finished. This is a and so cannot be inherited or instantiated. Gets the current assertion count. Gets the context of the current thread, or null if there is no current context. Gets the user data collection associated with the context. It may be used to associate arbitrary key/value pairs with the context. Gets the global context of the environment, or null if there is no such context. Returns true if the step associated with the context has finished execution and completed all actions. Gets or sets the lifecycle phase the context is in. Thrown if is null Gets the log writer for this context. Each test step gets its own log writer that is distinct from those of other steps. So the log writer returned by this property is particular to the step represented by this test context. Gets the step's outcome or its interim outcome if the test is still running. The value of this property is initially but may change over the course of execution to reflect the anticipated outcome of the test. When the test finishes, its outcome is frozen. Gets the parent context or null if this context has no parent. Gets the sandbox of the test step, or null if none. Gets the test associated with the context. Gets the test step associated with the context. Adds the specified amount to the assert count atomically. The amount to add to the assert count Adds metadata to the step that is running in the context. The metadata key The metadata value Thrown if or is null Enters this context with the current thread. A cookie that can be used to restore the current thread's context to its previous value Enters the specified context with the current thread. The context to enter, or null to enter a scope without a context A cookie that can be used to restore the current thread's context to its previous value Gets the default context for the specified thread. The thread The default context Thrown if is null Increments the assert count atomically. Performs an action as a new step within the current context and associates it with the calling function. This method creates a new child context with a new nested , enters the child context, performs the action, then exits the child context. The name of the step The action to perform The context of the step that ran Thrown if or is null Thrown if is the empty string Any exception thrown by the action Performs an action as a new step within the current context and associates it with the specified code reference. This method creates a new child context with a new nested , enters the child context, performs the action, then exits the child context. The name of the step The associated code element, or null if none The action to perform The context of the step that ran Thrown if or is null Thrown if is the empty string Any exception thrown by the action Sets the step's interim . The interim outcome is used to communicate the anticipated outcome of the step to later phases of execution. Thrown if attempting to set the outcome while the test is not running Sets the default context for the specified thread. The thread The context to associate with the thread, or null to reset the thread's default context to inherit the once again Thrown if is null The event is raised when the test is finishing to provide clients with an opportunity to perform additional clean up tasks after all ordinary test processing is finished. The log class provides services for writing information to the execution log associated with a test. An execution log records the output of a test during its execution including any text that was written to console output streams, exceptions that occurred, and anything else the test writer might want to save. A log consists of zero or more log streams that are opened automatically on demand to capture independent sequences of log output. Each stream can further be broken down into possibly nested sections to classify output during different phases of test execution (useful for drilling into complex tests). In addition to text, a log can contain attachments that are either attached at the top level of the log or embedded into log streams. Attachments are typed by mime-type and can contain Text, Xml, Images, Blobs, or any other content. Certain test frameworks may automatically create attachments to gather all manner of diagnostic information over the course of the test. This is a and so cannot be inherited or instantiated. Gets the current stream writer for the built-in log stream where the stream for the test is recorded. Gets the current stream writer for the built-in log stream where the stream for the test is recorded. Gets the current stream writer for the built-in log stream where the stream for the test is recorded. Gets the current stream writer for the built-in log stream where diagnostic and information is recorded. Gets the current stream writer for the built-in log stream where the output from the convenience methods of the class is recorded. Gets the current stream writer for the built-in log stream where assertion failures, exceptions and other failure data are recorded. Gets the current stream writer for the built-in log stream where warnings are recorded. Gets the current log writer. The execution log, never null Thrown if there is no current log writer Attaches an attachment to the execution log. This is a convenience method that forwards the request to the current log writer as returned by the property. The attachment to include The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an HTML attachment with mime-type . This is a convenience method that forwards the request to the current log writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The HTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an image attachment with a mime-type compatible with its internal representation. This is a convenience method that forwards the request to the current log writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The image to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an XML-serialized object as an XML attachment with mime-type using the default for the object's type. This is a convenience method that forwards the request to the current log writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an XML-serialized object as an XML attachment with mime-type using the specified . This is a convenience method that forwards the request to the current log writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The to use, or null to use the default for the object's type The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an plain text attachment with mime-type . This is a convenience method that forwards the request to the current log writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The text to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an XHTML attachment with mime-type . This is a convenience method that forwards the request to the current log writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XHTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an XML attachment with mime-type . This is a convenience method that forwards the request to the current log writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Begins a section with the specified name. Execution log sections may be nested. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the section A Disposable object that calls when disposed. This is a convenience for using the C# "using" statement to contain log stream sections. Thrown if is null Embeds an attachment into the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The attachment to embed The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an existing attachment into the stream. This method can be used to repeatedly embed an existing attachment at multiple points in multiple streams without needing to keep the instance itself around. This can help to reduce memory footprint since the original instance can be garbage collected shortly after it is first attached. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the existing attachment to embed Thrown if is null Thrown if no attachment with the specified name has been attached to the log Embeds an HTML attachment with mime-type . This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The HTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an image attachment with a mime-type compatible with its internal representation. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The image to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an XML-serialized object as an XML attachment with mime-type using the default for the object's type. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an XML-serialized object as an XML attachment with mime-type using the specified . This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The to use, or null to use the default for the object's type The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an plain text attachment with mime-type . This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The text to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an XHTML attachment with mime-type . This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XHTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an XML attachment with mime-type . This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Ends the current section. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. Thrown if there is no current section Writes a character to the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The character value Writes a string to the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The string value Writes a formatted object to the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The object value Writes an array of characters to the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The array of characters Writes an array of characters to the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The character buffer The index of the first character in the buffer to write The number of characters from the buffer to write Thrown if is null Thrown if or are out of range Writes a formatted string to the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The format string The format string arguments Thrown if is null Writes an exception to the log within its own section with the name "Exception". The exception to write Thrown if is null Writes an exception to the log within its own section with the specified name. The exception to write The section name Thrown if , or is null Writes an exception to the log within its own section with the specified name. The exception to write The section name format string The section name arguments Thrown if , or is null Writes a line delimiter to the stream. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. Writes a character to the stream followed by a line delimiter. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The character value Writes a string to the stream followed by a line delimiter. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The string value Writes a formatted object to the stream followed by a line delimiter. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The object value Writes an array of characters to the stream followed by a line delimiter. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The array of characters Writes a formatted string to the stream followed by a line delimiter. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The format string The format string arguments Thrown if is null A log stream writer provides methods for writing text and embedded attachments to a named stream within a log. Each log may contain many streams. Each stream may be further subdivided into sections. This class is and so cannot be instantiated. When overridden in a derived class, returns the in which the output is written. The Encoding in which the output is written. Gets or sets the line terminator string used by the current TextWriter. The line terminator string for the current TextWriter. Gets the name of the log stream being written. Begins a section with the specified name. Execution log sections may be nested. The name of the section A Disposable object that calls when disposed. This is a convenience for using the C# "using" statement to contain log stream sections. Thrown if is null Begins a section. The name of the section to begin, never null This method does not make sense for a log stream writer because a stream cannot be closed independently of its containing log. Embeds an attachment into the stream. The attachment to embed The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an existing attachment into the stream. This method can be used to repeatedly embed an existing attachment at multiple points in multiple streams without needing to keep the instance itself around. This can help to reduce memory footprint since the original instance can be garbage collected shortly after it is first attached. The name of the existing attachment to embed Thrown if is null Thrown if no attachment with the specified name has been attached to the log Adds previously attached attachment to the execution log and embeds it in this stream at the current location. The name of the attachment to write, never null Thrown if no attachment with the specified name has been attached to the log Embeds an HTML attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The HTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an image attachment with a mime-type compatible with its internal representation. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The image to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Adds an attachment to the execution log and embeds it in this stream at the current location. The attachment to write, never null Thrown if a different attachment instance with the same name was already written Embeds an XML-serialized object as an XML attachment with mime-type using the default for the object's type. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an XML-serialized object as an XML attachment with mime-type using the specified . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The to use, or null to use the default for the object's type The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an plain text attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The text to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an XHTML attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XHTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds an XML attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Ends the current section. Thrown if there is no current section Ends the current section. Thrown if there is no current section Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. Flushes the stream. Writes a string to the text stream. The string to write. Writes a subarray of characters to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. Writes an exception to the log within its own section with the name "Exception". The exception to write Thrown if is null Writes an exception to the log within its own section with the specified name. The exception to write The section name Thrown if , or is null Writes an exception to the log within its own section with the specified name. The exception to write The section name format string The section name arguments Thrown if , or is null Writes a text string to the execution log. The text to write, never null A log records the output of a test during its execution including any text that was written to console output streams, exceptions that occurred, and anything else the test writer might want to save. A log consists of zero or more log streams that are opened automatically on demand to capture independent sequences of log output. Each stream can further be broken down into possibly nested sections to classify output during different phases of test execution (useful for drilling into complex tests). In addition to text, a log can contain attachments that are either attached at the top level of the log or embedded into log streams. Attachments are typed by mime-type and can contain Text, Xml, Images, Blobs, or any other content. Certain test frameworks may automatically create attachments to gather all manner of diagnostic information over the course of the test. This class is and so cannot be instantiated. Gets the stream writer for the built-in log stream where the stream for the test is recorded. Gets the stream writer for the built-in log stream where the stream for the test is recorded. Gets the stream writer for the built-in log stream where the stream for the test is recorded. Gets the stream writer for the built-in log stream where diagnostic and information is recorded. Gets the stream writer for the built-in log stream where the output from the convenience methods of the class is recorded. Gets the stream writer for the built-in log stream where assertion failures, exceptions and other failure data are recorded. Gets the log stream with the specified name. If the stream does not exist, it is created on demand. The name of the log stream The log stream Thrown if is null Gets the stream writer for the built-in log stream where warnings are recorded. Attaches an attachment to the execution log. The attachment to include The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an HTML attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The HTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an image attachment with a mime-type compatible with its internal representation. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The image to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Adds an attachment to the execution log. The attachment to write, never null Thrown if there is already an attachment with the same name Attaches an XML-serialized object as an XML attachment with mime-type using the default for the object's type. The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an XML-serialized object as an XML attachment with mime-type using the specified . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The object to serialize and embed, must not be null The to use, or null to use the default for the object's type The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an plain text attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The text to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an XHTML attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XHTML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Attaches an XML attachment with mime-type . The name of the attachment to create or null to automatically assign one. The attachment name must be unique within the scope of the currently executing test step. The XML to attach The attachment Thrown if is null Thrown if there is already an attachment with the same name Gets a writer for the stream with the specified name. The stream name, never null The log stream writer A sandbox is an isolated environments for executing test actions. It provides the ability to abort actions in progress so that the test runner can proceed to run other actions. Sandboxes are hierarchically structured. When an outer sandbox is aborted, all of its inner sandboxes are likewise aborted. A sandbox also provides the ability to create new child sandboxes at will so that test actions can be isolated with fine granularity. This class cannot be inherited. Gets a message that will be logged when the sandbox is aborted, or null if none. Returns the passed to the , or null if has not been called. Returns true if was called. Aborts all actions in progress within this context. The abort is persistent and cannot be reverted. Therefore once aborted, no further test actions will be permitted to run. Subsequent calls to will have no effect. The outcome to be returned from aborted actions A message to be logged when the action is aborted, or null if none Creates a child sandbox. When the parent sandbox is aborted, the child will likewise be aborted. This policy offers a mechanism to scope actions recursively. The child sandbox Disposes the sandbox. All currently executing actions are aborted with if has not already been called. Runs a test action. If the method is called or has already been called, the action is aborted and the appropriate outcome is returned. The abort is manifested as an asynchronous which should cause the action to terminate. It may not terminate immediately, however. Produces an outcome in the following manner: If the action completed without throwing an exception returns .If the action threw a , returns the value of the property.If the action threw an different kind of exception, logs the exception and returns .If the action was aborted, returns . The action to run A description of the action being performed, to be used as a log section name when reporting failures, or null if none The outcome of the action Thrown if is null An event that is dispatched when is called. If the sandbox has already been aborted then the event handler is immediately invoked. This exception type is used to signal a test outcome silently without logging the exception. Returns true if the outcome and message (if any) should be used but the exception stack trace should not be logged. Gets the outcome of the test. When overridden in a derived class, sets the with information about the exception. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. Provides functions for manipulating test steps. A step is a delimited region of a test. Each step appears in the report as if it were a dynamically generated test nested within the body of the test (or some other step) that spawned it. The step has its own execution log, pass/fail/inconclusive result and in all other respects behaves much like an ordinary test would. The number of steps within a test does not need to be known ahead of time. This can be useful in situations where insufficient information is known about the internal structure of a test to be able to fully populate the test tree will all of its details. Because steps are dynamically generated at runtime, they appear in test reports but they are invisible to test runners. that traverse the test tree. There are many interesting uses for steps. For example: A single test consisting of a long sequence of actions can be subdivided into steps to simplify analysis.A test might depend on environmental configuration that cannot be known a priori.A performance test might be scheduled to run for a certain duration but the total number of iterations is unknown. By running each iteration as a step within a single test, the test report can display the execution log and pass/fail result of each iteration independently of the others.A script-driven test driver could execute a scripted sequence of verification commands as a distinct step. If the script is written in a general purpose programming language, the total number of commands and the order in which they will be performed might not be known ahead of time. Using steps enables the integration of tests written in forms that cannot be directly adapted to the framework's native testing primitives.When testing non-deterministic algorithms, it is sometimes useful to repeat a test multiple times under slightly different conditions until a certain level of confidence is reached. The variety of conditions tested might be determined adaptively based on an error estimation metric. Using steps each condition verified can be reported independently.This is a and so cannot be inherited or instantiated. Gets reflection information about the current step. Adds metadata to the step that is running in the context. The metadata key The metadata value Thrown if or is null Performs an action as a new step within the current context and associates it with the calling function. This method creates a new child context with a new nested , enters the child context, performs the action, then exits the child context. The name of the step The action to perform The context of the step that ran Thrown if or is null Thrown if is the empty string Any exception thrown by the action Performs an action as a new step within the current context and associates it with the specified code reference. This method creates a new child context with a new nested , enters the child context, performs the action, then exits the child context. The name of the step The associated code element, or null if none The action to perform The context of the step that ran Thrown if or is null Thrown if is the empty string Any exception thrown by the action The tasks class provides a mechanism for coordinating the actions of multiple tasks within a test case. Each task started by a test case is monitored. When the test exits, any remaining tasks are automatically aborted and disposed. This is a and so cannot be inherited or instantiated. Gets the task container for the current . Creates a new process task but does not start it. The output of the process will be logged and included as part of the test results. It may also be examined using the and properties while the process executes and after it terminates. The path of the executable executable The arguments for the executable The working directory The new thread task Thrown if , or is null Creates a new thread task but does not start it. The name of the task, or null to create a new name based on the method associated with the action The action to perform The new thread task Thrown if is null Waits for all tasks to complete or for timeout to occur. Then verifies that no failures have occurred in any of the tasks. The timeout Thrown if some of the tasks did not complete or if any of the tasks failed Starts a new process and begins watching it. The output of the process will be logged and included as part of the test results. It may also be examined using the and properties while the process executes and after it terminates. The path of the executable executable The arguments for the executable The working directory The new thread task Thrown if , or is null Starts a new thread task. The name of the task, or null to create a new name based on the method associated with the action The action to perform The new thread task Thrown if is null Verifies that no failures have occurred in any of the tasks. Thrown if any of the tasks failed Adds a new task for the task manager to watch. The task to watch Thrown if is null This exception type is an abstract base class for exceptions that are used to explicitly signal the outcome of a test. The test framework uses the value of the property to set the test result instead of applying the standard behavior for unexpected exceptions. This class is and so cannot be instantiated. Returns true if the outcome and message (if any) should be used but the exception stack trace should not be logged. Gets the message text, or null if none. Gets the outcome of the test. When overridden in a derived class, sets the with information about the exception. The that holds the serialized object data about the exception being thrown. The that contains contextual information about the source or destination. This exception type is used to signal that a test has failed to satisfy some predetermined condition established by the test author. For example, an assertion failure may be signaled using a to distinguish it from other application or runtime errors that a test might encounter at runtime. Returns . This exception type is used to signal that a test has not produced a conclusive pass or fail result. The exception message, if present, should explain the reason no conclusive result was obtained. Returns . Represents a text-encoded attachment. This class cannot be inherited. Gets the text of the attachment, not null. A context cookie is used to unwind the context stack of the current thread to its previous state prior to a context having been entered. Exits the context that was entered when the cookie was granted. Equivalent to calling . This method is provded as a convenience for use with the C# using statement. Thrown if the cookie belongs to a different or if the context was already exited Thrown if the context manager has been disposed Exits the context that was entered when the cookie was granted. Thrown if the cookie belongs to a different or if the context was already exited Thrown if the context manager has been disposed Abstract base class for an aggregate data set that combines a list of data sets according to some algorithm. This class is and so cannot be instantiated. Gets the immutable list of combined data sets. Adds a data set to the aggregate. The data set to add Thrown if is null Thrown if is already a member of this aggregate Base class for data rows with static metadata. This class is and so cannot be instantiated. Returns true if the data row contains dynamic data that cannot be accessed with certainty prior to its eventual use because its contents may be unavailable ahead of time, may change over time or may be expensive to obtain. For example, data obtained from a database should be considered dynamic. On the other hand, data obtained from declarative metadata defined as part of the test should be considered static. Gets the metadata key/value pairs associated with the data row, if any. For example, the metadata may contain a description that serves as documentation of the contents of the data row or of the test scenario that is exercised by the contents of the data row. This metadata may be injected into test instances created with the contents of this data row. Gets the value of the specified binding. The data binding, never null The value Implements . The binding, never null The associated value Abstract base class for that validates input arguments before passing them on to the implementation. This class is and so cannot be instantiated. Gets the number of columns in an indexed data set. Returns true if the data set can provide a value for the specified binding. The binding True if the data set can provide a value for the binding Determines whether a binding can be satisfied by the data set. The data binding, not null True if the binding can be satisfied Gets an enumeration of data rows that can supply values for a given collection of bindings. The bindings that are requested If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. The enumeration of data rows Enumerates the rows in the data set. The data bindings, not null If true, includes dynamic rows The enumeration of rows in the combined data set A data set constructed from an enumerated sequence of column values. This class cannot be inherited. Gets the number of columns in an indexed data set. The combinatorial join strategy combines rows by constructing the cartesian product of the rows of each provider. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Joins the rows from each provider into a sequence of aggregate rows. The list of providers The list of bindings per provider An enumeration of row-lists consisting of exactly one row from each provider and indexed in the same order as the If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. collection The concatenation merge strategy combines the rows from multiple providers by simply concatenating the rows in the order in which they appear and proceeding from one provider to the next until all providers have been fully processed. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Merges the rows from each provider into a new sequence. The list of providers The bindings If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. The merged sequence of rows A data binding object describes how a data binding is to take place. This class provides support for optional path-based and index-based lookup. Subclasses may define define custom lookup rules for a bound value that are recognized by data sets. This class is and so cannot be instantiated. Gets an optional binding index that describes how to locate the bound value in a data set that is structured as an ordered tuple, such as the ordinal index of a cell in an array. Null if none. Gets an optional binding path that describes how to locate the bound value in the data set, such as a column name or an XPath expression. Null if none. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Creates a clone of the data binding with a different index. The new index The cloned binding Returns a debug representation of the binding as a string. The string representation The type of exception thrown when data binding operations fail. A data binding specification describes how values are bound to slots () of a type or method. The specification can then be used to create new objects or invoke methods. A specification automatically converts values to the correct types for data binding using a . It can also format the specification to a string using a . This class is and so cannot be instantiated. Gets the converter. Gets the slot values. Appends formatted generic arguments within angle brackets, if any. The string builder, not null The arguments, not null The formatter, not null Appends formatted generic arguments within parentheses, if any. The string builder, not null The arguments, not null The formatter, not null Appends formatted values keyed and sorted by name, if any. This method is used with fields and properties. The string builder, not null The named values, not null The formatter, not null Formats the specification to a string for presentation. The values are listed sequentially as follows: The slot values, if any, are ordered by index and enclosed within angle bracket.The slot values, if any, are ordered by index and enclosed within parentheses.All other slot values, if any, are ordered by name and formatted as name-value pairs delimited by equals signs. Example: '<int, string>(42, "deep thought"), Book="HGTTG"'. If there are no slots of a given kind, then the enclosing angle brackets or parentheses are ignored. Therefore if is empty, then an empty string will be returned. The formatter The formatted specification Thrown if is null Internal implementation of after argument validation. The formatter, not null The formatted specification Resolves a member that may be declared by a generic type using the resolved type or one of its subtypes. For example, if was declared by type Foo<T> and is a subtype of Foo<int>, returns a reflection object for the member as declared by Foo<int>. The type of member The resolved type, not null The member, not null The resolved member An data source object provides a simple way of aggregating data sets together. It also provides a simple translation mechanism for mapping binding paths to binding indexes which is useful for providing named aliases for columns in indexed data sets. Gets the name of the data source, or an empty string if it is anonymous. Adds an alias for a binding path to map it to the specified index. The binding path to match in a case-insensitive manner The associated index to use instead Thrown if is null Determines whether a binding can be satisfied by the data set. The data binding, not null True if the binding can be satisfied Enumerates the rows in the data set. The data bindings, not null If true, includes dynamic rows The enumeration of rows in the combined data set A data source table manages a collection of named data sources. Resolves the data source with the specified name. The data source name The resolved data source, or null if none found This class provides a set of factory methods for creating enumerable objects that generate values according to a specified rule. The generated values may be used for a variety of purposes including data-driven testing. This is a and so cannot be inherited or instantiated. Creates an enumeration that yields all values of an type. The type Thrown if is null Thrown if is not an type Creates an enumeration that yields a linear sequence of values forming an arithmetic progression. The first value to generate The number of values to generate The increment for each successive value The enumeration Thrown if is less than 0 Creates an enumeration that yields a linear sequence of values forming an arithmetic progression. The first value to generate The number of values to generate The increment for each successive value The enumeration Thrown if is less than 0 The intersection merge strategy combines the rows from multiple providers by discarding rows whose values do not appear in the rows of all other providers. If the same row appears more than once within any given provider, when it will be enumerated only as often as the least number of repetitions of that row that appear in other providers. Uniqueness is determined by the natural equality of each bound value in the row. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Merges the rows from each provider into a new sequence. The list of providers The bindings If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. The merged sequence of rows A joined data set is an aggregate data set that joins rows from each of zero or more other data sets according to a . A joined data set supports queries with two kinds of : A translated binding produced by is scoped to a particular . When a query occurs using a translated binding, only that and its components are consulted.Any other binding is treated as if it referred to the joined including all of the contributions of all data sets. The joined is conceptually laid out such that the columns of first appear first followed by those of successive s in order. To maintain this illustion, the component of the binding is adjusted internally before passing any queries on to the s. Thereafter a binding will be consumed by the first that returns true from its method after index-adjustment. Gets the number of columns in an indexed data set. Gets or sets the . By default the strategy is . Thrown if is null Adds a data set to the aggregate. The data set to add Determines whether a binding can be satisfied by the data set. The data binding, not null True if the binding can be satisfied Enumerates the rows in the data set. The data bindings, not null If true, includes dynamic rows The enumeration of rows in the combined data set Translates a binding into one that expresses a query that is scoped over a particular data set that is associated with this interface. If the binding contains an index parameter, the translated binding will contain an index that is offset based on the position of the contents of the data set within the rows of the joined aggregate. The data set The binding The translated binding Thrown if or is null Thrown if is not a member of this instance A list data row contains a list of static data values combined with optional metadata for the row. Data binding occurs based on the binding index alone. This class cannot be inherited. The value type A merged data set is an aggregate data set that selects rows from each of zero or more other data sets according to a . Gets the number of columns in an indexed data set. Gets or sets the . By default the strategy is . Thrown if is null Adds a data set to the aggregate. The data set to add Determines whether a binding can be satisfied by the data set. The data binding, not null True if the binding can be satisfied Enumerates the rows in the data set. The data bindings, not null If true, includes dynamic rows The enumeration of rows in the combined data set Encapsulates a specification for invoking a method given values for its generic parameters and formal parameters. This class cannot be inherited. Gets the method or generic method definition to be invoked. Gets the resolved method arguments. The values have already been converted to appropriate types for invoking the method. Gets the resolved method given any generic method arguments that may have been provided as slot values. Gets the resolved type that declares the method. Invokes the method. The object on which to invoke the method. This value is ignored if the method is static. The method result value Thrown if is null but the method is non-static A null data row simply returns a null value on each request. It has no metadata and it ignores disposal. This is a and so cannot be inherited or instantiated. Gets the singleton null data row instance. This field is read-only. Encapsulates a specification for creating objects given values for a type's generic parameters, constructor parameters, fields and properties. This class cannot be inherited. Gets the resolved constructor, or null if the type was abstract or if it was a struct and the default struct constructor is being use. Gets the resolved constructor arguments. The values have already been converted to appropriate types for invoking the constructor. Gets the resolved fields and their values. The values have already been converted to appropriate types for setting the fields. Gets the resolved properties and their values. The values have already been converted to appropriate types for setting the properties. Gets the resolved type given any generic type arguments that may have been provided as slot values. Gets the type or generic type definition to be instantiated. Creates an instance of the resolved type and initializes it using constructor parameter, field and property slot values. The new instance, never null Thrown if the type is not instantiable The pairwise strategy constructs a limited number of combinations of the rows within the data providers such that each combination differs by at most two different factors. This strategy can be more efficient than one based on exhaustively testing all combinations since many test failures result from the interaction of a relatively small number of factors: often just two of them. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Joins the rows from each provider into a sequence of aggregate rows. The list of providers The list of bindings per provider An enumeration of row-lists consisting of exactly one row from each provider and indexed in the same order as the If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. collection A data set constructed from a sequence of rows. This class cannot be inherited. Gets the number of columns in an indexed data set. A scalar data row represents a single static data values combined with optional metadata for the row. Data binding occurs whenever the binding index is 0. This class cannot be inherited. The value type The sequential join strategy combines rows from each data provider sequentially. If one provider contains fewer rows than the others, the sequential join strategy will insert a in its place until all other providers have been exhausted. This is similar to performing an "outer join" of multiple sources by row index. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Joins the rows from each provider into a sequence of aggregate rows. The list of providers The list of bindings per provider An enumeration of row-lists consisting of exactly one row from each provider and indexed in the same order as the If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. collection A simple minimalist implementation of a data binding. Gets an optional binding index that describes how to locate the bound value in a data set that is structured as an ordered tuple, such as the ordinal index of a cell in an array. Null if none. Gets an optional binding path that describes how to locate the bound value in the data set, such as a column name or an XPath expression. Null if none. Creates a clone of the data binding with a different index. The new index The cloned binding The union merge strategy combines the rows from multiple providers by discarding all rows whose values duplicate those of other rows that have already been enumerated. Uniqueness is determined by the natural equality of each bound value in the row. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Merges the rows from each provider into a new sequence. The list of providers The bindings If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. The merged sequence of rows An XML data set selects nodes from an XML document using XPath expressions. The selected nodes are returned as objects. Two XPath expressions are used. Row PathAn XPath expression that selects a set of nodes that are used to uniquely identify records. For example, the row path might be used to select the containing element of each Book element in an XML document of Books. The row path is specified in the constructor.Binding PathAn XPath expression that selects a node relative to the row path that contains a particular data value of interest. For example, the binding path might be used to select the Author attribute of a Book element in an XML document of Books. The binding path is specified by the . Gets the number of columns in an indexed data set. Determines whether a binding can be satisfied by the data set. The data binding, not null True if the binding can be satisfied Enumerates the rows in the data set. The data bindings, not null If true, includes dynamic rows The enumeration of rows in the combined data set A data provider generates an enumeration of s given a collection of s to satisfy. Gets an enumeration of data rows that can supply values for a given collection of bindings. The bindings that are requested If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. The enumeration of data rows Thrown if is null A data row provides a means for obtaining values or descriptions of values associated with data bindings. Each row may include metadata to describe the purpose of the row. Returns true if the data row contains dynamic data that cannot be accessed with certainty prior to its eventual use because its contents may be unavailable ahead of time, may change over time or may be expensive to obtain. For example, data obtained from a database should be considered dynamic. On the other hand, data obtained from declarative metadata defined as part of the test should be considered static. Gets the metadata key/value pairs associated with the data row, if any. For example, the metadata may contain a description that serves as documentation of the contents of the data row or of the test scenario that is exercised by the contents of the data row. This metadata may be injected into test instances created with the contents of this data row. Gets the value of the specified binding. The data binding, never null The value Thrown if the cannot be resolved or if its value cannot be obtained A data set provides data rows for data binding and describes whether is supports particular bindings. Gets the number of columns in an indexed data set. Returns true if the data set can provide a value for the specified binding. The binding True if the data set can provide a value for the binding Thrown if is null Resolves data sources by name. Resolves the data source with the specified name. The data source name The resolved data source, or null if none found Thrown if is null A data source scope provides a context in which data sources can be defined or resolves. Defines a new data source within this scope if one does not exist. Otherwise returns the existing one. The data source name The defined data source Thrown if is null A join strategy combines rows from multiple providers into products according to some algorithm. Joins the rows from each provider into a sequence of aggregate rows. The list of providers The list of bindings per provider An enumeration of row-lists consisting of exactly one row from each provider and indexed in the same order as the If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. collection A merge strategy combines rows from multiple providers into a sequence according to some algorithm. Merges the rows from each provider into a new sequence. The list of providers The bindings If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. The merged sequence of rows Abstract base class for that validates input arguments before passing them on to the implementation. This class is and so cannot be instantiated. Registers the 's requests to query particular s with the . The data binding context The data source resolver The data binding accessor to use for obtaining bound values from s produced by the . Implementation of . The data binding context, not null The data source resolver, not null The data binding accessor A base implementation of that performs argument validation. This class is and so cannot be instantiated. Gets a value derived from the . The data binding item The value Internal implementation of after argument validation has been performed. The data binding item, not null The value An implementation of that returns a constant value. This class cannot be inherited. A tracks a list of s and s that are used to produce s. This class cannot be inherited. Gets the converter service. Gets the immutable list of data sets to be enumerated during data binding. Returns true if the data binding context contains registered data bindings. Gets or sets the to use for combining the together. By default the strategy is . Thrown if is null Gets an enumeration of s. The contents of each item may be inspected using a as returned by . When the client is finished with an item, it should dispose it by calling the method of the . If true, includes rows that may be dynamically generated in the result set. Otherwise excludes such rows and only returns those that are statically known a priori. The enumeration of data binding items Registers a data binding for a given data set and adds the data set to the list of data sets to be enumerated during data binding. Returns a that may be used to retrieve the values associated with the binding. The data set The data binding Thrown if or is null A contains an that provides source information to be used by s to retrieve the value associated with a given data binding. The must be disposed after use to ensure that resources used during data binding are reclaimed in a timely fashion. This class cannot be inherited. Disposes the item and calls the event handlers. Gets the associated with the item. Thrown if the item has been disposed Adds or removes an event handler to be called when the item is disposed. An object data binder creates objects and binds values to its slots such as generic type parameters, constructor parameters, fields and properties. Implementation of . The data binding context, not null The data source resolver, not null The data binding accessor Sets the binder for a slot. The slot The binder Thrown if or is null A that simply requests bound values from the item's data row. This class cannot be inherited. A scalar data binder queries a specified data source with a data binding and converts the resulting value to the requested type. It does nothing during unbinding. Implementation of . The data binding context, not null The data source resolver, not null The data binding accessor A data binder specifies how to produce values that are suitable for data binding in some context. The typical lifecycle is as follows: First, a is created.Next the client calls for each , supplying the and a for resolving data sources.Then the client calls and begins enumerating over the items.For each item, the client calls using the produced by the s to obtain the bound values.When finished with an item, the client disposes it. The lifecycle may also be explained in terms of three phases from the perspective of a . PrebindingThe method is called to register interest in particular s with the .BindingThe method is called to obtain bound values from a .UnbindingThe 's method is called to release resources used by the bound values. Registers the 's requests to query particular s with the . The data binding context The data source resolver The data binding accessor to use for obtaining bound values from s produced by the . Thrown if or is null A data binding accessor extracts a value from a . Gets a value derived from the . The data binding item The value Converts arrays from one-dimensional arrays of one element type to another. This class cannot be inherited. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost An abstract base class implementation of that mostly validates arguments and provides a default implement for based on . This class is and so cannot be instantiated. Determines whether the converter can convert a value of type to type . The source type The target type True if the converter supports this conversion Implements . The source type, never null The target type, never null True if the conversion is supported Converts the value to type . The value to convert The target type The converted value Implements The source value The target type, never null The converted value Gets the cost of converting a value of type to type . The source type The target type The conversion cost Implements . The source type, never null The target type, never null The conversion cost Converts values among types. This class cannot be inherited. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost A null implementation of a converter that does not actually support converting values. Consequently returns false whenever a conversion would be required. Gets a singleton instance of the null converter. This field is read-only. Implements The source value The target type, never null The converted value Implements . The source type, never null The target type, never null The conversion cost Converts an into a using . This class cannot be inherited. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost A rule-based converter uses a set of s to perform conversions. It caches the best path it determines for each conversion so that it only needs to compute the conversion cost once. Implements The source value The target type, never null The converted value Implements . The source type, never null The target type, never null The conversion cost A that uses all s that are registered with the . Converts a into an assuming the string is valid xml. This class cannot be inherited. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost Converts objects to objects. This class cannot be inherited. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost Converts an into a by value or outer xml. This class cannot be inherited. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost Converts objects to XML serializable objects that have the . This class cannot be inherited. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost Describes the relative cost of performing a conversion so that different conversions can be ranked by cost. A typical direct conversion should have a cost of one. Lossy conversions should be more costly. The conversion is the best possible conversion available. Built-in conversions should not use this value. It should be reserved for user-created conversions that are intended to override the built-in conversions. This field is read-only. The conversion is a poor default choice. It costs a sufficient number of units of work to perform to ensure that a non-default conversion will be chosen if possible. This field is read-only. The conversion is not supported. This field is read-only. The conversion costs the maximum possible amount of work to perform. This field is read-only. The conversion costs a typical amount of work to perform. It may yet be trumped by a conversion that costs less. This field is read-only. The conversion has zero cost because no work is required. This field is read-only. Returns true if the conversion is not supported. Gets the cost value. Adds this conversion cost with the other and returns the sum. The other conversion cost The summed conversion cost Returns the fully qualified type name of this instance. A containing a fully qualified type name. A conversion rule encapsulates an algorithm for converting a value from a source type to a target type. Converts the value to type . The value to convert, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The converted value Gets the cost of converting a value of type to type . The source type, never null The target type, never null A converter that may be used to recursively convert the contents of a composite object from one type to another, never null The conversion cost A converter converts a value from a source type to a target type. Determines whether the converter can convert a value of type to type . The source type The target type True if the converter supports this conversion Thrown if or is null Converts the value to type . The value to convert The target type The converted value Thrown if is null Thrown the requested conversion was not supported Gets the cost of converting a value of type to type . The source type The target type The conversion cost Thrown if or is null A formatting rule for . Formats values as "true" or "false". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as two digit hex values like "0xa5". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as literals like: "'x'" or "'\n'". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A default formatting rule for objects based on using the to convert the value to a string. This rule has minimum priority so that all other formatting rules should override it in principle. This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values in the invariant round-trip format like: "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as "dbnull". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values like: "5.6m". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as "\"key\": \"value\"". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values like: "5.6". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as "[1, 2, 3]". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type Typical priority values to use as guidelines. This is a and so cannot be inherited or instantiated. The best possible formatting rule priority. A rule with this priority will override all other matching rules. This field is constant and read-only. A better than typical rule. This value should be used for cases where the typical rule is not quite precise enough. This field is constant and read-only. The default formatting rule priority. A rule with this priority will be overridden by all other matching rules. This field is constant and read-only. Typical rule priority. This is a good starting point for rule priorities. This field is constant and read-only. A formatting rule for , , , , , and . Formats values like: "5", "123", "-12". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as "\"key\": \"value\"". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A rule-based formatter uses a set of s to format values appropriately. Formats an object to a string for display. The object to format, may be null The formatted string, never null and never an empty string A that uses all s that are registered with the . A formatting rule for . Formats values as two digit signed hex values like "0x55" and "-0x55". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values like: "5.6f". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as literals like: ""abc\ndef"". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values like: System.String, MyType+Nested, System.Int32[] This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A formatting rule for . Formats values as "<root />". This class cannot be inherited. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type Provides services for formatting objects for display. Formats an object to a string for display. The object to format, may be null The formatted string, never null and never an empty string A formatting rule encapsulates an algorithm for formatting values of particular types to strings for presentation. Formats the specified object. The object to format, never null The formatter to use for recursive formatting, never null The formatted string representation of the object or null if the object could not be formatted to produce a non-empty string Gets the formatting rule's priority for object of the specified type. Rules with higher priority values take precedence over rules with lower priority values. The type of object, never null The priority of this rule, or null if the rule does not support formatting the specified object type A test assembly decorator pattern attribute applies decorations to an existing assembly-level test. This class is and so cannot be instantiated. Applies decorations to an assembly-level . A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The test builder The assembly Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process An assembly initialization attribute gets a chance to perform early initialization of the system before enumerating the tests within the assembly. For examples, a subclass of this attribute may be used to register an assembly resolver before test enumeration occurs to ensure that all referenced assemblies can be loaded. This class is and so cannot be instantiated. Performs early initialization for the specified assembly. The top level test builder that will contain the assembly-level test The assembly to process Declares that an assembly generates an assembly-level test. Subclasses of this attribute can customize how test enumeration takes place within the assembly. At most one attribute of this type may appear on any given assembly. This class is and so cannot be instantiated. Gets a default instance of the assembly pattern attribute to use when no other pattern consumes an assembly. This field is read-only. Gets the default pattern to apply to types that do not have a primary pattern, or null if none. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Creates a test for an assembly. The containing test builder The assembly The test Gets the primary pattern of a type, or null if none. The pattern resolver The type The primary pattern, or null if none Initializes a test for an assembly after it has been added to the test model. The test builder for the assembly The assembly Returns true if the code element associated with the pattern represents a test. The pattern resolver The code element True if the code element represents a test Populates the children of the assembly test all at once. The assembly test builder The assembly Populates the children of the assembly test on demand. The assembly test builder The type from which to populate children on demand Prepares to populate the children of the assembly test on demand by adding actions to . The assembly test builder The assembly Processes a type within the assembly. The test builder for the assembly The type Validates whether the attribute has been applied to a valid . Called by . The assembly Thrown if the attribute is applied to an inappropriate assembly Abstract base implementation of with do-nothing implementations. This class is and so cannot be instantiated. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Returns true if the code element associated with the pattern represents a test. The pattern resolver The code element True if the code element represents a test Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process Processes a test parameter that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate test parameters defined by itself. For example, will typically be called by another pattern that has just created a new test parameter based on declarative information about the . The callee then has the opportunity to add decorators to the new test parameter and to apply other contributions of its choosing. The test parameter builder The code element to process A base implementation of that does nothing. Gets information about the tools that are used by the specified test assembly. The tool information will be included in the report as part of the framework node that contains the assembly. This method is used by authors of tools that are derived from the to provide brand and version information about the tool so that it will be visible to end users. If no tools are referenced by the assembly, it will be ignored by the . The test assembly The tool information The pattern used to bootstrap test enumeration for assemblies. Gets the singleton instance of the pattern. This field is read-only. Gets the default pattern to apply to assemblies that do not have a primary pattern, or null if none. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Gets the primary pattern of an assembly, or null if none. The pattern resolver The assembly The primary pattern, or null if none Returns true if the code element associated with the pattern represents a test. The pattern resolver The code element True if the code element represents a test Processes an assembly. The test builder for the framework The assembly If true, skips processing types within the assembly (if supported) A contribution pattern attribute applies decorations to a containing test such as by introducing a new setup or teardown action. This class is and so cannot be instantiated. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Applies decorations to the containing . The containing test builder The code element The data pattern attribute applies a data source to a fixture or test parameter declaratively. It can be attached to a fixture class, a public property or field of a fixture, a test method or a test method parameter. When attached to a property or field of a fixture, implies that the property or field is a fixture parameter (so the may be omitted). The order in which items contributed by a data pattern attribute are use can be controlled via the property. The contents of data sets with lower order indices are processed before those with higher indices. // Ensures that the rows are processed in exactly the order they appear. [Test] [Row(1, "a"), Order=1)] [Row(2, "b"), Order=2)] [Row(3, "c"), Order=3)] public void Test(int x, string y) { ... } This class is and so cannot be instantiated. Gets or sets the name of the data source to create so that the values produced by this attribute can be referred to elsewhere. Multiple data attributes may use the same data source name to produce a compound data source consisting of all of their values combined. If no name is given to the data source (or it is an empty string), the data source is considered anonymous. An anonymous data source is only visible within the scope of the code element with which the data source declaration is associated. By default, test parameters are bound to the anonymous data source of their enclosing scope. Thrown if is null Populates the data source with the contributions of this attribute. The data source The code element Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process Processes a test parameter that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate test parameters defined by itself. For example, will typically be called by another pattern that has just created a new test parameter based on declarative information about the . The callee then has the opportunity to add decorators to the new test parameter and to apply other contributions of its choosing. The test parameter builder The code element to process A declarative pattern resolver based on . This is a and so cannot be inherited or instantiated. Gets the singleton instance of the declarative pattern resolver. This field is read-only. Gets the patterns associated with the specified code element. The code element If true, includes inherited patterns The enumeration of patterns A decorator attribute applies contributions to a test model object such as an or generated by some other pattern attribute. Occasionally the order in which decorators are applied is significant so this type provides a property to specify an explicit ordering when required. All decorators that apply to a given test component declaration are applied in increasing . This class is and so cannot be instantiated. Gets or sets the order in which the decorator should be applied. Decorators with lower order indices values are applied before decorators with higher ones. In the case of a tie, an arbitrary choice is made among decorators with the same order index to determine the order in which they will be processed. The default order index is 0. A default pattern test builder implementation. Gets a chain of actions that are used to lazily populate children of this test that are declared by the specified code element. Does nothing if the children have already been populated. The action's parameter specified the code element that declares the child to be populated. If its value is null, then all children should be populated. Gets the test being built. Gets the builder for the test model. Adds a test as a child of this test and returns a new . The test for which to create a builder The new test builder Registers a test decorator action. The order in which the decorator should be evaluated, decorators with lower order indices are evaluated before those with higher ones The decorator action Adds a test dependency. The test dependency to add Adds a test parameter to this test and returns a new . The test parameter for which to create a builder The new test parameter builder Applies pending decorators and finishes building the test. The default pattern test model builder implementation. It maintains a dictionary of tests and test parameters indexed by code element for all of the builders it was responsible for creating. Gets the pattern resolver for the model. Gets the reflection policy for the model. Gets the test model being built. Adds a top level test and returns a new . The test for which to create a builder The new test builder Finds tests that are associated with the specified and returns an enumeration of their objects. The code element The enumeration of test builders Finds test parameters that are associated with the specified and returns an enumeration of their objects. The code element The enumeration of test parameter builders Registers the test builder with the test model so that it can be resolved later by . The test builder Registers the test parameter builder with the test model so that it can be resolved by . The test parameter builder A default pattern test parameter builder implementation. Gets the builder for the test that owns this parameter. Gets the builder for the test model. Gets the test parameter being built. Registers a test parameter decorator action. The order in which the decorator should be evaluated, decorators with lower order indices are evaluated before those with higher ones The decorator action Applies pending decorators and finishes building the test parameter. A dependency pattern attribute creates a dependency on the tests defined by some other code element. This class is and so cannot be instantiated. Gets the code element that declares the tests on which this test should depend. The test builder The code element The code element representing the dependency Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process Applies declarative metadata to a test component. A metadata attribute is similar to a decorator but more restrictive. Metadata does not modify the structure of a test directly. Instead it introduces additional entries in the collection that are useful for classification, filtering, reporting, documentation or other purposes. This class is and so cannot be instantiated. Applies metadata contributions the metadata map of a test component. The metadata map Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process Processes a test parameter that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate test parameters defined by itself. For example, will typically be called by another pattern that has just created a new test parameter based on declarative information about the . The callee then has the opportunity to add decorators to the new test parameter and to apply other contributions of its choosing. The test parameter builder The code element to process The class is the base class for all pattern test framework attributes. It associates a code element with a for building and objects using reflection. Subclasses of define simpler interfaces for implementing the semantics of common types of attributes such as test factories, decorators, and data providers. Refer to the documentation of each subclass for details on its use. This class is and so cannot be instantiated. A test case that has been defined by the . Gets the set of actions that describe the behavior of the test. Gets a to run this tes and all of its children. Returns null if this test is merely a container for other tests or if it otherwise does not require or provide its own controller. The test controller factory, or null if this test cannot produce a controller (and consequently is not a master test according to the definition above) Gets the set of actions that describe the behavior of the test's instances. Gets or sets the maximum amount of time the whole test including its setup, teardown and body should be permitted to run. If the test runs any longer than this, it will be aborted by the framework. The timeout may be null to indicate the absence of a timeout. Thrown if represents a negative time span Defines a new data source within this scope if one does not exist. Otherwise returns the existing one. The data source name The defined data source Resolves the data source with the specified name. The data source name The resolved data source, or null if none found An implementation of based on actions that can be sequenced and composed as chains. This class is the backbone of the extensibility model. Because new behaviors can be defined and added to action chains at will by any component that participates in the test construction process (typically an ), the framework itself does not need to hardcode the mechanism by which the behaviors are selected. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the test instance actions that describes the lifecycle of a test instance. Gets the test instance handler that describes the lifecycle of a test instance. Cleans up a completed test state after its use. This method runs in the of its containing test step because the test has terminated. The following actions are typically performed during this phase: Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way. The test state, never null Prepares a newly created test state before its use. This method runs in the of its containing test step because the test has not yet been started. The following actions are typically performed during this phase: Adding or changing slot binding accessors via .Configuring the in anticipation of test execution.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way. The test state, never null Creates a new object initially configured to forward calls to the specified handler without change. The result is that any behaviors added to the action chains of the returned will be invoked before, after or around those of the specified handler. A pattern test decorator applies additional actions around those of another for a . The handler to decorate The decorated handler actions Thrown if is null Decorates the of a test instance before its actions have a chance to run. This method runs in the of its containing test instance because the test has not yet been started. This method may apply any number of decorations to the test instance's handler by adding actions to the supplied object. The test instance's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. The following actions are typically performed during this phase: Adding additional actions for the test instance to the .Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test state, never null The test instance's actions to decorate, never null Cleans up a test following the execution of its instances. This method runs in the of the . The following actions are typically performed during this phase: Deconfiguring the test environment following the enumeration and execution of all test instances.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way. The test state, never null Initializes a test prior to the execution of its instances. This method runs in the of the . The following actions are typically performed during this phase: Aborting the test run if any preconditions have not been satisfied or if the test is to be skipped.Configuring the test environment in advance of the enumeration and execution of all test instances.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way. The test state, never null Controls the execution of instances. Implementation of called after argument validation has taken place. The root test command, not null The parent test step, or null if none The test execution options, not null The progress monitor, not null A test explorer for . Explores the tests defined by an assembly and links them into the . The assembly An action to perform on each assembly-level test explored, or null if no action is required Explores the tests defined by a type and links them into the . The type An action to perform on each type-level test explored, or null if no action is required Returns true if the code element represents a test. The element True if the element represents a test The pattern test framework is a built-in framework that Gallio provides based on reflection over attributes that implement . The pattern test framework does not provide many attributes that end-users would use to write tests. The framework is intended to be extended by components and libraries that define the test syntax and other facilities. For example, a Test-Driven framework would augment the base framework with a syntax based around test fixtures, test methods and assertions. A Behavior-Driven framework would instead use a syntax based around contexts and specifications. Both frameworks would share the common attribute-based model provided by the pattern test framework. They may even interoperate to a large extent. Other add-on libraries and tools may further contribute functionality to the pattern test framework by registering components with the runtime or by subclassing pattern attributes. Gets the name of the test framework. Creates a test explorer for this test framework. The test model to populate incrementally as tests are discovered The test explorer An implementation of based on actions that can be sequenced and composed as chains. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Gets the chain of actions. Cleans up a completed test instance after its use. This method runs in the of the because the test step for this instance (if different from the primary step) has terminated. The following actions are typically performed during this phase: Deconfiguring the test environment following the test disposal.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Prepares a newly created test instance state before its use. This method runs in the of the because the test step for this instance (if different from the primary step) has not yet started. If is false then this method has the opportunity to modify the name or add metadata to the brand new that was created for just this test instance. The following actions are typically performed during this phase: Adding or changing slot values .Configuring the test environment in advance of test initialization.Modifying the name or metadata of the , if is false (since the primary test step has already started execution).Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way UNLESS is false. The test instance state, never null Creates a new object initially configured to forward calls to the specified handler without change. The result is that any behaviors added to the action chains of the returned will be invoked before, after or around those of the specified handler. A pattern test decorator applies additional actions around those of another for a . The handler to decorate The decorated handler actions Thrown if is null Decorates the of a child test before its actions have a chance to run. This method runs in the of the test instance in the lifecycle phase. This method may apply any number of decorations to the child test's handler by adding actions to the supplied object. The child test's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. A typical use of this method is to augment the and behaviors of the child test with additional contributions provided by the parent. It is also possible to decorate descendants besides direct children. To do so, decorate the child's behavior to perpetuate the decoration down to more deeply nested descendants. This process of recursive decoration may be carried along to whatever depth is required. The following actions are typically performed during this phase: Adding additional actions for the child test to the .Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null The child test's actions to decorate, never null Disposes a test instance that is about to terminate. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Deconfiguring the test fixture following test execution.Disposing the test fixture instance.Disposing other resources.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Executes the test instance. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Invoking test methods.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Initializes a test instance that has just started running. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Creating the test fixture instance and setting and .Configuring the test fixture in advance of test execution.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Sets up a test instance prior to execution. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Invoking test setup methods.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Tears down a test instance following execution. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Invoking test teardown methods.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Represents the run-time state of a single instance of a that is to be executed. Typical lifecycle of : The creates a for the instance of the to be executed using particular data bindings.The controller populates the instance state with slot values for each slot with an associated in the .The controller calls to give test extensions the opportunity to modify the instance state.The controller initializes, sets up, executes, tears down and disposes the test instance.The controller calls to give test extensions the opportunity to clean up the instance state. Gets the data binding item obtained from the test's to create this state. Gets the converter for data binding. Gets the user data collection associated with the test instance state. It may be used to associate arbitrary key/value pairs with the execution of the test instance. Gets or sets the test fixture instance or null if none. Gets or sets the test fixture type or null if none. Thrown if contains unbound generic parameters, is a generic parameter, has an element type Gets the formatter for data binding. Returns true if the is the that was created for the test. False if a new was created as a child of the primary test step just for this test instance. Gets a mutable dictionary of slots and their bound values. The dictionary maps slots to the values that will be stored in them during test execution. Gets the test associated with this test instance state. Gets or sets the test method arguments or null if none. Gets the handler for the test instance. Gets or sets the test method or null if none. Thrown if is contains unbound generic parameters Gets the test state associated with this test instance state. Gets the test step used to execute the test instance. Gets a fixture object creation specification using the state's bound . The fixture type or generic type definition The fixture instance Thrown if is null Thrown if the slots or values in are not appropriate for instantiating Gets a test method invocation specification using the state's bound . The test method or generic method definition, possibly declared by a generic type or generic type defintion The method return value Thrown if is null Thrown if the slots or values in or are not appropriate for invoking Thrown if is null Thrown if the method itself throws an exception Invokes a fixture method using the specified . The fixture method or generic method definition, possibly declared by a generic type or generic type defintion The slot values to use for invoking the method The method return value Thrown if or is null Thrown if the slots or values in or or are not appropriate for invoking Thrown if is null Thrown if the method itself throws an exception Represents an parameter of a derived from a field, property or method parameter. Gets or sets the for this test parameter. Thrown if is null Gets the test that owns this parameter. Gets the associated slot. Defines a new data source within this scope if one does not exist. Otherwise returns the existing one. The data source name The defined data source Resolves the data source with the specified name. The data source name The resolved data source, or null if none found Represents the run-time state of a that is to be executed. Typical lifecycle of : The creates a for the to be executed.The controller populates the test state with slot binding accessors for each associated with the test.The controller calls to give test extensions the opportunity to modify the test state.The controller begins iterating over the s produced by the state's . For each item it constructs a and executes the test instance.The controller calls to give test extensions the opportunity to clean up the test state. Gets the data binding context of the test. The context is used to produce data items for test instances. Gets the converter for data binding. Gets the user data collection associated with the test state. It may be used to associate arbitrary key/value pairs with the execution of the test. Gets the formatter for data binding. Returns true if the test was selected explicitly. Gets the primary test step associated with this test state. If the test has data bindings, the test instance for each data item will be executed as children of the primary test step. Otherwise, the primary test step will be used for the entire test run. Gets a mutable dictionary of slots and their binding accessors. The dictionary maps slots to accessors that will provide values for those slots when building test instances. The accessor will be applied to s produced iteratively by the of this test state. Gets the test associated with this test state. Gets the handler for the test. A step that belongs to a . Gets the associated test. Provides utility functions for implementors and clients of . This is a and so cannot be inherited or instantiated. Gets the primary pattern associated with a code element, or null if none. The pattern resolver The code element The primary pattern, or null if none Thrown if there are multiple primary patterns associated with the code element The recursive type pattern may be used when a type is not consumed by any other pattern. It simply recurses back into the pattern engine to consume nested types, if any. Gets a singleton instance of this pattern. This field is read-only. Gets the default pattern to apply to nested types that do not have a primary pattern, or null if none. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Gets the primary pattern of a nested type, or null if none. The pattern resolver The nested type The primary pattern, or null if none Processes a nested type. The containing test builder The nested type Declares that a constructor is used to provide paramters to a . Subclasses of this attribute can control what happens with the method. At most one attribute of this type may appear on any given constructor. This class is and so cannot be instantiated. Gets a default instance of the constructor pattern attribute to use when no other pattern consumes a contructor. This field is read-only. Gets the default pattern to apply to constructor parameters that do not have a primary pattern, or null if none. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Gets the primary pattern of a constructor parameter, or null if none. The pattern resolver The constructor parameter The primary pattern, or null if none Initializes the containing . The containing test builder The constructor Processes a constructor parameter. The test builder for the type The constructor parameter Validates whether the attribute has been applied to a valid . Called by . The constructor Thrown if the attribute is applied to an inappropriate constructor A test decorator pattern attribute applies decorations to an existing type or method level . This class is and so cannot be instantiated. Applies decorations to a method or type-level . A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The test builder The code element Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process A test decorator pattern attribute applies decorations to an existing method-level . This class is and so cannot be instantiated. Applies decorations to a method-level . A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The test builder The method Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process Declares that a method represents a . Subclasses of this attribute can control what happens with the method. At most one attribute of this type may appear on any given method. This class is and so cannot be instantiated. Gets the default pattern to apply to generic parameters that do not have a primary pattern, or null if none. Gets the default pattern to apply to method parameters that do not have a primary pattern, or null if none. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Creates a test for a method. The containing test builder The method The test Gets the primary pattern of a generic parameter, or null if none. The pattern resolver The generic parameter The primary pattern, or null if none Gets the primary pattern of a method parameter, or null if none. The pattern resolver The method parameter The primary pattern, or null if none Initializes a test for a method after it has been added to the test model. The test builder for the method The method Returns true if the code element associated with the pattern represents a test. The pattern resolver The code element True if the code element represents a test Processes a generic parameter. The test builder for the type The generic parameter Processes a method parameter. The test builder for the type The method parameter Applies semantic actions to the member of a test to set the test's runtime behavior. This method is called after . The test The test method Validates whether the attribute has been applied to a valid . Called by . The method Thrown if the attribute is applied to an inappropriate method A test parameter decorator pattern attribute applies decorations to an existing . This class is and so cannot be instantiated. Applies decorations to a . A typical use of this method is to augment the test parameter with additional metadata or to add additional behaviors to the test parameter. The test builder The slot Processes a test parameter that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate test parameters defined by itself. For example, will typically be called by another pattern that has just created a new test parameter based on declarative information about the . The callee then has the opportunity to add decorators to the new test parameter and to apply other contributions of its choosing. The test parameter builder The code element to process Declares that a field, property, method parameter or generic parameter represents an . Subclasses of this attribute can control what happens with the parameter. At most one attribute of this type may appear on any given property, field or parameter declaration. This class is and so cannot be instantiated. Gets an instance of the parameter pattern attribute to use when no other pattern consumes the parameter but when the parameter appears to have other contributing pattern attributes associated with it. So a test parameter is created automatically if we try to apply contributions to it, such as data items, but otherwise it is silent. This is particularly useful with fields and properties. This field is read-only. Gets a default instance of the parameter pattern attribute to use when no other pattern consumes the parameter. This field is read-only. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Creates a test parameter. The containing test builder The slot The test parameter Initializes a test parameter after it has been added to the containing test. The test parameter builer The slot Validates whether the attribute has been applied to a valid . Called by . The slot Thrown if the attribute is applied to an inappropriate slot A test type decorator pattern attribute applies decorations to an existing type-level . This class is and so cannot be instantiated. Applies decorations to a type-level . A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The test builder The type Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process Declares that a type represents an . Subclasses of this attribute can control what happens with the type. At most one attribute of this type may appear on any given class. Gets the default pattern to apply to constructors that do not have a primary pattern, or null if none. Gets the default pattern to apply to events that do not have a primary pattern, or null if none. Gets the default pattern to apply to fields that do not have a primary pattern, or null if none. Gets the default pattern to apply to generic parameters that do not have a primary pattern, or null if none. Gets the default pattern to apply to methods that do not have a primary pattern, or null if none. Gets the default pattern to apply to nested types that do not have a primary pattern, or null if none. Gets the default pattern to apply to properties that do not have a primary pattern, or null if none. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Creates a test for a type. The containing test builder The type The test Gets the primary pattern of a constructor, or null if none. The pattern resolver The constructor The primary pattern, or null if none Gets the primary pattern of an event, or null if none. The pattern resolver The event The primary pattern, or null if none Gets the primary pattern of a field, or null if none. The pattern resolver The field The primary pattern, or null if none Gets the primary pattern of a generic parameter, or null if none. The pattern resolver The generic parameter The primary pattern, or null if none Gets the primary pattern of a method, or null if none. The pattern resolver The method The primary pattern, or null if none Gets the primary pattern of a nested type, or null if none. The pattern resolver The nested type The primary pattern, or null if none Gets the primary pattern of a property, or null if none. The pattern resolver The property The primary pattern, or null if none Initializes a test for a type after it has been added to the test model. The members of base types are processed before those of subtypes. The test builder for the type The type Returns true if the code element associated with the pattern represents a test. The pattern resolver The code element True if the code element represents a test Processes a constructor. The test builder for the type The constructor Processes an event. The test builder for the type The event Processes a field. The test builder for the type The field Processes a generic parameter. The test builder for the type The generic parameter Processes a method. The test builder for the type The method Processes a nested type. The test builder for the type The nested type Processes a property. The test builder for the type The property Applies semantic actions to the member of a test to set the test's runtime behavior. This method is called after . The test The test type Validates whether the attribute has been applied to a valid . Called by . The type Thrown if the attribute is applied to an inappropriate type Provides information about a tool that extends the . This class cannot be inherited. Gets the unique id of the tool. Gets the display name of the tool. A defines a composable rule for building and objects using reflection. The general idea is that a pattern can apply any number of contributions to the or that represents the current scope of the process of constructing a test object model. A pattern can register a decorator for the current object being built. Once all decorators have been gathered, they are applied in sorted order. Likewise a pattern can create new builders of its own then recurse back into the reflection layer to give a chance for other patterns to apply their own contributions. The entire pattern test model construction process is built up in this way. None of the rules are hardcoded except for bootstrapping via reflection. Typically a pattern will be associated with a code element by a but new patterns can be created that look for other kinds of attributes or do other things. Returns true if this is a primary pattern. A primary pattern is a pattern that defines the ultimate purpose of a code element and the nature of the tests or test parameters that are produced from it. Consequently the primary pattern is the only one on which the method will be called. Each code element may have at most one primary pattern. It is an error for a code element to have more than one associated primary pattern. If a code element does not have an associated primary pattern, its containing test may choose to apply default processing to it instead. For example, the containing test may give an opportunity to patterns associated with the code element to consume a test method parameter but will revert to default behavior if no primary patterns explicitly claim it. Non-primary patterns still play a very important part in the construction of the test model. Non-primary patterns may implement and to decorate tests and test parameters created by the primary pattern. Consumes the and applies its contributions to the . This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined by some other . For example, when enumerating tests, the will call the method of all patterns associated with the public types in an assembly. Some of these patterns will create new test fixture objects and add them as children of the containing assembly-level test. They will then call for each of the other patterns defined by this . A test fixture pattern will then typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing test builder The code element to process If true, skips generating child tests. Instead the children may be populated on demand using . The implementation may safely ignore the value of this flag so long as subsequent attempts to populate children on demand have no adverse side-effects. Returns true if the code element associated with the pattern represents a test. The pattern resolver The code element True if the code element represents a test Processes a test that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate tests defined by itself. For example, will typically be called by another pattern that has just created a new test based on declarative information about the . The callee then has the opportunity to add decorators to the new test and to apply other contributions of its choosing. The test builder The code element to process Processes a test parameter that was declared by a pattern associated with this and applies contributions to its builder. This method is used to decorate test parameters defined by itself. For example, will typically be called by another pattern that has just created a new test parameter based on declarative information about the . The callee then has the opportunity to add decorators to the new test parameter and to apply other contributions of its choosing. The test parameter builder The code element to process The pattern resolver provides a means for obtaining the objects associated with an . Gets the patterns associated with the specified code element. The code element If true, includes inherited patterns The enumeration of patterns Thrown if is null A pattern test builder provides the foundation for incrementally applying contributions to a . Gets a chain of actions that are used to lazily populate children of this test that are declared by the specified code element. Does nothing if the children have already been populated. The action's parameter specified the code element that declares the child to be populated. If its value is null, then all children should be populated. Gets the test being built. Gets the builder for the test model. Adds a test as a child of this test and returns a new . The test for which to create a builder The new test builder Thrown if is null Registers a test decorator action. The order in which the decorator should be evaluated, decorators with lower order indices are evaluated before those with higher ones The decorator action Thrown if is null Adds a test dependency. The test dependency to add Thrown if is null Adds a test parameter to this test and returns a new . The test parameter for which to create a builder The new test parameter builder Thrown if is null Applies pending decorators and finishes building the test. A pattern test framework extension provides the opportunity to extend the standard pattern test framework with additional behaviors. Gets information about the tools that are used by the specified test assembly. The tool information will be included in the report as part of the framework node that contains the assembly. This method is used by authors of tools that are derived from the to provide brand and version information about the tool so that it will be visible to end users. If no tools are referenced by the assembly, it will be ignored by the . The test assembly The tool information A pattern test handler provides the logic that implements the various phases of the test execution lifecycle. Each method represents the behavior to be performed during a particular phase. Different actions are permitted during each phase. Consult the documentation the appropriate method if this interface for restrictions. The phases generally run in the following order. Some phases may be skipped due to exceptions or if there is no work to be done. -- for each test instance --Run the actions in the decorated -- end -- Gets the test instance handler that describes the lifecycle of a test instance. Cleans up a completed test state after its use. This method runs in the of its containing test step because the test has terminated. The following actions are typically performed during this phase: Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way. The test state, never null Prepares a newly created test state before its use. This method runs in the of its containing test step because the test has not yet been started. The following actions are typically performed during this phase: Adding or changing slot binding accessors via .Configuring the in anticipation of test execution.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way. The test state, never null Decorates the of a test instance before its actions have a chance to run. This method runs in the of its containing test instance because the test has not yet been started. This method may apply any number of decorations to the test instance's handler by adding actions to the supplied object. The test instance's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. The following actions are typically performed during this phase: Adding additional actions for the test instance to the .Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test state, never null The test instance's actions to decorate, never null Cleans up a test following the execution of its instances. This method runs in the of the . The following actions are typically performed during this phase: Deconfiguring the test environment following the enumeration and execution of all test instances.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way. The test state, never null Initializes a test prior to the execution of its instances. This method runs in the of the . The following actions are typically performed during this phase: Aborting the test run if any preconditions have not been satisfied or if the test is to be skipped.Configuring the test environment in advance of the enumeration and execution of all test instances.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way. The test state, never null A pattern test instance handler provides the logic that implements the various phases of the test instance execution lifecycle. Each method represents the behavior to be performed during a particular phase. Different actions are permitted during each phase. Consult the documentation the appropriate method if this interface for restrictions. The phases generally run in the following order. Some phases may be skipped due to exceptions or if there is no work to be done. for each child test Cleans up a completed test instance after its use. This method runs in the of the because the test step for this instance (if different from the primary step) has terminated. The following actions are typically performed during this phase: Deconfiguring the test environment following the test disposal.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Prepares a newly created test instance state before its use. This method runs in the of the because the test step for this instance (if different from the primary step) has not yet started. If is false then this method has the opportunity to modify the name or add metadata to the brand new that was created for just this test instance. The following actions are typically performed during this phase: Adding or changing slot values .Configuring the test environment in advance of test initialization.Modifying the name or metadata of the , if is false (since the primary test step has already started execution).Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way UNLESS is false. The test instance state, never null Decorates the of a child test before its actions have a chance to run. This method runs in the of the test instance in the lifecycle phase. This method may apply any number of decorations to the child test's handler by adding actions to the supplied object. The child test's original handler is unmodified by this operation and the decorated actions are discarded once the child test is finished. A typical use of this method is to augment the and behaviors of the child test with additional contributions provided by the parent. It is also possible to decorate descendants besides direct children. To do so, decorate the child's behavior to perpetuate the decoration down to more deeply nested descendants. This process of recursive decoration may be carried along to whatever depth is required. The following actions are typically performed during this phase: Adding additional actions for the child test to the .Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null The child test's actions to decorate, never null Disposes a test instance that is about to terminate. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Deconfiguring the test fixture following test execution.Disposing the test fixture instance.Disposing other resources.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Executes the test instance. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Invoking test methods.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Initializes a test instance that has just started running. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Creating the test fixture instance and setting and .Configuring the test fixture in advance of test execution.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Sets up a test instance prior to execution. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Invoking test setup methods.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null Tears down a test instance following execution. This method runs in the of the test instance in the lifecycle phase. The following actions are typically performed during this phase: Invoking test teardown methods.Accessing user data via . The following actions are forbidden during this phase because they would either go unnoticed or have undesirable side-effects upon test execution: Modifying the object in any way.Modifying the object in any way.Modifying the object in any way. The test instance state, never null A pattern test model builder maintains state that is needed during test enumeration while the is being populated with objects by the . Gets the pattern resolver for the model. Gets the reflection policy for the model. Gets the test model being built. Adds a top level test and returns a new . The test for which to create a builder The new test builder Thrown if is null Finds tests that are associated with the specified and returns an enumeration of their objects. The code element The enumeration of test builders Thrown if is null Finds test parameters that are associated with the specified and returns an enumeration of their objects. The code element The enumeration of test parameter builders Thrown if is null Registers the test builder with the test model so that it can be resolved later by . The test builder Thrown if is null Registers the test parameter builder with the test model so that it can be resolved by . The test parameter builder Thrown if is null A pattern test parameter builder provides the foundation for incrementally applying contributions to a . Gets the builder for the test that owns this parameter. Gets the builder for the test model. Gets the test parameter being built. Registers a test parameter decorator action. The order in which the decorator should be evaluated, decorators with lower order indices are evaluated before those with higher ones The decorator action Thrown if is null Applies pending decorators and finishes building the test parameter. A delegate used to lazily populate the children of an . If true, the populator should recursively populate all of its newly populated test elements in addition to itself A implementation that logs messages to the specified . This can be used to write log messages to the test execution log. This class cannot be inherited. Create a new child logger. The name of the child logger is [current-loggers-name].[passed-in-name] The Subname of this logger. The New ILogger instance. Runs sample test cases within an embedded copy of the test runner and provides access to the resulting test report. Logs debug output from the embedded test runner while the sample tests run. This utility class is intended to help write integration tests for test framework features. Gets the package configuration object for the test run. The returned object may be modified prior to running the tests to configure various parameters of the test run. Gets the test report that was produced by the test run. Gets the result of the test run. Adds a test assembly to the package configuration, if not already added. The assembly to add Thrown if is null Adds a test filter to the combined list of filters that select which tests to include in the run, if not already added. The filter to add Thrown if is null Adds a test fixture type to the list of filters, and automatically adds its containing test assembly to the package configuration, if not already added. The test fixture type to add Thrown if is null Gets the primary test step run of a test with the given code reference. If there are multiple primary steps, returns the first one found. The code reference of the test The first test step run, or null if not found Gets information about the test with the given code reference. The code reference of the test The test data, or null if not found Runs the tests. An abstract base class for host factories. This class is and so cannot be instantiated. Creates a host instance. The host setup The logger for host message output The newly created host Creates the host. The canonicalized host setup, non-null The logger, non-null The host Resolves assemblies using hint paths and custom resolvers. Adds a custom assembly resolver to use when standard assembly resolution fails. The assembly resolver Adds an assembly load hint directory to search when standard assembly resolution fails. The hint directory Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Attaches to a to provide assembly resolution services. Installs an hook that delegates to the creating 's assembly resolver to locate assemblies whenever the host is unable to find them. This is a and so cannot be inherited or instantiated. Installs the assembly resolver hook in the specified host. The host Thrown if is null This class is intended for internal use only. This class cannot be inherited. This method is intended for internal use only. This method is intended for internal use only. Describes the runtime configuration of a . This class cannot be inherited. Gets a mutable list of assembly dependencies. Gets a mutable list of assembly qualifications. Gets or sets whether the failure dialog is enabled. The default value is false which prevents the assertion dialog from appearing when an assertion fails. Gets or sets the primary Xml configuration data, or null if none. The default value is null. Gets or sets whether the legacy unhandled exception policy is enabled. The default value is true which prevents the application from terminating abruptly when an unhandled exception occurs. Gets or sets whether remoting exceptions are substituted with custom errors instead of being passed through to the remote client. The default value is false which ensures that the remote client receives all exception details. Gets a mutable list of supported runtime versions in order of preference. When the list is empty, the runtime version used to build the application is used. Otherwise one of the supported runtimes in the list is used. Adds a binding to the configuration for the specified assembly. The assembly True if a catch-all binding redirect should be used to ensure that this exact version of the assembly is loaded no matter which version was originally requested Creates a copy of the host configuration information. The copy Overlays the with the additional configuration entries necessary to enable the features described by this instance and returns the combined Xml configuration. The combined Xml configuration Describes an assembly binding redirection from an old version range to a new version. This class cannot be inherited. Gets or sets the new version to which the binding should be redirected such as "1.2.3.4" Thrown if is null Gets or sets the range of old versions to redirect, specified either as a single version such as "1.2.3.4" or as a range such as "1.2.3.4-10.11.12.13" Thrown if is null Creates a copy of the assembly binding redirect information. The copy Describes the location of the codebase of a particular assembly version. Gets or sets the Uri that specifies the location of the assembly. Thrown if is null Gets or sets the assembly version to which this element applies such as "1.2.3.4". Thrown if is null Creates a copy of the assembly binding redirect information. The copy Describes a dependent assembly configuration entry that optionally specifies the codebase, a publisher policy and binding redirects. This class cannot be inherited. Gets or sets whether to apply the publisher policy for this assembly. The default value is true. Gets or sets the assembly culture, or null if none. Gets or sets assembly name. Thrown if is null Gets or sets the assembly processor architecture, or null if none. Gets or sets the assembly public key token, or null if none. Gets a mutable list of assembly binding redirect elements. Gets a mutable list of assembly code base elements. Creates a copy of the assembly dependency information. The copy Describes an assembly name qualification configuration entry that maps an assembly partial name to its full name. This class cannot be inherited. Gets or sets the assembly full name to use. Thrown if is null Gets or sets the assembly partial name to qualify. Thrown if is null Creates a copy of the assembly qualification information. The copy The type of exception thrown when hosting operations fail. Provides utilities to interact with a over a or . This is a and so cannot be inherited or instantiated. Gets the name used to register the . This field is constant and read-only. Gets a remote host service using the specified channel. The channel The remote host service Registers the host service with a channel. The remote host service The channel Thrown if or is null Specifies a collection of parameters for setting up a . This class cannot be inherited. Gets or sets the relative or absolute path of the application base directory. If relative, the path is based on the current working directory, so a value of "" causes the current working directory to be used. Thrown if is null Gets or sets the host configuration information. Thrown if is null Gets or sets whether assembly shadow copying is enabled. Gets or sets the relative or absolute path of the working directory. If relative, the path is based on the current working directory, so a value of "" causes the current working directory to be used. Thrown if is null Makes all paths in this instance absolute. The base directory for resolving relative paths, or null to use the current directory Creates a copy of the host setup information. The copy Describes the configuration of a Gallio installation. Gets the list of additional plugin directories. Loads the configuration from the registry. The installed configuration An isolated app domain host is a the runs code within an isolated of this process. Communication with the occurs over an inter- .Net remoting channel. Disposes the remote host. True if disposing Initializes the host. Must call to configure the host service. A factory for initialized hosts. Creates the host. The canonicalized host setup, non-null The logger, non-null The host An isolated process host is a that runs code within a new external process. Communication with the external process occurs over an inter-process communication channel. The host application is copied to a unique temporary folder and configured in place according to the . Then it is launched and connected to with inter-process communication. The process is pinged periodically by the . Therefore it can be configured to self-terminate when it looks like the connection has been severed. Creates the process task to start the process. The executable path The command-line arguments The working directory The process task Disposes the remote host. True if disposing Initializes the host. Must call to configure the host service. Prepares the parameters for the remote connection. The unique id of the host Set to the host application arguments used to configure its server channel Set to a factory used to create the local client channel Set to a factory used to create the local server channel to allow the remote host to call back to this one A factory for initialized hosts. Creates the host. The canonicalized host setup, non-null The logger, non-null The host The loader class provides services for controlling how assemblies are resolved and for loading related resources such as XML documentation. This is a and so cannot be inherited or instantiated. Gets the assembly resolver manager. Gets the local path of the assembly prior to shadow copying. Returns null if the original location of the assembly is not local. The assembly The original non-shadow copied local path of the assembly, or null if none Thrown if is null Gets the location of the assembly, or null if it is dynamic. The assembly The assembly location as returned by or null if the assembly is dynamic and does not have a location Thrown if is null If the assembly codebase is a local file, returns it as a local path. Otherwise, returns the assembly codebase Uri. The assembly The assembly's path Thrown if is null Gets the original local path of the assembly prior to shadow copying, if it is local. Otherwise, returns the shadow-copied assembly location. The assembly The local path of the assembly, preferably its original non-shadow copied location, or null if the assembly is dynamic and does not have a location Thrown if is null A represents a remote object whose lifetime is managed explicitly. It ensures that long-lived services are not inadvertently disconnected by the remoting infrastructure and remain accessible until the application discards them. However, it is important to keep a reference to the marshalled object to ensure it does not get garbage collected prematurely. A marshalled object can also be explicitly disconnected via . This class is and so cannot be instantiated. Obtains a lifetime service object to control the lifetime policy for this instance. An object of type used to control the lifetime policy for this instance. This is the current lifetime service object for this instance if one exists; otherwise, a new lifetime service object initialized to the value of the property. An implementation of intended to be accessed via .Net remoting from some other application context. This implementation wraps a with additional exception handling code and sends periodic heartbeat ping message. This class is and so cannot be instantiated. Gets the internal host setup information without copying it. Gets the logger. Configures the host service parameters. The remote host service The automatic ping interval, or null if none Thrown if is null Creates an instance of a remote object given an assembly name and type name. The name of assembly that contains the type The full name of the type The object handle of the instance Creates an instance of a remote object given an assembly path and type name. The path of assembly that contains the type The full name of the type The object handle of the instance Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Disposes the remote host. True if disposing Asks the host to invoke the specified callback. The callback must be a serializable delegate so that it can be sent to the host and executed. The callback Gets a deep copy of the host setup information. Initializes the remote host and makes it ready for use. Thrown if the host has already been initialized. Initializes the host. Must call to configure the host service. Initializes the runtime. The runtime setup The logger Pings the host to verify and maintain connectivity. Shuts down the runtime. A host service is a implementation of suitable for access across a remoting channel. Returns true if the watchdog timer expired. Creates an instance of a remote object given an assembly name and type name. The name of assembly that contains the type The full name of the type The object handle of the instance Creates an instance of a remote object given an assembly path and type name. The path of assembly that contains the type The full name of the type The object handle of the instance Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Asks the host to invoke the specified callback. The callback must be a serializable delegate so that it can be sent to the host and executed. The callback Initializes the runtime. The runtime setup The logger Pings the host to verify and maintain connectivity. Shuts down the runtime. Waits until the host service is disposed or a ping timeout occurs. Wraps a logger so that it can be accessed remotely. Create a new child logger. The name of the child logger is [current-loggers-name].[passed-in-name] The Subname of this logger. The New ILogger instance. Implementors output the log content by implementing this method only. Note that exception can be null Obtains a logger that can be used remotely. The logger to wrap The wrapped logger Thrown if is null Provides functions for obtaining runtime services such as XML documentation resolution. This is a and so cannot be inherited or instantiated. Gets the local path of the Gallio installation. The installation path Gets the runtime instance. Thrown if the runtime has not been initialized Returns true if the runtime has been initialized. Returns true if the application is running within the Mono runtime. Gets the runtime's logger, or a if the runtime is not initialized. Initializes the runtime. Loads plugins and initalizes the runtime component model. The specifics of the system can be configured by editing the appropriate *.plugin files to register new components and facilities as required. The runtime setup parameters The runtime logging service Thrown if or is null Thrown if the runtime has already been initialized Shuts down the runtime if it is currently initialized. Does nothing if the runtime has not been initialized. The event dispatched when the value of the current runtime changes. A default implementation of based on . Gets the names of all registered components. The list of registered component names Resolves a registered component by name. The name of the registered component, matched case-insensitively The test runner factory, or null if none exist with the specified name Provides configuration parameters for setting up the . This class cannot be inherited. Gets or sets the path of the primary configuration file to be loaded by the runtime (if it exists). This is useful when Gallio is launched by a library instead of as a standalone executable. The primary configuration file path. Default is null to load the configuration from the . Gets or sets the installation configuraiton, or null to determine it automatically. The installation configuration. Default is null. Gets or sets the installation path, or null to determine it automatically based on the location of the primary runtime assemblies. The installation path specifies where the standard runtime plugins are located. The installation path. Default is null. Gets list of relative or absolute paths of directories to be searched for plugin configuration files in addition to the primary Gallio directories. Gets or sets the full assembly-qualified name of a type that implements that should be used to create the runtime. If the value is null, the built-in default runtime factory will be used. Makes all paths in this instance absolute. The base directory for resolving relative paths, or null to use the current directory Creates a deep copy of the runtime setup parameters. The copy Default implementation of based on the Castle inversion of control microkernel. Gets a mutable list of directories to be searched recursively for plugins configuration files. Initially the list contains the directory where the runtime library is located. Adds a plugin directory to be searched recursively. The plugin directory to add Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets a deep copy of the runtime setup used to configure this runtime. The runtime setup Initializes the runtime. The runtime logging service Maps a Uri to a local path. The uri to map The local path Resolves a reference to a component that implements the specified service. A component that implements the service Resolves a reference to a component that implements the specified service. The service type A component that implements the service Resolves references to all components that implement the specified service. An array of components that implement the service Creates instances of the . Creates a given setup options. The runtime setup options The runtime A custom assembly resolver participates in assembly resolution when standard assembly resolution fails to load the desired assembly but before assembly load paths are considered. Resolves the assembly with the specified name. The full name of the assembly as was provided to True if the assembly is to be resolved in the reflection-only context The assembly, or null if it could not be resolved Resolves assemblies using hint paths and custom resolvers. Adds a custom assembly resolver to use when standard assembly resolution fails. The assembly resolver Thrown if is null Adds an assembly load hint directory to search when standard assembly resolution fails. The hint directory Thrown if is null A host represents an environment that may be used to perform various services in isolation. For example, a host might provide the ability to run code in an isolated of the current process, or it might run code in an isolated process, or connect to an existing remote process. Gets a deep copy of the host setup information. A host factory encapsulates a policy for creating new instances. Creates a host instance. The host setup The logger for host message output The newly created host Thrown if or is null A host service enables a local client to interact with a remotely executing hosting process. A host service implementation may choose to implement a keep-alive mechanism to automatically shut itself down when the service is disposed or when it has not received a ping within a set period of time. Creates an instance of a remote object given an assembly name and type name. The name of assembly that contains the type The full name of the type The object handle of the instance Thrown if or is null Creates an instance of a remote object given an assembly path and type name. The path of assembly that contains the type The full name of the type The object handle of the instance Thrown if or is null Asks the host to invoke the specified callback. The callback must be a serializable delegate so that it can be sent to the host and executed. The callback Thrown if is null Initializes the runtime. The runtime setup The logger Thrown if or is null Pings the host to verify and maintain connectivity. Thrown if the remote host is unreachable Shuts down the runtime. A registered component is a component that has a name and description. Gets the human-readable description of the component. Gets the unique name of the component. A registered service resolver looks up components by name. Gets the names of all registered components. The list of registered component names Resolves a registered component by name. The name of the registered component, matched case-insensitively The test runner factory, or null if none exist with the specified name Thrown if is null The runtime is instantiated within the test runner to provide a suitable hosting environment for test enumeration and execution. The runtime provides services to support the Gallio test automation platform. New services are typically registered by adding them to plugin configuration files. Gets a deep copy of the runtime setup used to configure this runtime. The runtime setup Initializes the runtime. The runtime logging service Thrown if is null Maps a Uri to a local path. The uri to map The local path Thrown if cannot be mapped to a local path Resolves a reference to a component that implements the specified service. The service type A component that implements the service Resolves a reference to a component that implements the specified service. The service type A component that implements the service Thrown if the service could not be resolved Resolves references to all components that implement the specified service. The service type An array of components that implement the service Creates an instance of given the runtime setup options. Creates a given setup options. The runtime setup options The runtime Thrown if is null Abstract base class for channels implemented using the .Net remoting infrastructure. This class is and so cannot be instantiated. Gets the associated .Net remoting channel. Gets the root Uri associated with the channel. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets the Uri of a service with the given name that can be accessed using this channel. The service name The service uri Thrown if is null Abstract base class for client channels implemented using the .Net remoting infrastructure. This class is and so cannot be instantiated. Gets a well-known remote service with the specified name. The type of the service The name of the service The component or a proxy that provides the service Abstract base class for client channels implemented using the .Net remoting infrastructure. This class is and so cannot be instantiated. Registers a well-known service with the specified name. The name of the service The component that provides the service A client channel based on an that uses a . A server channel based on an that uses a . A client channel based on an that uses a . A server channel based on an that uses a . A client channel manages the client side of a remoting channel. Gets a well-known remote service with the specified name. The type of the service The name of the service The component or a proxy that provides the service Thrown if or is null A server channel manages the server side of a remoting channel. Registers a well-known service with the specified name. The name of the service The component that provides the service Thrown if or is null Allows control of command line parsing. Attach this attribute to instance fields of types used as the destination of command line argument parsing. The description of the argument. The error checking to be done on the argument. Returns true if the argument did not have an explicit long name specified. Returns true if the argument did not have an explicit short name specified. The long name of the argument. The short name of the argument. Gets or sets an array of additional synonyms that are silently accepted. The description of the argument value. Parser for command line arguments. Parses an argument list. The arguments to parse. The destination of the parsed arguments. The error reporter True if no parse errors were encountered. Prints a user friendly usage string describing the command line argument syntax. The command line output Responsible for creating output. Maximum line length allowed before the text will be wraped. Output Stream Prints out a new line. Prints help for a specified argument. The argument prefix, such as "/", or null or empty if none. The argument's long name, or null or empty if none. The argument's short short name, or null or empty if none. The argument's description, or null or empty if none. The argument's value label such as "path", or null or empty if none. The argument's value type, or null if none. Outputs text with specified indentation. Text to output possibly including newlines. Number of blank spaces to indent the first line. Outputs text with specified indentation. Text to output possibly including newlines. Number of blank spaces to indent all but the first line. Number of blank spaces to indent the first line. A base class for implementing robust console applications. The subclass should provide a Main method that creates an instance and calls . This class is and so cannot be instantiated. Gets the argument parser. Gets or sets the parsed command-line arguments. These argument may be modified prior to calling to override the initial argument settings. Thrown if is null Gets the command-line output formatter, or null if the program is not running. Gets the console, or null if the program is not running. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Handles a fatal exception that escaped the method. The exception The exit code to return Parses the arguments. The command-line arguments True if the arguments were parsed successfully Runs the program. The console The command-line arguments Thrown if or is null Thrown if the program has already started running Runs the program. The command-line arguments The program exit code Displays an error message to the console. The error message Displays help text to the console. Indicates that this argument is the default argument. '/' or '-' prefix only the argument value is specified. An implementation of that targets the native . This implementation offers protection against redirection of the and streams. This object will continue to refer to the standard output and error streams even if they are redirected after its initialization. This is a and so cannot be inherited or instantiated. The application will forcibly terminate if the cancel key is pressed times within no more than milliseconds. This field is constant and read-only. The application will forcibly terminate if the cancel key is pressed times within no more than milliseconds. This field is constant and read-only. Gets the zero-based column index the cursor is located at. Gets the zero-based row index the cursor is located at. Gets the error stream writer. Gets or sets whether the footer is visible. Gets or sets the foreground color of the console. Gets the singleton instance of the native console. Gets or sets whether the cancelation function is enabled. If false, cancelation events will not be sent. Gets or sets whether cancelation has occurred. The event handlers will be called when the value of transitions from false to true. The value will remain true unless it is reset. Returns true if the console is being redirected and therefore the output should be as simple as possible. In particular, it may not be possible to set the cursor position, console color or other properties. Gets the output stream writer. Gets a synchronization object that a task can lock to ensure that it is the only thread currently accessing the console. Gets or sets the console's title. Gets the width of the console. Returns 80 if the console is being redirected. Resets the console colors. Sets a pair of delegates that together display a footer at the bottom of the console. The footer can be hidden so that new text can be written from that point. Removes the previous footer and displays the new one automatically if the footer is visible. A delegate to display the footer A delegate to hide the footer, leaving the custor at the beginning of the line where the footer used to begin Writes a character. The character to write Writes a string. The string to write Writes a new line. Writes a string followed by a new line. The string to write The event raised when console cancelation occurs. If the console cancelation signal is already set when an event handler is added, the event handler will be automatically invoked. A logger that sends all output to the console and displays messages in color according to their status. Create a new child logger. The name of the child logger is [current-loggers-name].[passed-in-name] The Subname of this logger. The New ILogger instance. Implementors output the log content by implementing this method only. Note that exception can be null A rich console provides a number of services that enable a console to be shared among several cooperating tasks that are independently updating different portions of the display. One task can be writing to the main body of text while another updates a footer. The rich console also supports intelligent cancelation of tasks. When the user presses control-C, a cancelation flag is set and an event handler is invoked. Tasks can check for the presence of the cancelation flag even if they started execution after the control-C itself occurred. This provides protection against dropped cancelation requests due to race conditions. If the user presses control-C 3 times within a short interval the rich console assumes that the program has become non-responsive and terminates it. Finally, the rich console interface can be mocked for testing purposes unlike the standard API. Gets the zero-based column index the cursor is located at. Thrown if is true Gets the zero-based row index the cursor is located at. Thrown if is true Gets the error stream writer. Gets or sets whether the footer is visible. Gets or sets the foreground color of the console. Gets or sets whether the cancelation function is enabled. If false, cancelation events will not be sent. Gets or sets whether cancelation has occurred. The event handlers will be called when the value of transitions from false to true. The value will remain true unless it is reset. Returns true if the console is being redirected and therefore the output should be as simple as possible. In particular, it may not be possible to set the cursor position, console color or other properties. Gets the output stream writer. Gets a synchronization object that a task can lock to ensure that it is the only thread currently accessing the console. Gets or sets the console's title. Thrown if is true Gets the width of the console. Returns 80 if the console is being redirected. Resets the console colors. Sets a pair of delegates that together display a footer at the bottom of the console. The footer can be hidden so that new text can be written from that point. Removes the previous footer and displays the new one automatically if the footer is visible. A delegate to display the footer A delegate to hide the footer, leaving the custor at the beginning of the line where the footer used to begin Writes a character. The character to write Writes a string. The string to write Writes a new line. Writes a string followed by a new line. The string to write The event raised when console cancelation occurs. If the console cancelation signal is already set when an event handler is added, the event handler will be automatically invoked. Used to control parsing of command line arguments. Indicates that this field is required. An error will be displayed if it is not present when parsing arguments. Only valid in conjunction with Multiple. Duplicate values will result in an error. Inidicates that the argument may be specified more than once. Only valid if the argument is a collection The default type for non-collection arguments. The argument is not required, but an error will be reported if it is specified more than once. For non-collection arguments, when the argument is specified more than once no error is reported and the value of the argument is the last value which occurs in the argument list. The default type for collection arguments. The argument is permitted to occur multiple times, but duplicate values will cause an error to be reported. A delegate used in error reporting. Reads the contents of a response file. The response file name, never null Abstract base class for objects whose purpose is to present progress information to the user. This class is and so cannot be instantiated. Gets the attached progress monitor. Initializes the presenter after a progress monitor has been attached. Presents an observable progress monitor. The progress monitor to present An abstract base class to assist with the implementation of conformant classes. This class is and so cannot be instantiated. Gets a presenter for the progress monitor. The presenter Runs a task with a progress monitor. Throws if the task is canceled. The task to run, never null An abstract base class for progress monitors that implements the cancelation semantics only. This class is and so cannot be instantiated. Returns true if the operation has been canceled. Clients should poll this value periodically or listen for the event to ensure the operation is canceled in a timely fashion. Notifies that the main task is starting. Must be called at most once on the progress monitor. The name of the task being monitored The total number of work units to perform. Must be greater than 0, or if an indeterminate amount of work is to be performed. Notifies that the operation is to be canceled. The method always causes the flag to be set, even if the operation is already done. Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0. Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect. Notifies that the task has actually been canceled. If this is the first time has been called, sets to true and fires the event. Otherwise does nothing. True if cancelation has just occurred, false if no state change was performed Called when performs its updates. Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files. The name of the current subtask Throws an if the operation has been canceled. Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded. The number of work units completed so far. Must be a finite value greater than or equal to 0. Adds or removes an event handler to be called when the operation is canceled. If the operation has already been canceled, then the event handler will be called immediately. Displays progress by writing a series of messages to an as the name of the current task changes. Initializes the presenter after a progress monitor has been attached. Displays progress by writing a series of messages to an as the name of the current task changes. Gets a presenter for the progress monitor. The presenter Creates instances of null progress monitors that do nothing. This is a and so cannot be inherited or instantiated. Creates a null progress monitor. The null progress monitor A null progress monitor presenter simply does nothing. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the presenter. This field is read-only. Presents an observable progress monitor. The progress monitor to present Runs tasks without reporting any progress. Argument validation and state changes are still noted but they do not have any outward effect. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the provider. An observable progress monitor tracks validates arguments and tracks the state of the progress monitor but it does not implement any of its own behavior in response to the notifications received. Instead, it is intended to be observed by a presenter that translates state change events into changes of the view. Gets the active child sub-progress monitor, or null if none. Gets the number of work units completed so far. It is the sum of all values passed to the method while the task has been running. This value is never NaN because at each step a finite amount of work must be recorded. Returns true if has been called. Returns true if has been called and has not yet also been called. Gets the currently active leaf sub-progress monitor, or this one if there are no sub-progress monitors. Gets the name of the most deeply nested sub-task, or an empty string if there are no sub-progress monitors. Gets the number of remaining work units to perform, or NaN to indicate that an indeterminate amount of work remains to be performed because is NaN and the operation is not done. Gets the current status message set by or an empty string by default. Gets the name of the task or an empty string if has not been called. Gets the total number of work units to perform, or NaN to indicate that an indeterminate amount of work is to be performed. Begins a sub-task in a sub-progress monitor. The sub-progress monitor Notifies that the main task is starting. Must be called at most once on the progress monitor. The name of the task being monitored The total number of work units to perform. Must be greater than 0, or if an indeterminate amount of work is to be performed. Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0. Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect. Ends a sub-task in a sub-progress monitor. The sub-progress monitor Called when a subtask changes in any way, including one of its own subtasks changing. The sub-progress monitor Called when the active sub-task performs its updates. The sub-task's progress monitor Called after performs its updates. The task name The total number of work units Called when performs its updates. Called when a state change occurs. Called when performs its updates. Called when performs its updates. The sub-task's progress monitor Called when performs its updates. The sub-task's progress monitor Called when performs its updates. The status message Called when a new progress monitor is created. Called when performs its updates. Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files. The name of the current subtask Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded. The number of work units completed so far. Must be a finite value greater than or equal to 0. Adds or removes an event handler that is called whenever the state of the progress monitor changes in any way. Adds or removes an event handler that is called whenever a new sub-progress monitor is created so that the observer can attach its event handlers. Adds or removes an event handler that is called when the task is finished. Adds or removes an event handler that is called when the task is starting. A standard sub-progress monitor implementation that notifies its parent as work is performed. Called after performs its updates. The task name The total number of work units Called when performs its updates. Called when a state change occurs. Called when performs its updates. Called when performs its updates. A remote progress monitor is a serializable wrapper for another progress monitor. The wrapper can be passed to another AppDomain and communication occurs over .Net remoting. This class cannot be inherited. Notifies that the main task is starting. Must be called at most once on the progress monitor. The name of the task being monitored The total number of work units to perform. Must be greater than 0, or if an indeterminate amount of work is to be performed. Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0. Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect. Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files. The name of the current subtask Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded. The number of work units completed so far. Must be a finite value greater than or equal to 0. A console progress monitor presenter displays a simple tally of the amount of work to be done on the main task as a bar chart. The progress monitor responds to cancelation events at the console. Initializes the presenter after a progress monitor has been attached. A console progress monitor displays a simple tally of the amount of work to be done on the main task as a bar chart. The progress monitor responds to cancelation events at the console. Gets a presenter for the progress monitor. The presenter Provides a reference to the newly created sub-progress monitor. Gets the newly created sub-progress monitor. A progress monitor provides facilities for core functionality to report progress of a long running operation. The interface is typically implemented by a UI component such as a progress dialog. Returns true if the operation has been canceled. Clients should poll this value periodically or listen for the event to ensure the operation is canceled in a timely fashion. Notifies that the main task is starting. Must be called at most once on the progress monitor. The name of the task being monitored The total number of work units to perform. Must be greater than 0, or if an indeterminate amount of work is to be performed. Thrown if is null Thrown if is not valid Thrown if or have already been called Notifies that the operation is to be canceled. The method always causes the flag to be set, even if the operation is already done. Creates a sub-progress monitor that represents a given number of work-units as a sub-task of this progress monitor. Using sub-tasks allows multiple tasks to be composed into longer sequences that each contribute a predetermined portion of the total work. As the sub-task performs work its parent task is notified of progress in proportion to the number of work units that it represents. Likewise the parent is notified of cancelation if the child is canceled and vice-versa. The total number of work units of the parent task that are to be represented by the sub-task. When the sub-task completes, this much work will have been performed on the parent. Must be a finite value greater than or equal to 0. Thrown if is not valid Notifies that the work is done, either the main task is completed was cancelled by the user. If already done, the method has no effect. Sets detailed status information for the current task or subtask. A status message is an optional fine-grained description of the current activity being performed. For instance, a status message might specify the name of a file being copied as part of a task that copies many files. The name of the current subtask Thrown if is null Thrown if the task is not running Throws an if the operation has been canceled. Thrown if is true Notifies that a given number of work units of the main task have been completed. Note that this amount represents an installment, as opposed to a cumulative amount of work done to date. If the sum of this value and the currently completed work units exceeds the total work units to be performed, the excess portion is discarded. The number of work units completed so far. Must be a finite value greater than or equal to 0. Thrown if is not valid Thrown if the task is not running Adds or removes an event handler to be called when the operation is canceled. If the operation has already been canceled, then the event handler will be called immediately. A progress monitor presenter attaches a progress monitor to a view. Presents an observable progress monitor. The progress monitor to present Thrown if is null Thrown if the presenter does not support being reused to present multiple progress monitors A progress monitor provider runs a task with progress monitoring and provides clear notification of cancelation in the form of an . Runs a task with a progress monitor. Throws if the task is canceled. The task to run, never null Thrown if the task is canceled Represents a task to be executed with a progress monitor. The progress monitor, never null An aggregate test explorer combines multiple test explorers from different sources to incorporate all of their contributions. Adds a test explorer to the aggregate. The explorer to add Thrown if is null Creates an aggregate test explorer from explorers created for all registered services in the . The test model to populate incrementally as tests are discovered Thrown if is null Explores the tests defined by an assembly and links them into the . The assembly An action to perform on each assembly-level test explored, or null if no action is required Explores the tests defined by a type and links them into the . The type An action to perform on each type-level test explored, or null if no action is required Returns true if the code element represents a test. The element True if the element represents a test Abstract base class for read-only reflection model objects. This class is and so cannot be instantiated. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. Compares this object's source for equality with the other's source. The other object True if the objects are equal Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Returns a that represents the current . A that represents the current . Compares two objects for equality. True if they are equal Compares two objects for inequality. True if they are not equal The abstract base class of a list that wraps model objects with their corresponding reflection types derived from . This class is and so cannot be instantiated. The model object type The reflection type Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Returns a wrapper for the list of elements using the model object's type instead of the reflection object's type. The model list Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Unwraps the specified output item. The output item The corresponding input item or null if the output item is a valid wrapper Wraps the specified input item. The input item The output item Base implementation of . Gets or sets an initial approximation of a , or null if none. The value returned by this method will be checked for uniqueness and amended as necessary to produce a truly unique . The local id Gets the children of this test. Gets the list of the dependencies of this test. Gets the full name of the test. The full name is derived by concatenating the of the followed by a slash ('/') followed by the of this test. The full name of the root test is empty. Gets the stable unique identifier of the component. Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only. Gets or sets the value of the metadata entry. (This is a convenience method.) One of the constants. Gets a locally unique identifier for this test that satisfies the following conditions: The identifier is unique among all siblings of this test belonging to the same parent. The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects. The identifier is non-null. The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's and an ordering condition among siblings to guarantee uniqueness. The locally unique identifier Gets the parameters of this test. Each parameter must have a unique name. The order in which the parameters appear is not significant. Gets or sets the parent of this test, or null if this is the root test. Adds a child test and sets its property. The test to add as a child Adds a test dependency. The test to add as a dependency Adds a test parameter and sets its property. The test parameter to add Returns a that represents the current . A that represents the current . Base implementation of . This class is and so cannot be instantiated. Gets a reference to the point of definition of this test component in the code, or null if unknown. Gets the metadata of the component. Gets the name of the component. Returns a that represents the current . A that represents the current . A base test explorer that does nothing. This class is and so cannot be instantiated. Gets the test model that is incrementally populated by the test explorer as it explores tests. Abstract base class for test framework implementations. This class is and so cannot be instantiated. Base implementation of . Gets the stable unique identifier of the component. Gets the zero-based index of the parameter. The index is used instead of the parameter name in unlabeled table-like data sources (such as row-tests and headerless CSV files) to select the column to which the parameter will be bound. The index of the parameter, or 0 if not applicable. Gets or sets the test that owns this parameter, or null if this parameter does not yet have an owner. Gets the type of value that must be bound to the parameter. Base implementation of . Gets the full name of the step. The full name is derived by concatenating the of the followed by a slash ('/') followed by the of this test step. The full name of the root test step is empty. Examples: ""The root step"SomeAssembly/SomeFixture/SomeTest"The step corresponding to SomeTest"SomeAssembly/SomeFixture/SomeTest/ChildStep"A child step of SomeTest Gets the stable unique identifier of the component. Returns true if the test step is dynamic. A dynamic test step is one whose execution is governed by parameters that are not known a priori. For example, a primary test step is generally not dynamic because its existence usually only depends on statically known information derived from the test model. However, a child test step created at runtime by a data binding process might be considered dynamic if the data items that were used may change between test runs even when the static structure of the test code remains the same. So a test step that uses random data items or that owes its existence to processes that are not entirely under the control of the test framework should be flagged as dynamic. It can be useful to distinguish between static and dynamic test steps when correlating results across test runs. Dynamic test steps are more likely to change in dramatic ways between test runs than static test steps. Returns true if the test step is the top node of a hierarchy of test steps that are all associated with the same test. In the case where a single test step is associated with a test, then it is the primary test step. There may be multiple primary test steps of the same test if they are not directly related by ancestry (ie. one does not contain the other). A non-primary test step is known as a derived test step. Returns true if the test step represents a distinct test case. A test case is typically a leaf of the test step hierarchy. Gets the step that contains this one, or null if this instance represents the root step of the test step tree. Gets the test to which this step belongs. Returns a that represents the current . A that represents the current . An error test object is used as a placeholder in the test tree whenever an error is encountered during test exploration. An error test has no parameters. When executed, it just emits a runtime error. Gets a to run this tes and all of its children. Returns null if this test is merely a container for other tests or if it otherwise does not require or provide its own controller. The test controller factory, or null if this test cannot produce a controller (and consequently is not a master test according to the definition above) Defines the names of common test step lifecycle phases. Custom phases may also be defined. This is a and so cannot be inherited or instantiated. The test step's context is being disposed. This field is constant and read-only. The test step is executing its main body. This field is constant and read-only. The test step is finishing. This field is constant and read-only. The test is being initialize. (Fixture construction, etc.) This field is constant and read-only. The test step is being set up. This field is constant and read-only. The test step is starting. This field is constant and read-only. The test step is being torn down. This field is constant and read-only. Provides common metadata keys. This is a and so cannot be inherited or instantiated. The metadata key for the author's email. This field is constant and read-only. The metadata key for the author's homepage. This field is constant and read-only. The metadata key for the author's name. This field is constant and read-only. The metadata key for the name of a category to which a test belongs. This field is constant and read-only. The matadata key for the location of an assembly as a local file path or as a Uri. This field is constant and read-only. The metadata key for the name of the company associated with a test. This field is constant and read-only. The metadata key for build/release configuration information associated with a test. It describes the target environment or usage for the test. This field is constant and read-only. The metadata key for a copyright associated with a test. This field is constant and read-only. The metadata key for the description of a test component. This field is constant and read-only. The metadata key for the expected exception type which should be the name, full name or assembly-qualified name of the expected exception type. This field is constant and read-only. The metadata key that describes the reason that a test should be run explicitly. (Tests may of course be marked explicit without a declared reason.) This field is constant and read-only. The metadata key for a file version number associated with a test. This field is constant and read-only. The metadata key that describes the reason that a test is being ignored. (Tests may of course be ignored without a declared reason.) This field is constant and read-only. The metadata key for the importance of a test component as the string representation of one of the TestImportance constants in MbUnit or its equivalent. This field is constant and read-only. The metadata key for an informational version number associated with a test. This field is constant and read-only. The metadata key that describes the reason that a test is pending. (Tests may of course be marked pending without a declared reason.) This field is constant and read-only. The metadata key for a product associated with a test. This field is constant and read-only. The metadata key used to describe the kind of a test as the string representation of one of the constants. This field is constant and read-only. The metadata key for the name of the type being tested. The associated value should be the full name of the type from or the assembly qualified name of the type from . This field is constant and read-only. The metadata key for a title associated with a test. This field is constant and read-only. The metadata key for a trademark associated with a test. This field is constant and read-only. The metadata key for a version number associated with a test. This field is constant and read-only. The metadata key for the XML documentation of the test derived from XML code documentation comments. This field is constant and read-only. A metadata map is a multi-valued dictionary of metadata keys and values associated with a model element. Metadata is used to communicate declarative properties of the model in an extensible manner. This class cannot be inherited. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Gets an containing the keys of the . An containing the keys of the object that implements . Gets an containing the values in the . An containing the values in the object that implements . Creates a read-only view of the metadata map. The read-only view Removes all items from the . Creates a copy of the metadata map. The copy Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Gets the value associated with the metadata key. If there are multiple values, returns only the first one. The key The value, or null if none Sets the value associated with the metadata key. Removes all values previously associated with that key. The key The new value, or null to remove the value The type of exception thrown when test model and test framework operations fail. Provides utility functions for manipulating the object model. This is a and so cannot be inherited or instantiated. Populates the provided metadata map with asembly-level metadata derived from custom attributes. Currently recognized attributes: The assembly The metadata map A null test explorer. This class cannot be inherited. The root test in the test tree. Gets a to run this tes and all of its children. Returns null if this test is merely a container for other tests or if it otherwise does not require or provide its own controller. The test controller factory, or null if this test cannot produce a controller (and consequently is not a master test according to the definition above) A read-only implementation of for reflection. This class is and so cannot be instantiated. Gets a reference to the point of definition of this test component in the code, or null if unknown. Gets the stable unique identifier of the component. Gets the metadata of the component. Gets the name of the component. The type of exception thrown when a test declaration is malformed or contains an error. Test framework authors may use this exception to signal that the user provided an invalid test declaration in the code. When you see this error, check to make sure that the syntax of the test is correct, all required parameters have been provided and they contain valid values. Provides options that control how test enumeration occurs. A read-only implementation of for reflection. This class cannot be inherited. Gets the full name of the test. The full name is derived by concatenating the of the followed by a slash ('/') followed by the of this test. The full name of the root test is empty. Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only. Gets a locally unique identifier for this test that satisfies the following conditions: The identifier is unique among all siblings of this test belonging to the same parent. The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects. The identifier is non-null. The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's and an ordering condition among siblings to guarantee uniqueness. The locally unique identifier Wraps a list of for reflection. This class cannot be inherited. Specifies the kind of a test component. This is a and so cannot be inherited or instantiated. The test represents the tests contained in a single test assembly. This field is constant and read-only. The test is of some other unspecified kind. This field is constant and read-only. The test is an error placeholder used in place of a test when an error occurs during test enumeration. This field is constant and read-only. The test represents a test fixture. This field is constant and read-only. The test represents a grouping of all contributions offered by a given test framework. This field is constant and read-only. The test represents a grouping of tests for descriptive purposes. This field is constant and read-only. The test represents the tests contained in a single test namespace. This field is constant and read-only. The test represents the root of the test tree. This field is constant and read-only. The test represents a test suite. This field is constant and read-only. The test represents a test case. This field is constant and read-only. The test model provides access to the contents of the test tree generated from a test package by the test enumeration process. This class cannot be inherited. Gets the root test in the model. Gets the test package. A test package describes the resources that have been loaded in in preparation for enumerating and running the tests they contain. This class cannot be inherited. Gets the assemblies that belong to the test package. Gets the test package configuration. Gets the reflection policy. Adds an assembly to the test package. The assembly to add Thrown if is null A test package configuration specifies the options used by a test runner to load tests into memory for execution. The package may contain multiple test assemblies that are to be loaded together for test execution. It can also be serialized as XML or using .Net remoting for persistence and remote operation. This class cannot be inherited. Gets the list of relative or absolute paths of test assembly files. Gets the list of hint directories used to resolve test assemblies and other files. Gets or sets the host setup parameters. Thrown if is null Makes all paths in this instance absolute. The base directory for resolving relative paths, or null to use the current directory Creates a copy of the test package. The copy A read-only implementation of for reflection. This class cannot be inherited. Gets the zero-based index of the parameter. The index is used instead of the parameter name in unlabeled table-like data sources (such as row-tests and headerless CSV files) to select the column to which the parameter will be bound. The index of the parameter, or 0 if not applicable. Gets the type of value that must be bound to the parameter. Wraps a list of for reflection. This class cannot be inherited. A test result describes the final result of having executed a test. This class cannot be inherited. Gets or sets the number of assertions evaluated by the test. Gets or sets the test duration in seconds. Gets or sets the test outcome. Defaults to . A read-only implementation of for reflection. This class cannot be inherited. Gets the full name of the step. The full name is derived by concatenating the of the followed by a slash ('/') followed by the of this test step. The full name of the root test step is empty. Examples: ""The root step"SomeAssembly/SomeFixture/SomeTest"The step corresponding to SomeTest"SomeAssembly/SomeFixture/SomeTest/ChildStep"A child step of SomeTest Returns true if the test step is dynamic. A dynamic test step is one whose execution is governed by parameters that are not known a priori. For example, a primary test step is generally not dynamic because its existence usually only depends on statically known information derived from the test model. However, a child test step created at runtime by a data binding process might be considered dynamic if the data items that were used may change between test runs even when the static structure of the test code remains the same. So a test step that uses random data items or that owes its existence to processes that are not entirely under the control of the test framework should be flagged as dynamic. It can be useful to distinguish between static and dynamic test steps when correlating results across test runs. Dynamic test steps are more likely to change in dramatic ways between test runs than static test steps. Returns true if the test step is the top node of a hierarchy of test steps that are all associated with the same test. In the case where a single test step is associated with a test, then it is the primary test step. There may be multiple primary test steps of the same test if they are not directly related by ancestry (ie. one does not contain the other). A non-primary test step is known as a derived test step. Returns true if the test step represents a distinct test case. A test case is typically a leaf of the test step hierarchy. Describes the outcome of a test. An outcome consists of two parts. First, a required that describes whether test passed, failed or was inconclusive. Second, an optional that enables different outcomes with the same status to be distinguished. The category also provides an opportunity to extend the definition of a test outcome to include custom semantic details. Gets a standard outcome for a test that has an inconclusive outcome because it was canceled. The outcome Gets the test outcome category, or null if none. Never an empty string. The category, when provided, provides additional information to describe what happened to result in this particular outcome. Examples: "ignored", "skipped", "pending", "canceled", "aborted", "timeout". Naming guidelines: A category should be a single lower-case word.It should be a word that can appear on its own or following a number. Consequently, nouns are poor choices because they may need to be pluralized.It should not repeat the information already provided by the . Consequently, "passed", "failed" and "inconclusive" are poor choices.It should be a standard category, if possible.It should not be too granular. If too many categories are in common usage, test result summaries by category may become unwieldly. Gets the name of the outcome as it should be displayed. The display name is the outcome's , if available. Otherwise it is a lowercase rendition of the outcome's . Gets a standard outcome for a test that failed due to an error. The outcome Gets a standard outcome for a test that did not run because it must be selected explicitly. The test may be particularly expensive or require manual supervision by an operator. The outcome Gets a standard outcome for a test that failed. The outcome Gets a standard outcome for a test that did not run because the user is choosing to ignore it. Perhaps the test is broken or non-functional. The outcome Gets a standard outcome for a test that was inconclusive. The outcome Gets a standard outcome for a test that passed. The outcome Gets a standard outcome for a test that did not run because it has unsatisfied prerequisites. The test may depend on functionality that has not yet been implemented or perhaps the test itself has yet to be implemented. The outcome Gets a standard outcome for a test that did not run. The outcome Gets the test status. The test status describes whether a test passed, failed or produced an inconclusive result. This information may be reported to the user with icons and textual labels to explain the overall significance of the outcome. Gets a standard outcome for a test that failed because it ran out of time. The outcome If the other outcome is more severe than this one, returns it. Otherwise returns this outcome. The other outcome The combined outcome Indicates whether this instance and a specified object are equal. true if obj and this instance are the same type and represent the same value; otherwise, false. Indicates whether this instance and a specified object are equal. Another object to compare to. true if obj and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Returns the of the outcome. The display name Compares two outcomes for equality. The first outcome The second outcome True if the outcomes are equal Compares two outcomes for inequality. The first outcome The second outcome True if the outcomes are not equal A test object represents a parameterized test case or test container. The test parameters are used as placeholders for data-binding during test execution. A single test can produce multiple steps () at runtime. A can be thought of as a declarative artifact that describes about what a test "looks like" from the outside based on available reflective metadata. A is then the runtime counterpart of a that is created to describe different parameter bindigns or other characteristics of a test's structure that become manifest only at runtime. A test may depend on one or more other tests. When a test fails, the tests that depend on it are also automatically considered failures. Moreover, the test harness ensures that a test will only run once all of its dependencies have completed execution successfully. A run-time error will occur when the system detects the presence of circular test dependencies or attempts to execute a test concurrently with its dependencies. A test contain child tests. The children of a test are executed in dependency order within the scope of the parent test. Thus the parent test may setup/teardown the execution environment used to execute its children. Tests that belong to different subtrees are executed in relative isolation within the common environment established by their common parent. The object model distinguishes between tests that represent individual test cases and other test containers. Test containers are skipped if they do not contain any test cases or if none of their test cases have been selected for execution. Gets the children of this test. Gets the list of the dependencies of this test. Gets the full name of the test. The full name is derived by concatenating the of the followed by a slash ('/') followed by the of this test. The full name of the root test is empty. Gets whether this test represents an individual test case as opposed to a test container such as a fixture or suite. The value of this property can be used by the test harness to avoid processing containers that have no test cases. It can also be used by the reporting infrastructure to constrain output statistics to test cases only. Gets a locally unique identifier for this test that satisfies the following conditions: The identifier is unique among all siblings of this test belonging to the same parent. The identifier is likely to be stable across multiple sessions including changes and recompilations of the test projects. The identifier is non-null. The local identifier may be the same as the test's name. However since the name is intended for display to end-users, it may contain irrelevant details (such as version numbers) that would reduce its long-term stability. In that case, a different local identifier should be selected such as one based on the test's and an ordering condition among siblings to guarantee uniqueness. The locally unique identifier Gets the parameters of this test. Each parameter must have a unique name. The order in which the parameters appear is not significant. Gets or sets the parent of this test, or null if this is the root test. Gets a to run this tes and all of its children. Returns null if this test is merely a container for other tests or if it otherwise does not require or provide its own controller. The test controller factory, or null if this test cannot produce a controller (and consequently is not a master test according to the definition above) Adds a child test and sets its property. The test to add as a child Thrown if is null Thrown if is already the child of some other test Adds a test dependency. The test to add as a dependency Thrown if is null Adds a test parameter and sets its property. The test parameter to add Thrown if is null Thrown if is already owned by some other test Common base-type for elements in the test object model. All components have a name for presentation, metadata for annotations, and a code reference to its point of definition. Gets a reference to the point of definition of this test component in the code, or null if unknown. Gets the stable unique identifier of the component. Gets the metadata of the component. Gets the name of the component. A test explorer scans a volume of code using reflection to build a partial test tree. The tests constructed in this manner may not be complete or executable but they provide useful insight into the layout of the test suite that can subsequently be used to drive the test runner. As a test explorer explores test assemblies and types, it incrementally populates a with its discoveries. The is guaranteed to contain all of the tests explicitly explored, but it may also contain other tests that were discovered by the explorer along the way. For example, a valid implementation of could implement by exploring the entire assembly as performed by . Gets the test model that is incrementally populated by the test explorer as it explores tests. Explores the tests defined by an assembly and links them into the . The assembly An action to perform on each assembly-level test explored, or null if no action is required Explores the tests defined by a type and links them into the . The type An action to perform on each type-level test explored, or null if no action is required Returns true if the code element represents a test. The element True if the element represents a test The test framework service provides support for enumerating and executing tests that belong to some test framework. A new third party test framework may be supported by defining and registering a suitable implementation of this interface. Gets the name of the test framework. Creates a test explorer for this test framework. The test model to populate incrementally as tests are discovered The test explorer A test parameter describes a formal parameter of a to which a value may be bound and used during test execution. The property of a test parameter should be unique among the set parameters belonging to its . Gets the zero-based index of the parameter. The index is used instead of the parameter name in unlabeled table-like data sources (such as row-tests and headerless CSV files) to select the column to which the parameter will be bound. The index of the parameter, or 0 if not applicable. Gets or sets the test that owns this parameter, or null if this parameter does not yet have an owner. Gets the type of value that must be bound to the parameter. A test step is a delimited region of a test defined at run-time. Each test that is executed consists of at least one step: the "primary" step. During execution, each test may spawn additional nested steps that may run in parallel or in series with one another as required. A test step may be used to describe a particular instance of a data driven test. It can also be used to generate a completely dynamic hierarchy at runtime that mirrors and extends the static test hierarchy with new information derived from the actual execution of the test. Each step has its own execution log and test result (pass/fail/inconclusive). Therefore a multi-step test may possess multiple execution logs and test results. This is deliberate. Think of a as being the declarative component of a test that specifies which test method to invoke and its arguments. An is the runtime counterpart of the that captures output and control flow information about part or all of the test. A test step also has metadata that can be update at run-time to carry additional declarative information about the step. Gets the full name of the step. The full name is derived by concatenating the of the followed by a slash ('/') followed by the of this test step. The full name of the root test step is empty. Examples: ""The root step"SomeAssembly/SomeFixture/SomeTest"The step corresponding to SomeTest"SomeAssembly/SomeFixture/SomeTest/ChildStep"A child step of SomeTest Returns true if the test step is dynamic. A dynamic test step is one whose execution is governed by parameters that are not known a priori. For example, a primary test step is generally not dynamic because its existence usually only depends on statically known information derived from the test model. However, a child test step created at runtime by a data binding process might be considered dynamic if the data items that were used may change between test runs even when the static structure of the test code remains the same. So a test step that uses random data items or that owes its existence to processes that are not entirely under the control of the test framework should be flagged as dynamic. It can be useful to distinguish between static and dynamic test steps when correlating results across test runs. Dynamic test steps are more likely to change in dramatic ways between test runs than static test steps. Returns true if the test step is the top node of a hierarchy of test steps that are all associated with the same test. In the case where a single test step is associated with a test, then it is the primary test step. There may be multiple primary test steps of the same test if they are not directly related by ancestry (ie. one does not contain the other). A non-primary test step is known as a derived test step. Returns true if the test step represents a distinct test case. A test case is typically a leaf of the test step hierarchy. Gets the step that contains this one, or null if this instance represents the root step of the test step tree. Gets the test to which this step belongs. Describes whether a test passed, failed, was skipped or was inconclusive. The status codes are ranked in order of severity from least to greatest as follows: , , , . The test passed. The test did not run so nothing is known about its status. The test did not run or its result was inconclusive. The test failed or encountered an error during execution. Base implementation of that does nothing. This class is and so cannot be instantiated. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Runs the tests. The root test monitor The parent test step, or null if starting a root step The test execution options The progress monitor Implementation of called after argument validation has taken place. The root test command, not null The parent test step, or null if none The test execution options, not null The progress monitor, not null Recursively generates single test steps for each and sets the final outcome to . The root test command The parent test step Base implementation of a log writer that assists in the implementation of log writers by serializing requests and performing basic argument and state validation. The validation includes: Checking arguments for nullEnsuring that the writer has not been closedEnsuring that no attachment with the same name exists when adding an attachmentEnsuring that there is an attachment with the specified name exists when embedding an attachmentEnsuring that the nesting level of stream sections is correct such that all calls are balanced by This class is and so cannot be instantiated. Attaches an binary attachment to the execution log. The attachment name The content type The binary contents Attaches an binary attachment to the execution log. The attachment name, unique, not null The content type, not null The binary contents, not null Thrown if the test is not running Attaches an text attachment to the execution log. The attachment name The content type The text contents Attaches an text attachment to the execution log. The attachment name, unique, not null The content type, not null The text contents, not null Thrown if the test is not running Begins a section in a particular stream of the execution log. The log stream name The name of the section Begins a section in a particular stream of the execution log. The log stream name, not null The name of the section, not null Thrown if the test is not running Closes the log writer. Closes the log writer. Embeds an attachment into a particular stream of the execution log. The log stream name The attachment name Embeds an attachment into a particular stream of the execution log. The log stream name, known to exist, not null The attachment name, not null Thrown if the test is not running Ends a section in a particular stream of the execution log. The log stream name Ends a section in a particular stream of the execution log. The log stream name, not null Thrown if the test is not running Writes text to a particular stream of the execution log. The log stream name The text to write Writes text to a particular stream of the execution log. The log stream name, not null The text to write, not null Thrown if the test is not running The default context tracker tracks the current context by way of the thread's and . The .Net framework ensures that this context information flows across threads during asynchronous callbacks, timer events and thread pool work item execution. Gets the context of the current thread, or null if there is no current context. A thread's current context is determined in the following manner: If the thread's context stack is not empty then the top-most item of the stack is used. pushed a new item on this stack.Otherwise, if the thread has an default context, then it is used. sets the default context for a thread.Otherwise, the is used. Context information may flow across threads by inheritance such that a child thread acquires the context of its parent. However, each thread has its own context stack distinct from that of any other. Gets or the global context of the environment, or null if there is no such context. Enters a context. The context to enter, or null to enter a scope without a context A cookie that can be used to restore the current thread's context to its previous value when disposed Gets the default context for the specified thread. The thread The default context of the thread Sets the default context for the specified thread. The thread The context to associate with the thread, or null to reset the thread's default context to inherit the once again A test controller that emits the description of the test as a runtime error. Implementation of called after argument validation has taken place. The root test command, not null The parent test step, or null if none The test execution options, not null The progress monitor, not null A test lifecycle event is fired as a test progresses through the steps of its lifecycle from start to finish. Gets the event type. Gets the metadata key. Gets the metadata value. Gets the phase name. Gets the test result. Gets information about the test step just started. Creates a event. The id of the test step this event is about The metadata key The metadata value The event Thrown if , or is null Creates a event. The id of the test step this event is about The test result The event Thrown if or is null Creates a event. The id of the test step this event is about The phase name The event Thrown if or is null Creates a event. Information about the test step that is about to start Thrown if is null A log event describes an incremental operation being performed on the execution log associated with a test step. Gets the attachment name. Gets the binary contents. Gets the content type. Gets the event type. Gets the section name. Gets the stream name. Gets the text contents. Applies the event to the specified log writer. The log writer Creates a event. The id of the test step this event is about The attachment name The content type The binary contents The event Thrown if , , or is null Creates a event. The id of the test step this event is about The attachment name The content type The text contents The event Thrown if , , or is null Creates a event. The id of the test step this event is about The stream name The section name The event Thrown if , or is null Creates a event. The id of the test step this event is about The stream name The attachment name The event Thrown if , or is null Creates a event. The id of the test step this event is about The stream name The event Thrown if or is null Creates a event. The id of the test step this event is about The stream name The text The event Thrown if , or is null Common execution log stream names. This is a and so cannot be inherited or instantiated. The name of the built-in log stream where the stream from the test is recorded. This field is constant and read-only. The name of the built-in log stream where the stream for the test is recorded. This field is constant and read-only. The name of the built-in log stream where the stream from the test is recorded. This field is constant and read-only. The name of the built-in log stream log stream where diagnostic and information is recorded. This field is constant and read-only. The name of the built-in log stream where additional log output is recorded. In new test frameworks, this stream should be used instead of the console output and error streams for logging test output. This field is constant and read-only. The name of the built-in log stream where assertion failures, exceptions and other failure data are recorded. This field is constant and read-only. The name of the built-in log stream where warnings are recorded. This field is constant and read-only. A implementation based on a . Gets the list of child commands to run within the scope of this command. Each child command represents a test that is a child of the test managed by this command. The children are listed in an order that is consistent with their dependencies. See class commends for details. Gets the list of other commands that this command depends upon. The dependent commands are guaranteed to have appeared before this command in a pre-order traversal of the command tree. A test command cannot depend on one of its direct ancestors. Returns true if the test was explicitly selected by a filter. Enumerates this command and all of its descendants in pre-order tree traversal. Gets the number of times that a root step of this test has failed. Gets the test that is to be executed. Gets the total number of tests in the command subtree, including itself. Adds a child test command. The child to add Adds a test command dependency. The dependency to add Returns true if all of the dependencies of this test command have been satisfied. True if the dependencies of this test command have been satisfied Gets the list of children as an array. The array of children Clears the children of the command. Gets a list consisting of this command and all of its descendants as enumerated by pre-order tree traversal. The list of all command Starts the primary step of the test associated with this command as a child of the specified test step and returns its test context. This method is equivalent to calling using a default implementation of that is initialized using . The parent test step, or null if none The test context for the new primary test step Starts a new step of the test using the specified test step object. The test step to start The test context for the test step An observable test context manager creates and tracks test contexts that are associated with a for reporting test events back to the test runner. Gets the test context tracker. Gets the test listener to which test events are dispatched. Starts a test step and returns its associated test context. The test step The test context associated with the test step A log writer that sends messages to a . Attaches an binary attachment to the execution log. The attachment name, unique, not null The content type, not null The binary contents, not null Attaches an text attachment to the execution log. The attachment name, unique, not null The content type, not null The text contents, not null Begins a section in a particular stream of the execution log. The log stream name, not null The name of the section, not null Closes the log writer. Embeds an attachment into a particular stream of the execution log. The log stream name, known to exist, not null The attachment name, not null Ends a section in a particular stream of the execution log. The log stream name, not null Writes text to a particular stream of the execution log. The log stream name, not null The text to write, not null A proxy test listener forwards communication to a until it is disposed. Once disposed, it responds to all subsequent events it receives by throwing under the assumption that no further communication should occur unless it is due to a programming error or timing problem. Disconnects the proxy. Notifes the listener about a lifecycle event. The event arguments Notifes the listener about an execution log event. The event arguments A test controller that recursively enters the context of each non master-test found. When a master test is found, instantiates the for it and hands control over to it for the subtree of tests rooted at the master test. Implementation of called after argument validation has taken place. The root test command, not null The parent test step, or null if none The test execution options, not null The progress monitor, not null A remote test listener is a serializable wrapper for another listener. The wrapper can be passed to another AppDomain and communication occurs over .Net remoting. This class cannot be inherited. Notifes the listener about a lifecycle event. The event arguments Notifes the listener about an execution log event. The event arguments Common event arguments superclass for events pertaining to a particular test step. Gets the id of the step this event is about. A stub implementation of using a . Does not fully support nested test steps or other dynamic features. Gets the current assertion count. Gets the user data collection associated with the context. It may be used to associate arbitrary key/value pairs with the context. Returns true if the step associated with the context has finished execution and completed all actions. Gets or sets the lifecycle phase the context is in. Gets the log writer for the test executing in this context. Each test step gets its own log writer that is distinct from those of other steps. So the log writer returned by this property is particular to the step represented by this test context. Gets the step's outcome or its interim outcome if the test is still running. The value of this property is initially but may change over the course of execution to reflect the anticipated outcome of the test. When the test finishes, its outcome is frozen. Gets the parent context or null if this context has no parent. Gets the test step associated with the context. Adds the specified amount to the assert count atomically. The amount to add to the assert count Adds metadata to the step that is running in the context. The metadata key The metadata value Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Finishes a step and submits its final result. The final test outcome The actual duration of the step, if null the step monitor will record the duration as the total amount of time since the step monitor was started Sets the step's interim . The interim outcome is used to communicate the anticipated outcome of the step to later phases of execution. Starts a child step of the test and returns its context. The step to start The context of the child step Starts a child step of a test and returns its context. This method is equivalent to calling using a default implementation of that is initialized with and . The name of the step The code element, or null if none The context of the child step The event is raised when the test step is finishing to perform resource reclamation or other updates. Clients may attach handlers to this event to perform cleanup activities and other tasks as needed. If a new event handler is added and the step has already finished, the handler is immediately invoked. The stub context tracker is a dummy implementation of that is used in situations where the runtime environment has not been initialized. A typical use of this stub is to support the use of certain framework methods from clients that are not being executed inside of the Gallio test harness such as when test code is run by third party tools. This class cannot be inherited. A stub implementation of that logs output to . Attaches an binary attachment to the execution log. The attachment name, unique, not null The content type, not null The binary contents, not null Attaches an text attachment to the execution log. The attachment name, unique, not null The content type, not null The text contents, not null Begins a section in a particular stream of the execution log. The log stream name, not null The name of the section, not null Closes the log writer. Embeds an attachment into a particular stream of the execution log. The log stream name, known to exist, not null The attachment name, not null Ends a section in a particular stream of the execution log. The log stream name, not null Writes text to a particular stream of the execution log. The log stream name, not null The text to write, not null Creates test commands. This is a and so cannot be inherited or instantiated. Recursively builds a tree of test commands. The test model The filter for the test model The test context manager The root test command or null if none of the tests in the subtree including matched the filter Thrown if , or is null Thrown if an invalid test dependency is found Static service locator class for . Handles the case where no is registered with the by returning a . This is a and so cannot be inherited or instantiated. Gets the context tracker instance. A test listener implementation that dispatches notifications as events or delegates them to other listeners. The event fired when notified of a test execution log event. The event fired when notified of a test lifecycle event. Notifes the listener about a lifecycle event. The event arguments Notifes the listener about an execution log event. The event arguments Provides options that control how test execution occurs. Gets or sets the filter. Defaults to an instance of . Thrown if is null Gets or sets whether to skip running tests that use dynamic data items. This flag can be useful in combination with to enumerate non-dynamic tests only. Defaults to false Gets or sets whether to skip the execution of tests. The test runner will go through most of the motions of running tests but will skip the actual execution phase. This option can be used to enumerate data-driven test steps without running them. It can also be used to verify that the execution environment is sane without doing most of the work of running the tests. Defaults to false Utilities for . This is a and so cannot be inherited or instantiated. Writes an exception to the log within its own section with the specified name. The log writer The stream name The exception to write The section name A test command requests the execution of a tree of s. The test command hierarchy mirrors a filtered subset of the test hierarchy. Gets the list of child commands to run within the scope of this command. Each child command represents a test that is a child of the test managed by this command. The children are listed in an order that is consistent with their dependencies. See class commends for details. Gets the list of other commands that this command depends upon. The dependent commands are guaranteed to have appeared before this command in a pre-order traversal of the command tree. A test command cannot depend on one of its direct ancestors. Returns true if the test was explicitly selected by a filter. Enumerates this command and all of its descendants in pre-order tree traversal. Gets the number of times that a root step of this test has failed. Gets the test that is to be executed. Gets the total number of tests in the command subtree, including itself. Returns true if all of the dependencies of this test command have been satisfied. True if the dependencies of this test command have been satisfied Gets a list consisting of this command and all of its descendants as enumerated by pre-order tree traversal. The list of all command Starts the primary step of the test associated with this command as a child of the specified test step and returns its test context. This method is equivalent to calling using a default implementation of that is initialized using . The parent test step, or null if none The test context for the new primary test step Starts a new step of the test using the specified test step object. The test step to start The test context for the test step Thrown if is null Thrown if does not belong to the test associated with this test command The context provides information about the environment in which a test is executing. A new context is created each time a test or test step begins execution. Contexts are arranged in a hierarchy that corresponds to the order in which the contexts were entered. Thus the context for a test likely has as its parent the context for its containing test fixture. Arbitrary user data can be associated with a context. Furthermore, client code may attach event handlers to perform resource reclamation or other updates when the test step is finished. When the context is disposed, its associated test step is automatically marked as being finished unless was previously called. When this occurs the test step is finished with an outcome of . Gets the current assertion count. Gets the user data collection associated with the context. It may be used to associate arbitrary key/value pairs with the context. Returns true if the step associated with the context has finished execution and completed all actions. Gets or sets the lifecycle phase the context is in. Thrown if is null Thrown if attempting to set the phase while the test is not running Gets the log writer for the test executing in this context. Each test step gets its own log writer that is distinct from those of other steps. So the log writer returned by this property is particular to the step represented by this test context. Gets the step's outcome or its interim outcome if the test is still running. The value of this property is initially but may change over the course of execution to reflect the anticipated outcome of the test. When the test finishes, its outcome is frozen. Gets the parent context or null if this context has no parent. Gets the test step associated with the context. Adds the specified amount to the assert count atomically. The amount to add to the assert count Thrown if the test is not running Adds metadata to the step that is running in the context. The metadata key The metadata value Thrown if or is null Thrown if the test is not running Finishes a step and submits its final result. The final test outcome The actual duration of the step, if null the step monitor will record the duration as the total amount of time since the step monitor was started Sets the step's interim . The interim outcome is used to communicate the anticipated outcome of the step to later phases of execution. Thrown if attempting to set the outcome while the test is not running Starts a child step of the test and returns its context. The step to start The context of the child step Thrown if the step has finished Thrown if is null Thrown if is not a child of the this step Starts a child step of a test and returns its context. This method is equivalent to calling using a default implementation of that is initialized with and . The name of the step The code element, or null if none The context of the child step Thrown if the step has finished Thrown if is null The event is raised when the test step is finishing to perform resource reclamation or other updates. Clients may attach handlers to this event to perform cleanup activities and other tasks as needed. If a new event handler is added and the step has already finished, the handler is immediately invoked. A test context manager functions as a factory for objects and tracks them with an . Gets the test context tracker. Starts a test step and returns its associated test context. The test step The test context associated with the test step Thrown if is null The context tracker tracks the associated with threads. Gets the context of the current thread, or null if there is no current context. A thread's current context is determined in the following manner: If the thread's context stack is not empty then the top-most item of the stack is used. pushed a new item on this stack.Otherwise, if the thread has an default context, then it is used. sets the default context for a thread.Otherwise, the is used. Context information may flow across threads by inheritance such that a child thread acquires the context of its parent. However, each thread has its own context stack distinct from that of any other. Gets or the global context of the environment, or null if there is no such context. Enters a context. The context to enter, or null to enter a scope without a context A cookie that can be used to restore the current thread's context to its previous value when disposed Gets the default context for the specified thread. The thread The default context of the thread Thrown if is null Sets the default context for the specified thread. The thread The context to associate with the thread, or null to reset the thread's default context to inherit the once again Thrown if is null A test controller runs a batch of tests. Runs the tests. The root test monitor The parent test step, or null if starting a root step The test execution options The progress monitor Thrown if , or is null An test listener observes the progress of test execution as a series of events. Notifes the listener about a lifecycle event. The event arguments Notifes the listener about an execution log event. The event arguments Writes messages to a test's execution log. Attaches an binary attachment to the execution log. The attachment name The content type The binary contents Thrown if , or is null Thrown if there is already an attachment with the same name Thrown if the log writer has been closed Attaches an text attachment to the execution log. The attachment name The content type The text contents Thrown if , or is null Thrown if there is already an attachment with the same name Thrown if the log writer has been closed Begins a section in a particular stream of the execution log. The log stream name The name of the section Thrown if or is null Thrown if the log writer has been closed Closes the log writer. Embeds an attachment into a particular stream of the execution log. The log stream name The attachment name Thrown if or is null Thrown if there is no attachment with the specified name Thrown if the log writer has been closed Ends a section in a particular stream of the execution log. The log stream name Thrown if is null Thrown if there is no current section in the stream Thrown if the log writer has been closed Writes text to a particular stream of the execution log. The log stream name The text to write Thrown if or is null Thrown if the log writer has been closed Describes the types of test lifecycle events. The test step is starting. The test step is entering a phase of its execution such as setup or teardown. The test step is receiving additional metadata. The test step is finished. Describes the types of test execution log events. Adds a text attachment to a log. Adds a binary attachment to a log. Writes text to a log stream. Embeds an existing named attachment into a log stream. Begins a section within a log stream. Ends a section of a log stream. A filter combinator that matches a value when all of its constituent filters match the value. Gets the filters that must jointly be matched. If the array is empty, the filter matches everything. A filter that matches anything and always returns true. A filter that matches objects whose matches the specified assembly name filter. An equality filter compares values for strict equality. This class cannot be inherited. Gets the value to compare for equality. A filter is a serializable predicate. The framework uses filters to select among tests discovered through the process of test enumeration. This class is and so cannot be instantiated. Accepts a visitor and performs double-dispatch. The visitor, never null Determines whether the filter matches the value. The value to consider, never null True if the filter matches the value Formats the filter to a string suitable for parsing by . The formatted filter expression Formats filters in such manner that they can be reparsed using the . Gets the formatted filter contents. The formatted filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter A filter parser constructs filters from its textual representation as a filter expression. Creates a filter from its textual representation as a filter expression. The filter expression The parsed filter Provides utilities for manipulating filters. This is a and so cannot be inherited or instantiated. Parses a test filter. The filter expression The parsed filter A filter that matches objects whose matches the specified id filter. A filter that matches objects whose matches the specified member name filter. This filter should normally be used together with a to ensure the accuracy of the member match. A filter that matches objects whose has a key with a value that matches the value filter. Builds filters for objects. The subtype Creates a filter from a specification The filter key that identifies the kind of filter to create The filter to use as a rule for matching values The filter A filter that matches objects whose matches the specified name filter. A filter that matches objects whose matches the specified namespace name. A filter that matches nothing and always returns false. A filter combinator that is the negation of another filter. Gets the filter to be negated. A filter combinator that matches a value when at least one of its constituent filters matches the value. Gets the filters from which at least one match must be found. If the array is empty, the filter matches everything. Abstract base class for filters that encapsulate a rule for selecting some property of an object to be compared against a string value filter. This class is and so cannot be instantiated. Gets the key that represents the filtered property. Gets the string value filter. A regex filter matches strings against a given . Null string values are converted to empty strings for regex evaluation purposes. This class cannot be inherited. Gets the regular expression for matching strings. A filter that matches objects whose matches the specified type name. Creates filters of a given type based on a specification that consists of a filter key and a rule for matching values. The filter type Creates a filter from a specification The filter key that identifies the kind of filter to create The filter to use as a rule for matching values The filter Visits the structure of filters. Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Visits a . The filter Utilities and constants used for serialization. This is a and so cannot be inherited or instantiated. The XML namespace for all Gallio XML types. This field is constant and read-only. Loads an object graph from an Xml file using . The root object type The filename The root object Saves an object graph to a pretty-printed Xml file using . The root object type The root object The filename Describes a test model component in a portable manner for serialization. This class is and so cannot be instantiated. Gets or sets the code location or if not available. Gets or sets the code reference or if not available. Gets or sets the test component id. (non-null) Thrown if is null Gets or sets the metadata map. (non-null) Thrown if is null Gets or sets the test component name. (non-null) Thrown if is null Describes a test in a portable manner for serialization. This class cannot be inherited. Gets the mutable list of children. Gets or sets whether this node is a test case. Gets the mutable list of parameters. The test model captures the root of the test data tree along with an index by id. This class cannot be inherited. Gets or sets the root test in the model. Thrown if is null Gets a dictionary of tests indexed by id. Describes a test package in a portable manner for serialization. This class cannot be inherited. Gets the full names of the assemblies that belong to the test package. Gets or sets the test package configuration. Describes a test parameter in a portable manner for serialization. This class cannot be inherited. Gets or sets the index of the parameter. Gets or sets the fully-qualified type name of the parameter's value type. Thrown if is null Describes a test step in a portable manner for serialization. This class cannot be inherited. Gets or sets the full name of the step. Thrown if is null Gets or sets whether the test step is dynamic. Gets or sets whether the test step is primary. Gets or sets whether the test step represents a test case. Gets or sets the id of the parent step. Gets or sets the id of the test to which the step belongs. Thrown if is null Manipulates attributes described by their metadata. This is a and so cannot be inherited or instantiated. Gets the attribute of the specified type, or null if none. The attribute type The code element If true, includes inherited attributes The attribute, or null if none Thrown if the code element has multiple attributes of the specified type Gets the attribute of the specified type, or null if none. The code element The attribute type If true, includes inherited attributes The attribute, or null if none Thrown if the code element has multiple attributes of the specified type Gets the attributes of the specified type. The attribute type The code element If true, includes inherited attributes The attributes Gets the attributes of the specified type. The code element The attribute type If true, includes inherited attributes The attributes Returns true if the code element has an attribute of the specified type. The attribute type The code element If true, includes inherited attributes True if the code element has at least one attribute of the specified type Returns true if the code element has an attribute of the specified type. The code element The attribute type If true, includes inherited attributes True if the code element has at least one attribute of the specified type Resolves all the attributes. The attribute descriptions The resolved attribute instances The type of exception thrown when a could not be resolved. Sorts code elements in various ways. This is a and so cannot be inherited or instantiated. Sorts members such that those declared by supertypes appear before those declared by subtypes. The type of member The members to sort The sorted members Sorts an members that all belong to the same type such that the members declared by supertypes appear before those declared by subtypes. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the comparer. This field is read-only. Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. The first object to compare. The second object to compare. Value Condition Less than zerox is less than y.Zerox equals y.Greater than zerox is greater than y. Provides functions for working with reflection. This is a and so cannot be inherited or instantiated. Determines if the property has public, non-static and non-abstract getter and setter functions. The property True if the property can be get and set Determines if the type can be instantiated using a public constructor. The type True if the type can be instantiated Determines if the method is public, non-static and is non-abstract so it can be invoked. The method True if the method can be invoked Finds the assembly name of the directly referenced assembly with the specified display name. The assembly to search The display name of the referenced assembly to find The referenced assembly name or null if none Gets the assembly that declares the code element, or the code element itself if it is an . The code element, possibly null The assembly, or null if not found Gets the default value for a type. The type The default value for the type, such as 0 if the type represents an integer, or null if the type is a reference type or if was null Gets the default value of a type with a given type code. The type code The default value of the type associated with the specified type code Gets the non-type member that declares the code element, or the code element itself if it is an other than a . The code element, possibly null The member, or null if not found Gets the namespace that declares the code element, or the code element itself if it is an . The code element, possibly null The namespace, or null if not found Gets the parameter that declares the code element, or the code element itself if it is an . The code element, possibly null The parameter, or null if not found Gets the type that declares the code element, or the code element itself if it is an . The code element, possibly null The type, or null if not found Returns true if a type is derived from another type with the specified qualified name. The type to check The qualified type name True if is derived from Wraps reflection types using the reflection adapter interfaces. Also resolves code references. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the standard . Creates a code element from the caller of the executing function. The code reference Creates a code element from the executing function. The code reference Creates a code element representing a function from a particular frame on the current stack. The number of frames to skip. If this number is 0, the code reference will refer to the direct caller of this method; if it is 1, it will refer to the caller's caller, and so on. The code reference Thrown if is less than zero Resolves the specified . The code reference If true, throws an exception on error The associated code element, or null if the code reference is of kind Thrown if is true and cannot be resolved Obtains a reflection wrapper for an assembly. The assembly, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a type. The type, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a member. The member, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a function. The function, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a constructor. The constructor, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a method. The method, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a property. The property, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a field. The field, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for an event. The event, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a parameter. The parameter, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for an attribute instance. The attribute, or null if none The reflection wrapper, or null if none Obtains a reflection wrapper for a namespace. The namespace name, or null if none The reflection wrapper, or null if none Specifies the location of a code element as a position within a file. Gets an empty code location with a null path and no line or column number information. This field is read-only. Gets the column number, or 0 if unknown. Gets the line number, or 0 if unknown. Gets the path or Uri of a resource that contains the code element, such as a source file or assembly, or null if unknown. Indicates whether this instance and a specified object are equal. Another object to compare to. true if obj and this instance are the same type and represent the same value; otherwise, false. Indicates whether this instance and a specified object are equal. true if obj and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Converts the location to a string of the form "path(line,column)", "path(line)" or "path" depending on which components are available. The code location as a string or "(unknown)" if unknown Compares two code locations for equality. The first code location The second code location True if the code locations are equal Compares two code locations for inequality. The first code location The second code location True if the code references are not equal A code reference is a pointer into the structure of a .Net program for use in describing the location of a certain code construct to the user. It is typically used to identify the point of definition of a test component. Gets an empty code reference used to indicate that the actual reference is unknown. This field is read-only. Gets the assembly name, or null if none. Gets the kind of code element specified by the code reference. Gets the member name, or null if none. Gets the namespace name, or null if none. Gets the parameter name, or null if none. Gets the fully-qualified type name, or null if none. Creates a code reference from an assembly. The assembly The code reference Thrown if is null Creates a code reference from a member. The member The code reference Thrown if is null Creates a code reference from an namespace name. The namespace name The code reference Thrown if is null Creates a code reference from a method parameter. The parameter The code reference Thrown if is null Creates a code reference from a type. The type The code reference Thrown if is null Indicates whether this instance and a specified object are equal. Another object to compare to. true if obj and this instance are the same type and represent the same value; otherwise, false. Indicates whether this instance and a specified object are equal. true if obj and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Produces a human-readable description of the code reference. A description of the code reference Compares two code references for equality. The first code reference The second code reference True if the code references are equal Compares two code references for inequality. The first code reference The second code reference True if the code references are not equal A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets the full name of the assembly. Gets the codebase of the assembly as a local path if possible or as a Uri otherwise. Gets the public types exported by the assembly. The exported types Gets the of the assembly. The assembly name Gets the names of the assemblies referenced by this assembly. The names of the references assemblies Gets a public type by name, or null if not found. The type name The type Gets all of the types in an assembly. The types Resolves the wrapper to its native reflection target. The native reflection target Thrown if the target cannot be resolved Provides information about the contents of a custom attribute. Gets the constructor used to create the attribute. Thrown if not supported Gets the initialized attribute constructor argument values. Thrown if not supported Gets the initialized attribute field values. Gets the initialized attribute property values. Gets the attribute type. Gets an attribute field value. The field name The value, or a default value of the field's type if the field with the specified name was not initialized by the attribute declaration Thrown if there is no writable instance field with the specified name Gets an attribute property value. The property name The value, or a default value of the propery's type if the property with the specified name was not initialized by the attribute declaration Thrown if there is no writable instance property with the specified name Gets the attribute as an object. The attribute Thrown if the attribute could not be resolved Represents a structural element of some code base. This interface is the base of a hierarchy of abstract reflection objects. Different implementations of these objects may be used to perform reflection over different sources. Gets a for this code element. The code reference Gets the kind of code element represented by this instance. Gets the name of the code element. Gets information about the code element's custom attributes of the specified type. The attribute type, or null to return attributes of all types If true, includes inherited attributes from base types (but not from interfaces, just like does) The code element's attributes Gets the code element's custom attributes of the specified type. The attribute type If true, includes inherited attributes from base types (but not from interfaces, just like does) The attributes Gets the location of a resource that contains the declaration of this code element, or if not available. The location may refer to the code element's source code or to the location of its compiled assembly. The code location Gets the XML documentation associated with the code element. The XML documentation or null if none available Returns true if the code element has a custom attribute of the specified type. The attribute type, or null to search for attributes of all types If true, includes inherited attributes from base types (but not from interfaces, just like does) True if the code element has at least one attribute of the specified type A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets the add method of the event, or null if none. The add method, or null if none Gets the event attributes. Gets the event handler type. Gets the raise method of the event, or null if none. The raise method, or null if none Gets the remove method of the event, or null if none. The remove method, or null if none Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets the field attributes. Gets a value indicating whether this field has Assembly level visibility. Gets a value indicating whether this field has Family level visibility. Gets a value indicating whether this field has FamilyAndAssembly level visibility. Gets a value indicating whether this field has FamilyOrAssembly level visibility. Returns true if the field is read-only and can only be set from the constructor. Returns true if the field is a literal set at compile time. Gets a value indicating whether the field is private. Gets a value indicating whether the field is public. Returns true if the field is static. Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets the calling conventions for this method. Returns true if the method is abstract. Gets a value indicating whether this method can be called by other classes in the same assembly. Gets a value indicating whether access to this method is restricted to members of the class and members of its derived classes. Gets a value indicating whether this method can be called by derived classes if they are in the same assembly. Gets a value indicating whether this method can be called by derived classes, wherever they are, and by all classes in the same assembly. Returns true if the method is final. Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class. Gets a value indicating whether this member is private. Gets a value indicating whether this is a public method. Returns true if the method is static. Gets a value indicating whether the method is virtual. Gets the method attributes. Gets the parameters of the function. The parameters Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved A reflection wrapper for generic parameters. The parameter is presented as if it were a slot the accepted a value of type . This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets the constraints of the generic parameter. Gets the declaring generic method of a generic method parameter or null for a generic type parameter. Gets the generic parameter attributes. A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets the declaring type of the member. If the member not a type or is a nested type, returns its containing type. If it is a generic parameter, returns the type to which it (or its declaring method) belongs. Otherwise returns null. Gets the reflected type of the member. The reflected type is the type that was used to locate the member. If the member was inherited from a base class, its declaring type will be the base class but its reflected type will be the inherited class from which the member was accessed. If the member not a type or is a nested type, returns its reflected containing type. If it is a generic parameter, returns the declaring type to which it (or its declaring method) belongs. Otherwise returns null. Gets the member to its underlying native reflection type. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The underlying native reflection type Thrown if the target cannot be resolved A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Returns true if the method contains unbound generic parameters. If so, the list will contain one or more objects. Gets the generic arguments of the method. The list may contain objects when no type has yet been bound to a certain generic parameter slots. The generic arguments Gets the generic method definition of this method, or null if the method is not generic. Returns true if the method is a generic method. If so, the list will be non-empty. Returns true if the method is a generic method definition. Gets the method return parameter object that contains information about the return value and its attributes. Gets the method return type. Makes a generic method instantiation. The generic arguments The generic method instantiation Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved A namespace reflection wrapper identified by its name. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets a value indicating whether this is an input parameter. Gets a value indicating whether this parameter is optional. Gets a value indicating whether this is an output parameter. Gets the member to which the parameter belongs. Gets the parameter attributes. Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Returns true if the property can be read. Returns true if the property can be written. Gets the get method of the property, or null if none. The get method, or null if none Gets the list of index parameters for an indexer property, or an empty array if none. Gets the property attributes. Gets the set method of the property, or null if none. The set method, or null if none Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved A reflection policy provides access to top-level reflection resources such as assemblies. Loads an assembly by name. The full or partial assembly name of the assembly to load The loaded assembly Thrown if is null Thrown if the assembly could not be loaded for any reason A slot represents a field, property or parameter. It is used to simplify the handling of data binding since all three of these types are similar in that they can hold values of some type. Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind. Gets the type of value held in the slot. A reflection wrapper. This wrapper enables reflection-based algorithms to be used against code that may or may not be loaded into the current AppDomain. For example, the target of the wrapper could be an in-memory code model representation. Gets the rank of the array type. Thrown if the type is not an array type Gets the assembly in which the type is declared. Gets the assembly-qualified name of the type, or null if the type is a generic parameter. Gets the base type of the type, or null if none. Returns true if the type contains unbound generic parameters. If so, the list will contain one or more objects. Gets the element type of an array, pointer or byref type, or null if none. Gets the full name of the type, or null if the type is a generic parameter. Gets the generic arguments of the type. The list may contain objects when no type has yet been bound to a certain generic parameter slots. The generic arguments, or an empty list if there are none Gets the generic type definition of this type, or null if the type is not generic. Gets all of the type's interfaces. The type's interfaces Returns true if the type is abstract and must be overridden. Returns true if the type represents an array. Returns true if the type represents a type that is passed by reference. Returns true if the type is a class. Returns true if the type represents an enumeration. Returns true if the type represents a generic type parameter. Returns true if the type is a generic type. If so, the list will be non-empty. Returns true if the type is a generic type definition. Returns true if the type is an interface. Returns true if the type is nested. Returns true if the type is nested and is visible only within its own assembly. Returns true if the type is nested and visible only within its own family. Returns true if the type is nested and visible only to classes that belong to both its own family and its own assembly. Returns true if the type is nested and visible only to classes that belong to either its own family or to its own assembly. Returns true if the type is nested and declared private. Returns true if the type is nested and declared public. Returns true if the type is not declared public. Returns true if the type represents a pointer. Returns true if the type is declared public. Returns true if the type is sealed. Returns true if the type is a value type. Gets the namespace in which the type is declared. Gets the type attributes. Gets the type's . Gets all constructors of the type that satisfy the binding flags. The binding flags The constructors Gets a event by name, or null if not found. The event name The binding flags The event Gets all events of the type that satisfy the binding flags. The binding flags The events Gets a field by name, or null if not found. The field name The binding flags The property Gets all fields of the type that satisfy the binding flags. The binding flags The fields Gets a method by name, or null if not found. The method name The binding flags The method Gets all methods of the type that satisfy the binding flags. The binding flags The methods Gets a nested type by name, or null if not found. The nested type name The binding flags The nested type Gets all nested types of the type that satisfy the binding flags. The binding flags The nested types Gets all properties of the type that satisfy the binding flags. The binding flags The properties Gets a property by name, or null if not found. The property name The binding flags The property Returns true if variables of this type can be assigned with values of the specified type. The other type True if this type is assignable from the other type Returns true if this type is a subclass of the specified type. The other type True if this type is a subclass of the other type, and is not the same as the other type Makes an array type of the specified rank. The array rank The array type Makes a reference type. The reference type Makes a generic type instantiation. The generic arguments The generic type instantiation Makes a pointer type. The pointer type Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved Describes the kind of code element represented by a . The element is an . The element is an . The element is an . The element is an . The element is an . The element is an . The element is an . The element is an . The element is an . The element is an . Describes the kind of code element specified by a . The code reference is unknown. The code reference specifies an assembly. The code reference specifies a namespace. The code reference specifies a type. The code reference specifies a constructor, method, property, field or event. The code reference specifies a parameter of a constructor or method. Resolves debug symbols via the CorMetaDataDispenser COM class. Gets the location of a source file that contains the declaration of a method, or null if not available. The path of the assembly that contains the method The method token The source code location, or null if unknown Helpers for working with . This is a and so cannot be inherited or instantiated. Gets the debug symbol resolver. Gets the location of a source file that contains the declaration of a type, or null if not available. The type The code location, or if unknown Thrown if is null Gets the location of a source file that contains the declaration of a method, or null if not available. The method The source location, or if unknown Thrown if is null The default XML documentation resolver reads XML documentation files on demand when available and caches them in memory for subsequent accesses. It takes care of mapping member names to XML documentation conventions when asked to resolve the documentation for a member. Gets the XML documentation for a member in an assembly. The assembly path The XML documentation id of the member The XML documentation for the member, or null if none available Provides helpers for enumerating attributes taking into account the attribute inheritance structure. This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. This is a and so cannot be inherited or instantiated. Creates an attribute instance from an . The attribute description The attribute instance Returns true if the field is assignable as a named attribute parameter. The field True if the field is assignable Returns true if the property is assignable as a named attribute parameter. The property True if the property is assignable Provides helpers for manipulating reflection flags enumerations. This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. Adds to the enumeration if is true. The flags enumeration to update The flag to add if is true The condition to check Adds to the enumeration if is true. The flags enumeration to update The flag to add if is true The condition to check Adds to the enumeration if is true. The flags enumeration to update The flag to add if is true The condition to check Adds to the enumeration if is true. The flags enumeration to update The flag to add if is true The condition to check Adds to the enumeration if is true. The flags enumeration to update The flag to add if is true The condition to check Adds to the enumeration if is true. The flags enumeration to update The flag to add if is true The condition to check Adds to the enumeration if is true. The flags enumeration to update The flag to add if is true The condition to check Provides helpers for resolving abstract reflection objects to obtain native ones based on the structural properties of the reflected code elements. This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. Resolves a reflected constructor to its native object. The reflected constructor If true, throws an exception if resolution fails, otherwise returns an The resolved . Thrown if is null Thrown if could not be resolved Resolves a reflected event to its native object. The reflected event If true, throws an exception if resolution fails, otherwise returns an The resolved . Thrown if is null Thrown if could not be resolved Resolves a reflected field to its native object. The reflected type If true, throws an exception if resolution fails, otherwise returns an The resolved . Thrown if is null Thrown if could not be resolved Resolves a reflected method to its native object. The reflected method If true, throws an exception if resolution fails, otherwise returns an The resolved . Thrown if is null Thrown if could not be resolved Resolves a reflected parameter to its native object. The reflected parameter If true, throws an exception if resolution fails, otherwise returns an The resolved . Thrown if is null Thrown if could not be resolved Resolves a reflected property to its native object. The reflected property If true, throws an exception if resolution fails, otherwise returns an The resolved . Thrown if is null Thrown if could not be resolved Resolves a reflected type to its native object. The reflected type The method that is currently in scope, or null if none. This parameter is used when resolving types that are part of the signature of a generic method so that generic method arguments can be handled correctly. If true, throws an exception if resolution fails, otherwise returns an The resolved . Thrown if is null Thrown if could not be resolved Provides helpers for working with types and type codes. This class is intended to assist with the implementation of new reflection policies. It should not be used directly by clients of the reflection API. Gets the default value for a reflected type. The reflected type The default value for the type, such as 0 if the type represents an integer, or null if the type is a reference type or if was null Determines the type code of a reflected type based on the type's name. The reflected type, or null if none The type code of the type, or if was null A array type wrapper. Gets the rank of the array type. Internal implementation of . Returns true if the type represents an array. Gets the suffix to append to the name of the constructed type. Gets the type attributes. Applies a type substitution and returns the resulting type. The substitution The type after substitution has been performed A assembly wrapper. This class cannot be inherited. Gets a for this code element. The code reference Gets the full name of the assembly. Gets the kind of code element represented by this instance. Gets the name of the code element. Gets the codebase of the assembly as a local path if possible or as a Uri otherwise. Gets the location of a resource that contains the declaration of this code element, or if not available. The location may refer to the code element's source code or to the location of its compiled assembly. The code location Gets the public types exported by the assembly. The exported types Gets the of the assembly. The assembly name Gets the names of the assemblies referenced by this assembly. The names of the references assemblies Gets a public type by name, or null if not found. The type name The type Gets all of the types in an assembly. The types Returns true if the internal members of this assembly are visible to the specified assembly. The other assembly True if the other assembly can see internal members of this assembly Resolves the wrapper to its native reflection target. The native reflection target Returns a that represents the current . A that represents the current . A attribute wrapper. This class cannot be inherited. Gets the constructor used to create the attribute. Gets the initialized attribute constructor argument values. Gets the initialized attribute field values. Gets the initialized attribute property values. Gets the attribute type. Gets an attribute field value. The field name The value, or a default value of the field's type if the field with the specified name was not initialized by the attribute declaration Gets an attribute property value. The property name The value, or a default value of the propery's type if the property with the specified name was not initialized by the attribute declaration Gets the attribute as an object. The attribute Returns a that represents the current . A that represents the current . A by-ref type wrapper. This class cannot be inherited. Returns true if the type represents a type that is passed by reference. Gets the type attributes. Applies a type substitution and returns the resulting type. The substitution The type after substitution has been performed A code element wrapper. This class is and so cannot be instantiated. Gets information about the code element's custom attributes of the specified type. The attribute type, or null to return attributes of all types If true, includes inherited attributes from base types (but not from interfaces, just like does) The code element's attributes Gets the code element's custom attributes of the specified type. The attribute type If true, includes inherited attributes from base types (but not from interfaces, just like does) The attributes Gets all attributes that appear on this code element, excluding inherited attributes. The attribute wrappers Gets an enumeration of elements from which this code element inherits. The inherited code elements Gets all pseudo custom attributes associated with a member. These attributes do not really exist as custom attributes in the metadata. Rather, they are realizations of other metadata features in attribute form. For example, is represented in the metadata as a flag. Pseudo custom attributes preserve the illusion of these attributes. The pseudo custom attributes Gets the XML documentation associated with the code element. The XML documentation or null if none available Returns true if the code element has a custom attribute of the specified type. The attribute type, or null to search for attributes of all types If true, includes inherited attributes from base types (but not from interfaces, just like does) True if the code element has at least one attribute of the specified type Returns a that represents the current . A that represents the current . A constructed type wrapper. This class is and so cannot be instantiated. Gets the assembly in which the type is declared. Returns true if the type contains unbound generic parameters. If so, the list will contain one or more objects. Gets the element type, or null if none. Gets the full name of the type, or null if the type is a generic parameter. Gets the name of the code element. Gets the suffix to append to the name of the constructed type. Gets the namespace in which the type is declared. Gets the location of a resource that contains the declaration of this code element, or if not available. The location may refer to the code element's source code or to the location of its compiled assembly. The code location Gets all attributes that appear on this code element, excluding inherited attributes. The attribute wrappers Returns a that represents the current . A that represents the current . A constructor wrapper. This class cannot be inherited. Gets the kind of code element represented by this instance. Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Returns a that represents the current . A that represents the current . A declared type wrapper such as a class, struct, enum or interface definition. This class cannot be inherited. Gets the assembly in which the type is declared. Gets the base type, or null if none. Returns true if the type contains unbound generic parameters. If so, the list will contain one or more objects. Gets the full name of the type, or null if the type is a generic parameter. Gets the generic arguments of the type. The list may contain objects when no type has yet been bound to a certain generic parameter slots. The generic arguments, or an empty list if there are none Gets all of the type's interfaces. The type's interfaces Returns true if the type is a generic type. If so, the list will be non-empty. Returns true if the type is a generic type definition. Gets the name of the code element. Gets the namespace in which the type is declared. Gets the type substitution for generic parameters. Gets the type attributes. Applies a type substitution and returns the resulting type. The substitution The type after substitution has been performed Composes the substitution of the type with the specified substitution and returns a new wrapper. The substitution The new wrapper with the composed substitution Gets an enumeration of all base types. The enumeration of base types Gets all constructors of the type that satisfy the binding flags. The binding flags The constructors Gets a event by name, or null if not found. The event name The binding flags The event Gets all events of the type that satisfy the binding flags. The binding flags The events Gets a field by name, or null if not found. The field name The binding flags The property Gets all fields of the type that satisfy the binding flags. The binding flags The fields Gets a method by name, or null if not found. The method name The binding flags The method Gets all methods of the type that satisfy the binding flags. The binding flags The methods Gets a nested type by name, or null if not found. The nested type name The binding flags The nested type Gets all nested types of the type that satisfy the binding flags. The binding flags The nested types Gets all properties of the type that satisfy the binding flags. The binding flags The properties Gets a property by name, or null if not found. The property name The binding flags The property Returns a that represents the current . A that represents the current . A event wrapper. This class cannot be inherited. Gets the event attributes. Gets the event handler type. Gets the kind of code element represented by this instance. Gets the events that this one overrides or hides. Only includes overrides that appear on class types, not interfaces. If true, only returns overrides Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Returns a that represents the current . A that represents the current . A field wrapper. Gets the field attributes. Gets a value indicating whether this field has Assembly level visibility. Gets a value indicating whether this field has Family level visibility. Gets a value indicating whether this field has FamilyAndAssembly level visibility. Gets a value indicating whether this field has FamilyOrAssembly level visibility. Returns true if the field is read-only and can only be set from the constructor. Returns true if the field is a literal set at compile time. Gets a value indicating whether the field is private. Gets a value indicating whether the field is public. Returns true if the field is static. Gets the kind of code element represented by this instance. Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind. Gets the type of value held in the slot. Gets all pseudo custom attributes associated with a member. These attributes do not really exist as custom attributes in the metadata. Rather, they are realizations of other metadata features in attribute form. For example, is represented in the metadata as a flag. Pseudo custom attributes preserve the illusion of these attributes. The pseudo custom attributes Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Implementation of Returns a that represents the current . A that represents the current . A function wrapper. This class is and so cannot be instantiated. Gets the calling conventions for this method. Returns true if the method is abstract. Gets a value indicating whether this method can be called by other classes in the same assembly. Gets a value indicating whether access to this method is restricted to members of the class and members of its derived classes. Gets a value indicating whether this method can be called by derived classes if they are in the same assembly. Gets a value indicating whether this method can be called by derived classes, wherever they are, and by all classes in the same assembly. Returns true if the method is final. Gets a value indicating whether only a member of the same kind with exactly the same signature is hidden in the derived class. Gets a value indicating whether this member is private. Gets a value indicating whether this is a public method. Returns true if the method is static. Gets a value indicating whether the method is virtual. Gets the method attributes. Implementation of Implementation of A generic parameter wrapper. This is a and so cannot be inherited or instantiated. Gets the assembly in which the type is declared. Gets the assembly-qualified name of the type, or null if the type is a generic parameter. Gets the constraints of the generic parameter. Returns true if the type contains unbound generic parameters. If so, the list will contain one or more objects. Gets the declaring method, or null if the generic parameter belongs to a type. Gets the declaring type, or null if none. Gets the full name of the type, or null if the type is a generic parameter. Gets the generic parameter attributes. Returns true if the type represents a generic type parameter. Gets the kind of code element represented by this instance. Gets the namespace in which the type is declared. Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind. Gets the type attributes. Gets the type of value held in the slot. Applies a type substitution and returns the resulting type. The substitution The type after substitution has been performed Creates a wrapper for a generic method parameter. The reflection policy The underlying reflection object The declaring method, which must be a generic method definition Thrown if , or is null Creates a wrapper for a generic type parameter. The reflection policy The underlying reflection object The declaring type, which must be a generic type definition Thrown if , or is null Gets all constructors of the type that satisfy the binding flags. The binding flags The constructors Returns a that represents the current . A that represents the current . A member wrapper. This class is and so cannot be instantiated. Gets a for this code element. The code reference Gets the declaring type, or null if none. Gets the reflected type, or null if none. Gets the type substitution for generic parameters. Gets all attributes that appear on this code element, excluding inherited attributes. The attribute wrappers Implementation of A method wrapper. This class cannot be inherited. Returns true if the method contains unbound generic parameters. If so, the list will contain one or more objects. Gets the generic arguments of the method. The list may contain objects when no type has yet been bound to a certain generic parameter slots. The generic arguments Returns true if the method is a generic method. If so, the list will be non-empty. Returns true if the method is a generic method definition. Returns true if this method overrides another. Gets the kind of code element represented by this instance. Gets the method return parameter object that contains information about the return value and its attributes. Gets the method return type. Gets the type substitution for generic parameters. Gets the methods that this one overrides or hides. Only includes overrides that appear on class types, not interfaces. If true, only returns overrides Returns true if this method hides the specified method. The other method True if this method hides the other method Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Returns a that represents the current . A that represents the current . A parameter wrapper. This class cannot be inherited. Gets a for this code element. The code reference Gets a value indicating whether this is an input parameter. Gets a value indicating whether this parameter is optional. Gets a value indicating whether this is an output parameter. Gets the kind of code element represented by this instance. Gets the member to which the parameter belongs. Gets the name of the code element. Gets the parameter attributes. Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind. Gets the type of value held in the slot. Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Returns a that represents the current . A that represents the current . A pointer type wrapper. This class cannot be inherited. Returns true if the type represents a pointer. Gets the type attributes. Applies a type substitution and returns the resulting type. The substitution The type after substitution has been performed A property wrapper. This class cannot be inherited. Returns true if the property can be read. Returns true if the property can be written. Gets the kind of code element represented by this instance. Gets the positional index of a method parameter slot, -1 if the slot is a method return parameter, or 0 if the slot is of some other kind. Gets the property attributes. Gets the type of value held in the slot. Gets the properties that this one overrides or hides. Only includes overrides that appear on class types, not interfaces. If true, only returns overrides Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Returns a that represents the current . A that represents the current . A member wrapper for members that are not types, generic parameters or nested types. These members must be declared by types, so they all share the constraint that the declaring type and reflected type must not be null. In particular, the reflected type may be a subtype of the declaring type in the case of inherited members. This class is and so cannot be instantiated. Gets the reflected type, or null if none. The static reflection policy base class is intended to assist with the implementation of custom reflection policies defined over static metadata. It flattens out the code element hierarchy to ease implementation of new policies. It provides a mechanism for handling generic type substitutions to ensure a consistent and correct implementation of generic type and generic method instantiations. This class is and so cannot be instantiated. Determines if two wrappers represent the same object. The first wrapper, not null The second wrapper, not null True if both wrapper represent the same object Gets the custom attributes of an assembly. The assembly, not null The attributes Gets the public types exported by an assembly. The assembly wrapper, not null The types Gets the name of an assembly. The assembly wrapper, not null The assembly name Gets the path of an assembly. The assembly wrapper, not null The assembly path Gets the references of an assembly. The assembly wrapper, not null The assembly references Gets the specified named type within an assembly. The assembly wrapper, not null The type name, not null The type, or null if none Gets all types contained in an assembly. The assembly wrapper, not null The types Gets the constructor of an attribute. The attribute, not null The constructor Gets the constructor arguments of an attribute. The attribute, not null The constructor argument values Gets the field arguments of an attribute. The attribute, not null The field argument values Gets the property arguments of an attribute. The attribute, not null The property argument values Gets the add method of an event, or null if none. The event, not null The add method, or null if none Gets the attributes of an event. The event, not null The event attributes Gets the event handler type of an event. The event, not null The event handler type Gets the raise method of an event, or null if none. The event, not null The raise method, or null if none Gets the remove method of an event, or null if none. The event, not null The remove method, or null if none Gets the attributes of a field. The field, not null The field attributes Gets the field type. The field, not null The field type Gets the attributes of a function. The function, not null The function attributes Gets the calling conventions of a function. The function, not null The function calling conventions Gets the parameters of a function. The function, not null The parameters Gets the attributes of a generic parameter. The generic parameter, not null The generic parameter attributes Gets the generic parameter constraints. The generic parameter, not null The generic parameter constraints Gets the generic parameter position. The generic parameter, not null The generic parameter position Gets a hashcode for a wrapper. The wrapper, not null The wrapper's hash code Gets the custom attributes of a member. The member, not null The custom attributes Gets the short name of a member. In the case of a generic type, should exclude the generic parameter count part of the name. eg. "`1" The member, not null The member's name Gets the source code location of a member. The member, not null The source code location, or if not available Gets the generic parameters of a method. The method, not null The generic parameters Gets the return parameter of a method. The method, not null The return parameter Gets the attributes of a parameter. The parameter, not null The parameter attributes Gets the custom attributes of a parameter. The parameter, not null The custom attributes Gets the name of a parameter. The parameter, not null The parameter's name Gets the parameter's position, or -1 if the parameter is a return value. The parameter, not null The parameter's position Gets the parameter type. The parameter, not null The parameter type Gets the attributes of a property. The property, not null The property attributes Gets the get method of a property, or null if none. The property, not null The get method, or null if none Gets the set method of a property, or null if none. The property, not null The set method, or null if none Gets the property type. The property, not null The property type Gets the assembly that contains a type. The type, not null The type's assembly Gets the attributes of a type. The type, not null The type attributes Gets the base type of atype. The type, not null The base type Gets the constructors of a type. Only includes declared methods, not inherited ones. The type, not null The type's constructors Gets the events of a type. Only includes declared methods, not inherited ones. The type, not null The reflected type, not null The type's events Gets the fields of a type. Only includes declared methods, not inherited ones. The type, not null The reflected type, not null The type's fields Gets the generic parameters of a type. The type, not null The type's generic parameters Gets the interfaces directly implemented by a type. The type, not null The type's interfaces Gets the methods of a type including accessor methods for properties and events. Only includes declared methods, not inherited ones. The type, not null The reflected type, not null The type's methods Gets the namespace that contains a type. The type, not null The type's namespace Gets the nested types of a type. Only includes declared nested types, not inherited ones. The type, not null The type's nested types Gets the properties of a type. Only includes declared methods, not inherited ones. The type, not null The reflected type, not null The type's properties Loads an assembly by name. The full or partial assembly name of the assembly to load The loaded assembly Loads an assembly. The assembly name, not null The loaded assembly wrapper Any exception may be thrown if the loading fails A type wrapper that represents a special type that is either constructed from other types or derived from them as with a generic parameter. This class is and so cannot be instantiated. Internal implementation of . Gets all of the type's interfaces. The type's interfaces Gets the type substitution for generic parameters. Gets a event by name, or null if not found. The event name The binding flags The event Gets all events of the type that satisfy the binding flags. The binding flags The events Gets a field by name, or null if not found. The field name The binding flags The property Gets all fields of the type that satisfy the binding flags. The binding flags The fields Gets a method by name, or null if not found. The method name The binding flags The method Gets all methods of the type that satisfy the binding flags. The binding flags The methods Gets a nested type by name, or null if not found. The nested type name The binding flags The nested type Gets all nested types of the type that satisfy the binding flags. The binding flags The nested types Gets all properties of the type that satisfy the binding flags. The binding flags The properties Gets a property by name, or null if not found. The property name The binding flags The property Gets all pseudo custom attributes associated with a member. These attributes do not really exist as custom attributes in the metadata. Rather, they are realizations of other metadata features in attribute form. For example, is represented in the metadata as a flag. Pseudo custom attributes preserve the illusion of these attributes. The pseudo custom attributes A type wrapper. This class is and so cannot be instantiated. Gets the base type of the type, or null if none. Internal implementation of . Gets a for this code element. The code reference Gets the element type, or null if none. Returns true if the type is abstract and must be overridden. Returns true if the type is a class. Returns true if the type represents an enumeration. Returns true if the type is an interface. Returns true if the type is nested. Returns true if the type is nested and is visible only within its own assembly. Returns true if the type is nested and visible only within its own family. Returns true if the type is nested and visible only to classes that belong to both its own family and its own assembly. Returns true if the type is nested and visible only to classes that belong to either its own family or to its own assembly. Returns true if the type is nested and declared private. Returns true if the type is nested and declared public. Returns true if the type is not declared public. Returns true if the type is declared public. Returns true if the type is sealed. Returns true if the type is a value type. Gets the type's . Applies a type substitution and returns the resulting type. The substitution The type after substitution has been performed Gets an enumeration of elements from which this code element inherits. The inherited code elements Returns true if variables of this type can be assigned with values of the specified type. The other type True if this type is assignable from the other type Returns true if this type is a subclass of the specified type. The other type True if this type is a subclass of the other type, and is not the same as the other type Resolves the wrapper to its native reflection target. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Resolves the wrapper to its native reflection target within the scope of the specified method. The method that is currently in scope, or null if none. This parameter is used when resolving types that are part of the signature of a generic method so that generic method arguments can be handled correctly. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Implementation of A wrapper. A wrapper holds an underlying reflection object. Its behavior is derived from by primitive operations on the defined by the particular implementation that is in use. This class is and so cannot be instantiated. Gets the underlying reflection object. Gets the reflection policy. Compares the policy and handle of this wrapper with those of another using . The other wrapper Represents a whose native definition could not be resolved so we fall back on the wrapper. Gets the underlying reflection adapter. Gets the attributes associated with this method. One of the values. Gets a value indicating the calling conventions for this method. The for this method. Gets a value indicating whether the generic method contains unassigned generic type parameters. true if the current object represents a generic method that contains unassigned generic type parameters; otherwise, false. Gets the class that declares this member. The Type object for the class that declares this member. Gets a value indicating whether the method is generic. true if the current represents a generic method; otherwise, false. Gets a value indicating whether the method is a generic method definition. true if the current object represents the definition of a generic method; otherwise, false. Gets a value indicating that this member is a constructor. A value indicating that this member is a constructor. Gets a value that identifies a metadata element. A value which, in combination with , uniquely identifies a metadata element. Gets a handle to the internal metadata representation of a method. A object. Gets the module in which the type that declares the member represented by the current is defined. The in which the type that declares the member represented by the current is defined. Gets the name of the current member. A containing the name of this member. Gets the class object that was used to obtain this instance of MemberInfo. The Type object through which this MemberInfo object was obtained. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. When overridden in a derived class, returns an array containing all the custom attributes. Specifies whether to search this member's inheritance chain to find the attributes. An array that contains all the custom attributes, or an array with zero elements if no attributes are defined. When overridden in a derived class, returns an array of custom attributes identified by . The type of attribute to search for. Only attributes that are assignable to this type are returned. Specifies whether to search this member's inheritance chain to find the attributes. An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied. Returns an array of objects that represent the type arguments of a generic method or the type parameters of a generic method definition. An array of objects that represent the type arguments of a generic method or the type parameters of a generic method definition. Returns an empty array if the current method is not a generic method. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . When overridden in a derived class, gets a object that provides access to the MSIL stream, local variables, and exceptions for the current method. A object that provides access to the MSIL stream, local variables, and exceptions for the current method. When overridden in a derived class, returns the flags. The MethodImplAttributes flags. When overridden in a derived class, gets the parameters of the specified method or constructor. An array of type ParameterInfo containing information that matches the signature of the method (or constructor) reflected by this MethodBase instance. When implemented in a derived class, invokes the constructor reflected by this ConstructorInfo with the specified arguments, under the constraints of the specified Binder. One of the BindingFlags values that specifies the type of binding. A Binder that defines a set of properties and enables the binding, coercion of argument types, and invocation of members using reflection. If binder is null, then Binder.DefaultBinding is used. An array of type Object used to match the number, order and type of the parameters for this constructor, under the constraints of binder. If this constructor does not require parameters, pass an array with zero elements, as in Object[] parameters = new Object[0]. Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. For reference-type elements, this value is null. For value-type elements, this value is 0, 0.0, or false, depending on the specific element type. A used to govern the coercion of types. If this is null, the for the current thread is used. An instance of the class associated with the constructor. When overridden in a derived class, invokes the reflected method or constructor with the given parameters. The object on which to invoke the method or constructor. If a method is static, this argument is ignored. If a constructor is static, this argument must be null or an instance of the class that defines the constructor. A bitmask that is a combination of 0 or more bit flags from . If binder is null, this parameter is assigned the value ; thus, whatever you pass in is ignored. An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If binder is null, the default binder is used. An argument list for the invoked method or constructor. This is an array of objects with the same number, order, and type as the parameters of the method or constructor to be invoked. If there are no parameters, this should be null.If the method or constructor represented by this instance takes a ByRef parameter, there is no special attribute required for that parameter in order to invoke the method or constructor using this function. Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. For reference-type elements, this value is null. For value-type elements, this value is 0, 0.0, or false, depending on the specific element type. An instance of CultureInfo used to govern the coercion of types. If this is null, the CultureInfo for the current thread is used. (This is necessary to convert a String that represents 1000 to a Double value, for example, since 1000 is represented differently by different cultures.) An Object containing the return value of the invoked method, or null in the case of a constructor, or null if the method's return type is void. Before calling the method or constructor, Invoke checks to see if the user has access permission and verify that the parameters are valid. When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member. The Type object to which the custom attributes are applied. Specifies whether to search this member's inheritance chain to find the attributes. true if one or more instance of attributeType is applied to this member; otherwise false. Returns a that represents the current . A that represents the current . Represents a whose native definition could not be resolved so we fall back on the wrapper. Gets the underlying reflection adapter. Gets the attributes for this event. The read-only attributes for this event. Gets the class that declares this member. The Type object for the class that declares this member. Gets a value indicating that this member is an event. A value indicating that this member is an event. Gets a value that identifies a metadata element. A value which, in combination with , uniquely identifies a metadata element. Gets the module in which the type that declares the member represented by the current is defined. The in which the type that declares the member represented by the current is defined. Gets the name of the current member. A containing the name of this member. Gets the class object that was used to obtain this instance of MemberInfo. The Type object through which this MemberInfo object was obtained. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. When overridden in a derived class, retrieves the MethodInfo object for the method of the event, specifying whether to return non-public methods. true if non-public methods can be returned; otherwise, false. A object representing the method used to add an event handler delegate to the event source. When overridden in a derived class, returns an array containing all the custom attributes. Specifies whether to search this member's inheritance chain to find the attributes. An array that contains all the custom attributes, or an array with zero elements if no attributes are defined. When overridden in a derived class, returns an array of custom attributes identified by . The type of attribute to search for. Only attributes that are assignable to this type are returned. Specifies whether to search this member's inheritance chain to find the attributes. An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Returns the methods that have been associated with the event in metadata using the .other directive, specifying whether to include non-public methods. true to include non-public methods; otherwise, false. An array of objects representing methods that have been associated with an event in metadata by using the .other directive. If there are no methods matching the specification, an empty array is returned. When overridden in a derived class, returns the method that is called when the event is raised, specifying whether to return non-public methods. true if non-public methods can be returned; otherwise, false. A MethodInfo object that was called when the event was raised. When overridden in a derived class, retrieves the MethodInfo object for removing a method of the event, specifying whether to return non-public methods. true if non-public methods can be returned; otherwise, false. A object representing the method used to remove an event handler delegate from the event source. When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member. The Type object to which the custom attributes are applied. Specifies whether to search this member's inheritance chain to find the attributes. true if one or more instance of attributeType is applied to this member; otherwise false. Returns a that represents the current . A that represents the current . Represents a whose native definition could not be resolved so we fall back on the wrapper. Gets the underlying reflection adapter. Gets the attributes associated with this field. The FieldAttributes for this field. Gets the class that declares this member. The Type object for the class that declares this member. Gets a RuntimeFieldHandle, which is a handle to the internal metadata representation of a field. A handle to the internal metadata representation of a field. Gets the type of this field object. The type of this field object. Gets a value indicating that this member is a field. A value indicating that this member is a field. Gets a value that identifies a metadata element. A value which, in combination with , uniquely identifies a metadata element. Gets the module in which the type that declares the member represented by the current is defined. The in which the type that declares the member represented by the current is defined. Gets the name of the current member. A containing the name of this member. Gets the class object that was used to obtain this instance of MemberInfo. The Type object through which this MemberInfo object was obtained. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. When overridden in a derived class, returns an array containing all the custom attributes. Specifies whether to search this member's inheritance chain to find the attributes. An array that contains all the custom attributes, or an array with zero elements if no attributes are defined. When overridden in a derived class, returns an array of custom attributes identified by . The type of attribute to search for. Only attributes that are assignable to this type are returned. Specifies whether to search this member's inheritance chain to find the attributes. An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Gets an array of types that identify the optional custom modifiers of the field. An array of objects that identify the optional custom modifiers of the current field, such as or . Returns a literal value associated with the field by a compiler. An that contains the literal value associated with the field. If the literal value is a class type with an element value of zero, the return value is null. Gets an array of types that identify the required custom modifiers of the property. An array of objects that identify the required custom modifiers of the current property, such as or . When overridden in a derived class, returns the value of a field supported by a given object. The object whose field value will be returned. An object containing the value of the field reflected by this instance. Returns the value of a field supported by a given object. A structure that encapsulates a managed pointer to a location and a runtime representation of the type that might be stored at that location. An Object containing a field value. When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member. The Type object to which the custom attributes are applied. Specifies whether to search this member's inheritance chain to find the attributes. true if one or more instance of attributeType is applied to this member; otherwise false. When overridden in a derived class, sets the value of the field supported by the given object. The object whose field value will be set. The value to assign to the field. A field of Binder that specifies the type of binding that is desired (for example, Binder.CreateInstance or Binder.ExactBinding). A set of properties that enables the binding, coercion of argument types, and invocation of members through reflection. If binder is null, then Binder.DefaultBinding is used. The software preferences of a particular culture. Sets the value of the field supported by the given object. A structure that encapsulates a managed pointer to a location and a runtime representation of the type that can be stored at that location. The value to assign to the field. Returns a that represents the current . A that represents the current . Represents a whose native definition could not be resolved so we fall back on the wrapper. Gets the underlying reflection adapter. Gets the attributes associated with this method. One of the values. Gets a value indicating the calling conventions for this method. The for this method. Gets a value indicating whether a generic method contains unassigned generic type parameters. true if the current contains unassigned generic type parameters; otherwise, false. Gets the class that declares this member. The Type object for the class that declares this member. Gets a value indicating whether the current method is a generic method. true if the current method is a generic method; otherwise, false. Gets a value indicating whether the current represents the definition of a generic method. true if the object represents the definition of a generic method; otherwise, false. Gets a value indicating that this member is a method. A value indicating that this member is a method. Gets a value that identifies a metadata element. A value which, in combination with , uniquely identifies a metadata element. Gets a handle to the internal metadata representation of a method. A object. Gets the module in which the type that declares the member represented by the current is defined. The in which the type that declares the member represented by the current is defined. Gets the name of the current member. A containing the name of this member. Gets the class object that was used to obtain this instance of MemberInfo. The Type object through which this MemberInfo object was obtained. Gets a object that contains information about the return type of the method, such as whether the return type has custom modifiers. A object that contains information about the return type. Gets the return type of this method. The return type of this method. Gets the custom attributes for the return type. An ICustomAttributeProvider object representing the custom attributes for the return type. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. When overridden in a derived class, returns the MethodInfo object for the method on the direct or indirect base class in which the method represented by this instance was first declared. A MethodInfo object for the first implementation of this method. When overridden in a derived class, returns an array containing all the custom attributes. Specifies whether to search this member's inheritance chain to find the attributes. An array that contains all the custom attributes, or an array with zero elements if no attributes are defined. When overridden in a derived class, returns an array of custom attributes identified by . The type of attribute to search for. Only attributes that are assignable to this type are returned. Specifies whether to search this member's inheritance chain to find the attributes. An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied. Returns an array of objects that represent the type arguments of a generic method or the type parameters of a generic method definition. An array of objects that represent the type arguments of a generic method or the type parameters of a generic method definition. Returns an empty array if the current method is not a generic method. Returns a object that represents a generic method definition from which the current method can be constructed. A object representing a generic method definition from which the current method can be constructed. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . When overridden in a derived class, gets a object that provides access to the MSIL stream, local variables, and exceptions for the current method. A object that provides access to the MSIL stream, local variables, and exceptions for the current method. When overridden in a derived class, returns the flags. The MethodImplAttributes flags. When overridden in a derived class, gets the parameters of the specified method or constructor. An array of type ParameterInfo containing information that matches the signature of the method (or constructor) reflected by this MethodBase instance. When overridden in a derived class, invokes the reflected method or constructor with the given parameters. The object on which to invoke the method or constructor. If a method is static, this argument is ignored. If a constructor is static, this argument must be null or an instance of the class that defines the constructor. A bitmask that is a combination of 0 or more bit flags from . If binder is null, this parameter is assigned the value ; thus, whatever you pass in is ignored. An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If binder is null, the default binder is used. An argument list for the invoked method or constructor. This is an array of objects with the same number, order, and type as the parameters of the method or constructor to be invoked. If there are no parameters, this should be null.If the method or constructor represented by this instance takes a ByRef parameter, there is no special attribute required for that parameter in order to invoke the method or constructor using this function. Any object in this array that is not explicitly initialized with a value will contain the default value for that object type. For reference-type elements, this value is null. For value-type elements, this value is 0, 0.0, or false, depending on the specific element type. An instance of CultureInfo used to govern the coercion of types. If this is null, the CultureInfo for the current thread is used. (This is necessary to convert a String that represents 1000 to a Double value, for example, since 1000 is represented differently by different cultures.) An Object containing the return value of the invoked method, or null in the case of a constructor, or null if the method's return type is void. Before calling the method or constructor, Invoke checks to see if the user has access permission and verify that the parameters are valid. When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member. The Type object to which the custom attributes are applied. Specifies whether to search this member's inheritance chain to find the attributes. true if one or more instance of attributeType is applied to this member; otherwise false. Substitutes the elements of an array of types for the type parameters of the current generic method definition, and returns a object representing the resulting constructed method. An array of types to be substituted for the type parameters of the current generic method definition. A object that represents the constructed method formed by substituting the elements of typeArguments for the type parameters of the current generic method definition. Returns a that represents the current . A that represents the current . Represents a whose native definition could not be resolved so we fall back on the wrapper. Gets the underlying reflection adapter. Gets the attributes for this parameter. A ParameterAttributes object representing the attributes for this parameter. Gets a value indicating the default value if the parameter has a default value. The default value of the parameter, or if the parameter has no default value. Gets a value indicating the member in which the parameter is implemented. A MemberInfo object. Gets the name of the parameter. A String containing the simple name of this parameter. Gets the Type of this parameter. The Type object that represents the Type of this parameter. Gets the signature position for the parameter. An integer representing the position this parameter occupies in the parameter list. Gets a value indicating the default value if the parameter has a default value. The default value of the parameter, or if the parameter has no default value. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. Gets all the custom attributes defined on this parameter. This argument is ignored for objects of this type. An array of type Object containing all the custom attributes defined on this parameter. Gets the custom attributes of the specified type defined on this parameter. The custom attributes identified by type. This argument is ignored for objects of this type. An array of type Object containing the custom attributes of the specified type. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . Gets the optional custom modifiers of the parameter. An array of objects that identify the optional custom modifiers of the current parameter, such as or . Gets the required custom modifiers of the parameter. An array of objects that identify the required custom modifiers of the current parameter, such as or . Determines if the custom attribute of the specified type is defined on this member. The Type object to search for. This argument is ignored for objects of this type. true if one or more instance of attributeType is defined on this member; otherwise, false. Gets the parameter type and name represented as a string. A string containing the type and the name of the parameter. Represents a whose native definition could not be resolved so we fall back on the wrapper. Gets the underlying reflection adapter. Gets the attributes for this property. Attributes of this property. Gets a value indicating whether the property can be read. true if this property can be read; otherwise, false. Gets a value indicating whether the property can be written to. true if this property can be written to; otherwise, false. Gets the class that declares this member. The Type object for the class that declares this member. Gets a value indicating that this member is a property. A value indicating that this member is a property. Gets a value that identifies a metadata element. A value which, in combination with , uniquely identifies a metadata element. Gets the module in which the type that declares the member represented by the current is defined. The in which the type that declares the member represented by the current is defined. Gets the name of the current member. A containing the name of this member. Gets the type of this property. The type of this property. Gets the class object that was used to obtain this instance of MemberInfo. The Type object through which this MemberInfo object was obtained. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. Returns an array whose elements reflect the public and, if specified, non-public get, set, and other accessors of the property reflected by the current instance. Indicates whether non-public methods should be returned in the MethodInfo array. true if non-public methods are to be included; otherwise, false. An array of objects whose elements reflect the get, set, and other accessors of the property reflected by the current instance. If nonPublic is true, this array contains public and non-public get, set, and other accessors. If nonPublic is false, this array contains only public get, set, and other accessors. If no accessors with the specified visibility are found, this method returns an array with zero (0) elements. Returns a literal value associated with the property by a compiler. An that contains the literal value associated with the property. If the literal value is a class type with an element value of zero, the return value is null. When overridden in a derived class, returns an array containing all the custom attributes. Specifies whether to search this member's inheritance chain to find the attributes. An array that contains all the custom attributes, or an array with zero elements if no attributes are defined. When overridden in a derived class, returns an array of custom attributes identified by . The type of attribute to search for. Only attributes that are assignable to this type are returned. Specifies whether to search this member's inheritance chain to find the attributes. An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied. When overridden in a derived class, returns the public or non-public get accessor for this property. Indicates whether a non-public get accessor should be returned. true if a non-public accessor is to be returned; otherwise, false. A MethodInfo object representing the get accessor for this property, if nonPublic is true. Returns null if nonPublic is false and the get accessor is non-public, or if nonPublic is true but no get accessors exist. Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. A hash code for the current . When overridden in a derived class, returns an array of all the index parameters for the property. An array of type ParameterInfo containing the parameters for the indexes. Returns an array of types representing the optional custom modifiers of the property. An array of objects that identify the optional custom modifiers of the current property, such as or . Returns a literal value associated with the property by a compiler. An that contains the literal value associated with the property. If the literal value is a class type with an element value of zero, the return value is null. Returns an array of types representing the required custom modifiers of the property. An array of objects that identify the required custom modifiers of the current property, such as or . When overridden in a derived class, returns the set accessor for this property. Indicates whether the accessor should be returned if it is non-public. true if a non-public accessor is to be returned; otherwise, false. Value Condition A object representing the Set method for this property. The set accessor is public.-or- nonPublic is true and the set accessor is non-public. nullnonPublic is true, but the property is read-only.-or- nonPublic is false and the set accessor is non-public.-or- There is no set accessor. When overridden in a derived class, returns the value of a property having the specified binding, index, and CultureInfo. The object whose property value will be returned. The invocation attribute. This must be a bit flag from BindingFlags : InvokeMethod, CreateInstance, Static, GetField, SetField, GetProperty, or SetProperty. A suitable invocation attribute must be specified. If a static member is to be invoked, the Static flag of BindingFlags must be set. An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If binder is null, the default binder is used. Optional index values for indexed properties. This value should be null for non-indexed properties. The CultureInfo object that represents the culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the CultureInfo.Parent method will be called successively in search of a match. If this value is null, the CultureInfo is obtained from the CultureInfo.CurrentUICulture property. The property value for obj. Returns the value of the property with optional index values for indexed properties. The object whose property value will be returned. Optional index values for indexed properties. This value should be null for non-indexed properties. The property value for the obj parameter. When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member. The Type object to which the custom attributes are applied. Specifies whether to search this member's inheritance chain to find the attributes. true if one or more instance of attributeType is applied to this member; otherwise false. When overridden in a derived class, sets the property value for the given object to the given value. The object whose property value will be returned. The new value for this property. The invocation attribute. This must be a bit flag from : InvokeMethod, CreateInstance, Static, GetField, SetField, GetProperty, or SetProperty. A suitable invocation attribute must be specified. If a static member is to be invoked, the Static flag of BindingFlags must be set. An object that enables the binding, coercion of argument types, invocation of members, and retrieval of objects through reflection. If binder is null, the default binder is used. Optional index values for indexed properties. This value should be null for non-indexed properties. The object that represents the culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the CultureInfo.Parent method will be called successively in search of a match. If this value is null, the CultureInfo is obtained from the CultureInfo.CurrentUICulture property. Sets the value of the property with optional index values for index properties. The object whose property value will be set. The new value for this property. Optional index values for indexed properties. This value should be null for non-indexed properties. Returns a that represents the current . A that represents the current . Represents a whose native definition could not be resolved so we fall back on the wrapper. Gets the underlying reflection adapter. Gets the in which the type is declared. For generic types, gets the in which the generic type is defined. An instance that describes the assembly containing the current type. For generic types, the instance describes the assembly that contains the generic type definition, not the assembly that creates and uses a particular constructed type. Gets the assembly-qualified name of the , which includes the name of the assembly from which the was loaded. The assembly-qualified name of the , which includes the name of the assembly from which the was loaded, or null if the current instance represents a generic type parameter. Gets the type from which the current directly inherits. The from which the current directly inherits, or null if the current Type represents the class. Gets a value indicating whether the current object has type parameters that have not been replaced by specific types. true if the object has type parameters for which specific types have not been supplied; otherwise, false. Gets a that represents the declaring method, if the current represents a type parameter of a generic method. If the current represents a type parameter of a generic method, a that represents declaring method; otherwise, null. Gets the class that declares this member. The Type object for the class that declares this member. If the type is a nested type, this property returns the enclosing type. Gets the fully qualified name of the , including the namespace of the but not the assembly. A string containing the fully qualified name of the , including the namespace of the but not the assembly, or null if the current instance represents a generic type parameter. Gets the GUID associated with the . The GUID associated with the . Gets a combination of flags that describe the covariance and special constraints of the current generic type parameter. A bitwise combination of values that describes the covariance and special constraints of the current generic type parameter. Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter, when the object represents a type parameter of a generic type or a generic method. The position of a type parameter in the type parameter list of the generic type or method that defines the parameter. Position numbers begin at 0. Gets a value indicating whether the current represents a type parameter in the definition of a generic type or method. true if the object represents a type parameter of a generic type definition or generic method definition; otherwise, false. Gets a value indicating whether the current type is a generic type. true if the current type is a generic type; otherwise, false. Gets a value indicating whether the current represents a generic type definition, from which other generic types can be constructed. true if the object represents a generic type definition; otherwise, false. Gets a value indicating that this member is a type or a nested type. A value indicating that this member is a type or a nested type. Gets a value that identifies a metadata element. A value which, in combination with , uniquely identifies a metadata element. Gets the module (the DLL) in which the current is defined. The name of the module in which the current is defined. Gets the name of the current member. A containing the name of this member. Gets the namespace of the . The namespace of the , or null if the current instance represents a generic parameter. Gets the class object that was used to obtain this member. The Type object through which this MemberInfo object was obtained. Gets a that describes the layout of the current type. Gets a that describes the gross layout features of the current type. Gets the handle for the current . The handle for the current . Indicates the type provided by the common language runtime that represents this type. The underlying system type for the . Determines if the underlying system type of the current is the same as the underlying system type of the specified . The whose underlying system type is to be compared with the underlying system type of the current . true if the underlying system type of o is the same as the underlying system type of the current ; otherwise, false. This method also returns false if the object specified by the o parameter is not a Type. Gets the number of dimensions in an . An containing the number of dimensions in the current Type. When overridden in a derived class, implements the property and gets a bitmask indicating the attributes associated with the . A object representing the attribute set of the . When overridden in a derived class, searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. A object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.-or- null, to use the . The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and the stack is cleaned up. An array of objects representing the number, order, and type of the parameters for the constructor to get.-or- An empty array of the type (that is, Type[] types = new Type[0]) to get a constructor that takes no parameters. An array of objects representing the attributes associated with the corresponding element in the types array. The default binder does not process this parameter. A object representing the constructor that matches the specified requirements, if found; otherwise, null. When overridden in a derived class, searches for the constructors defined for the current , using the specified BindingFlags. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. An array of objects representing all constructors defined for the current that match the specified binding constraints, including the type initializer if it is defined. Returns an empty array of type if no constructors are defined for the current , if none of the defined constructors match the binding constraints, or if the current represents a type parameter in the definition of a generic type or generic method. When overridden in a derived class, returns an array containing all the custom attributes. Specifies whether to search this member's inheritance chain to find the attributes. An array that contains all the custom attributes, or an array with zero elements if no attributes are defined. When overridden in a derived class, returns an array of custom attributes identified by . The type of attribute to search for. Only attributes that are assignable to this type are returned. Specifies whether to search this member's inheritance chain to find the attributes. An array of custom attributes applied to this member, or an array with zero (0) elements if no attributes have been applied. Searches for the members defined for the current whose is set. An array of objects representing all default members of the current .-or- An empty array of type , if the current does not have default members. When overridden in a derived class, returns the of the object encompassed or referred to by the current array, pointer or reference type. The of the object encompassed or referred to by the current array, pointer, or reference type, or null if the current is not an array or a pointer, or is not passed by reference, or represents a generic type or a type parameter in the definition of a generic type or generic method. When overridden in a derived class, returns the object representing the specified event, using the specified binding constraints. The containing the name of an event which is declared or inherited by the current . A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. The object representing the specified event which is declared or inherited by the current , if found; otherwise, null. When overridden in a derived class, searches for events that are declared or inherited by the current , using the specified binding constraints. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. An array of objects representing all events which are declared or inherited by the current that match the specified binding constraints.-or- An empty array of type , if the current does not have events, or if none of the events match the binding constraints. Searches for the specified field, using the specified binding constraints. The containing the name of the data field to get. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. A object representing the field that matches the specified requirements, if found; otherwise, null. When overridden in a derived class, searches for the fields defined for the current , using the specified binding constraints. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. An array of objects representing all fields defined for the current that match the specified binding constraints.-or- An empty array of type , if no fields are defined for the current , or if none of the defined fields match the binding constraints. Returns an array of objects that represent the type arguments of a generic type or the type parameters of a generic type definition. An array of objects that represent the type arguments of a generic type. Returns an empty array if the current type is not a generic type. Returns an array of objects that represent the constraints on the current generic type parameter. An array of objects that represent the constraints on the current generic type parameter. Returns a object that represents a generic type definition from which the current generic type can be constructed. A object representing a generic type from which the current type can be constructed. Returns the hash code for this instance. An containing the hash code for this instance. When overridden in a derived class, searches for the specified interface, specifying whether to do a case-sensitive search. The containing the name of the interface to get. For generic interfaces, this is the mangled name. true to perform a case-insensitive search for name.-or- false to perform a case-sensitive search for name. A object representing the interface with the specified name, implemented or inherited by the current , if found; otherwise, null. Returns an interface mapping for the specified interface type. The of the interface of which to retrieve a mapping. An object representing the interface mapping for interfaceType. When overridden in a derived class, gets all the interfaces implemented or inherited by the current . An array of objects representing all the interfaces implemented or inherited by the current .-or- An empty array of type , if no interfaces are implemented or inherited by the current . Searches for the specified members of the specified member type, using the specified binding constraints. The containing the name of the members to get. The value to search for. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return an empty array. An array of objects representing the public members with the specified name, if found; otherwise, an empty array. When overridden in a derived class, searches for the members defined for the current , using the specified binding constraints. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. An array of objects representing all members defined for the current that match the specified binding constraints.-or- An empty array of type , if no members are defined for the current , or if none of the defined members match the binding constraints. When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention. The containing the name of the method to get. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. A object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.-or- null, to use the . The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and what process cleans up the stack. An array of objects representing the number, order, and type of the parameters for the method to get.-or- An empty array of the type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.-or- null. If types is null, arguments are not matched. An array of objects representing the attributes associated with the corresponding element in the types array. The default binder does not process this parameter. A object representing the method that matches the specified requirements, if found; otherwise, null. When overridden in a derived class, searches for the methods defined for the current , using the specified binding constraints. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. An array of objects representing all methods defined for the current that match the specified binding constraints.-or- An empty array of type , if no methods are defined for the current , or if none of the defined methods match the binding constraints. When overridden in a derived class, searches for the specified nested type, using the specified binding constraints. The string containing the name of the nested type to get. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. A object representing the nested type that matches the specified requirements, if found; otherwise, null. When overridden in a derived class, searches for the types nested within the current , using the specified binding constraints. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. An array of objects representing all the types nested within the current that match the specified binding constraints.-or- An empty array of type , if no types are nested within the current , or if none of the nested types match the binding constraints. When overridden in a derived class, searches for the properties of the current , using the specified binding constraints. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. An array of objects representing all properties of the current that match the specified binding constraints.-or- An empty array of type , if the current does not have properties, or if none of the properties match the binding constraints. When overridden in a derived class, searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints. The containing the name of the property to get. A bitmask comprised of one or more that specify how the search is conducted.-or- Zero, to return null. A object that defines a set of properties and enables binding, which can involve selection of an overloaded member, coercion of argument types, and invocation of a member through reflection.-or- null, to use the . The return type of the property. An array of objects representing the number, order, and type of the parameters for the indexed property to get.-or- An empty array of the type (that is, Type[] types = new Type[0]) to get a property that is not indexed. An array of objects representing the attributes associated with the corresponding element in the types array. The default binder does not process this parameter. A object representing the property that matches the specified requirements, if found; otherwise, null. When overridden in a derived class, implements the property and determines whether the current encompasses or refers to another type; that is, whether the current is an array, a pointer, or is passed by reference. true if the is an array, a pointer, or is passed by reference; otherwise, false. When overridden in a derived class, invokes the specified member, using the specified binding constraints and matching the specified argument list, modifiers and culture. The containing the name of the constructor, method, property, or field member to invoke.-or- An empty string ("") to invoke the default member. -or-For IDispatch members, a string representing the DispID, for example "[DispID=3]". A bitmask comprised of one or more that specify how the search is conducted. The access can be one of the BindingFlags such as Public, NonPublic, Private, InvokeMethod, GetField, and so on. The type of lookup need not be specified. If the type of lookup is omitted, BindingFlags.Public | BindingFlags.Instance will apply. A object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.-or- null, to use the . The on which to invoke the specified member. An array containing the arguments to pass to the member to invoke. An array of objects representing the attributes associated with the corresponding element in the args array. A parameter's associated attributes are stored in the member's signature. The default binder does not process this parameter. The object representing the globalization locale to use, which may be necessary for locale-specific conversions, such as converting a numeric String to a Double.-or- null to use the current thread's . An array containing the names of the parameters to which the values in the args array are passed. An representing the return value of the invoked member. When overridden in a derived class, implements the property and determines whether the is an array. true if the is an array; otherwise, false. Determines whether an instance of the current can be assigned from an instance of the specified Type. The Type to compare with the current Type. true if c and the current Type represent the same type, or if the current Type is in the inheritance hierarchy of c, or if the current Type is an interface that c implements, or if c is a generic type parameter and the current Type represents one of the constraints of c. false if none of these conditions are true, or if c is null. When overridden in a derived class, implements the property and determines whether the is passed by reference. true if the is passed by reference; otherwise, false. When overridden in a derived class, implements the property and determines whether the is a COM object. true if the is a COM object; otherwise, false. When overridden in a derived class, indicates whether one or more instance of attributeType is applied to this member. The Type object to which the custom attributes are applied. Specifies whether to search this member's inheritance chain to find the attributes. true if one or more instance of attributeType is applied to this member; otherwise false. Determines whether the specified object is an instance of the current . The object to compare with the current Type. true if the current Type is in the inheritance hierarchy of the object represented by o, or if the current Type is an interface that o supports. false if neither of these conditions is the case, or if o is null, or if the current Type is an open generic type (that is, returns true). When overridden in a derived class, implements the property and determines whether the is a pointer. true if the is a pointer; otherwise, false. When overridden in a derived class, implements the property and determines whether the is one of the primitive types. true if the is one of the primitive types; otherwise, false. Determines whether the class represented by the current derives from the class represented by the specified . The Type to compare with the current Type. true if the Type represented by the c parameter and the current Type represent classes, and the class represented by the current Type derives from the class represented by c; otherwise, false. This method also returns false if c and the current Type represent the same class. Returns a object representing a one-dimensional array of the current type, with a lower bound of zero. A object representing a one-dimensional array of the current type, with a lower bound of zero. Returns a object representing an array of the current type, with the specified number of dimensions. The number of dimensions for the array. A object representing an array of the current type, with the specified number of dimensions. Returns a object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic). A object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic). Substitutes the elements of an array of types for the type parameters of the current generic type definition and returns a object representing the resulting constructed type. An array of types to be substituted for the type parameters of the current generic type. A representing the constructed type formed by substituting the elements of typeArguments for the type parameters of the current generic type. Returns a object that represents a pointer to the current type. A object that represents a pointer to the current type. Returns a String representing the name of the current Type. A representing the name of the current . Helpers for working with . This is a and so cannot be inherited or instantiated. Gets the XML documentation resolver. Gets the XML documentation id of a member. The member The XML documentation id of the member Thrown if is null Gets the XML documentation for a member. The member The XML documentation for the member, or null if none available Thrown if is null A type substitution specifies how generic parameters are replaced by other types. It is used by implementors of when returning types that may be represented as generic parameters. Gets the empty type substitution. This field is read-only. Returns true if the type substitution does not contain any replacements. Applies a type substitution to the specified type. The type to substitute The substituted type Thrown if is null Applies a type substitution to the specified generic parameter. The generic parameter to substitute The substituted type Thrown if is null Applies a type substitution to the specified list of types. The types to substitute The substituted types Thrown if is null Returns a new substitution formed by composing this substitution with the specified one. That is to say, each replacement type in this substitution is replaced as described in the specified substitution. The substitution to compose The new substitution Returns true if this substitution does not contain any of the specified generic parameters. The generic parameters True if none of the generic parameters are in the substitution Thrown if is null Indicates whether this instance and a specified object are equal. true if obj and this instance are the same type and represent the same value; otherwise, false. Indicates whether this instance and a specified object are equal. Another object to compare to. true if obj and this instance are the same type and represent the same value; otherwise, false. Returns a new substitution with the specified generic parameters replaced by their respective generic arguments. The generic parameters The generic arguments Thrown if or is null or contain nulls Thrown if does not have the same number of elements as Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Compares two static type substitutions for equality. The first substitution The second substitution True if the substitutions are equal Compares two static type substitutions for inequality. The first substitution The second substitution True if the substitutions are equal Resolves debug symbols associated with members. Gets the location of a source file that contains the declaration of a method, or null if not available. The path of the assembly that contains the method The method token The source code location, or null if unknown Thrown if is null This extension of is provided to enable the resolution of a type with . Resolves the wrapper to its native reflection target within the scope of the specified method. The method that is currently in scope, or null if none. This parameter is used when resolving types that are part of the signature of a generic method so that generic method arguments can be handled correctly. If true, throws an exception if the target could not be resolved, otherwise returns a reflection object that represents an unresolved member which may only support a subset of the usual operations The native reflection target Thrown if the target cannot be resolved Resolves members to XML documentation contents. Gets the XML documentation for a member in an assembly. The assembly path The XML documentation id of the member The XML documentation for the member, or null if none available Thrown if or is null The default implementation of . Gets a resolver for resolving registered components by name. Creates a test runner. The name of the test runner factory, matched case-insensitively The test runner options The test runner An implementation of that uses a to create a test domain and manage test execution. Gets the test domain used by the runner. Gets the event dispatcher for the test runner. Gets or sets the test enumeration options. Gets or sets the test execution options. Gets the test model, or null if tests have not been built yet. Gets the currently loaded test package, or null if none has been loaded yet. Builds the test tree using the current . Populates accordingly. The progress monitor Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Loads a test package. The test package configuration The progress monitor Runs the tests. The progress monitor Unloads the test package. The progress monitor Event fired once completes. Event fired once completes. Event fired before begins doing work. Event fired when the value of has changed, such as when or . A for using different implementations of . Gets the human-readable description of the component. Gets the unique name of the component. Creates a test runner. The test runner options, not null The test runner Describes the result codes used by the application. This is a and so cannot be inherited or instantiated. The tests were canceled. This field is constant and read-only. Some tests failed. This field is constant and read-only. A fatal runtime exception occurred. This field is constant and read-only. Invalid arguments were supplied on the command-line. This field is constant and read-only. No tests were found This field is constant and read-only. The tests ran successfully or there were no tests to run. This field is constant and read-only. The type of exception thrown when the test runner or one of its supportive components like a test domain fails in an unrecoverable manner. It can happen that the test results will be lost or incomplete. Provides constant names for the standard test runner factories. This is a and so cannot be inherited or instantiated. Runs tests in an isolated AppDomain of the current process. This field is constant and read-only. Runs tests in an isolated process. This field is constant and read-only. Runs tests in the local AppDomain. This field is constant and read-only. The test launcher encapsulated the entire test execution lifecycle from start to finish and provides a simplified pattern for running tests. The lifecycle is as follows: Create the launcher.Set properties to specify the inputs and outputs of the test run.Run the tests all in one go.Optionally do something with the contents of the final report. By default, a new environment is established just before test execution begins and is disposed just afterwards. If you already have a environment, set the to null. You can also override the default that is created by setting the property. Gets a mutable list of custom objects that will be attached to the just prior to test execution then detached afterwards. The test runner fires events throughout the test execution lifecycle. Custom monitors can capture those events and perform real-time updates as required. Gets or sets whether to skip test execution. This option may be used to produce a report that contains test metadata for consumption by other tools. The default value is false. Controls whether the test runner will echo result to the as each test finishes. The default value is false. Gets or sets the test filter to apply. The default filter is an instance of . Thrown if is null Gets or sets the logger to use. The default logger is . Thrown if is null Gets or sets the progress monitor provider to use. The default provider is . Thrown if is null Gets or sets the path of the directory to which reports will be written. The default value is "" which causes reports to be written to the current directory. Thrown if is null Gets the mutable collection of options for the report formatters. Gets the mutable list of report formats to generate. Gets the test runner's report monitor. The report monitor fires events during test execution to allow test results to be retrieved incrementally as the test executes. Gets or sets a format string used to construct the name of report files (without the extension). Within the format string, {0} is replaced by the date and {1} by the time. The default value is "test-report-{0}-{1}". Thrown if is null Gets or sets the to use for automatically initializing the during test execution or null if the is already initialized. If this value if not null then the launcher will initialize the using this just prior to test execution and will automatically shut down the just afterwards. The default value is null which assumes that the is already initialized. Gets or sets whether to show the reports after the test run finishes. The default value is false. Gets or sets the test package. Thrown if is null Specifies the name of a to use for constructing the at test execution time. The default value is . Thrown if is null Gets the mutable collection of options for the test runner. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Method to generate reports in the specified formats for a result set. The test results to use The report manager Runs the test package as configured. If is non-null, initializes the for the duration of this method then shuts it down automatically before returning. An integer representing the result of the execution. Shows the report documents enumerated in the launcher result. The result Thrown if is null Contains the result of a complete test run. Gets the test report. Gets the full paths of the formatted report documents. The full paths of the formatted report documents Gets the result code. A short summary with the number of test that passed, failed and so on. The statistics of the execution. Adds a new report document path. The report document path Thrown if is null Sets the result code of the result. The new result code Provides helper functions for test runner tools. This is a and so cannot be inherited or instantiated. Presents a generated report to the user using the default viewing application for the report's document type. The path of the report A test runner provides operations for loading test projects, enumerating templates and tests, running tests, and generating reports. Gets the event dispatcher for the test runner. Gets or sets the test enumeration options. Thrown if is null Gets or sets the test execution options. Thrown if is null Gets the test model, or null if tests have not been built yet. Gets the currently loaded test package, or null if none has been loaded yet. Builds the test tree using the current . Populates accordingly. The progress monitor Thrown if is null Loads a test package. The test package configuration The progress monitor Thrown if or is null Runs the tests. The progress monitor Thrown if is null Unloads the test package. The progress monitor Thrown if is null Event fired once completes. Event fired once completes. Event fired before begins doing work. Event fired when the value of has changed, such as when or . A test tunner factory is a service that creates an given a set of options. Each factory has a name which is used by to select the particular factory to use for a given test run. Creates a test runner. The test runner options, not null The test runner A test runner manager enumerates the names of the services that are available and provides a mechanism for creating instances. Gets a resolver for resolving registered components by name. Creates a test runner. The name of the test runner factory, matched case-insensitively The test runner options The test runner Thrown if or is null Base implementation of a test domain. This class is and so cannot be instantiated. Gets the test model, or null if tests have not been built yet. Gets the currently loaded test package, or null if none. Populates the test model. The test enumeration options The progress monitor Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Internal implementation of . The test enumeration options The progress monitor with 1 work unit to do The test model data Internal implementation of . Internal implementation of . The test package configuration The progress monitor with 1 work unit to do The test package data Internal implementation of . The test execution options The test listener for monitoring test execution The progress monitor with 1 work unit to do Internal implementation of . The progress monitor with 1 work unit to do Loads a test package into the test domain. The test package configuration to load The progress monitor Runs the tests. The test execution options The test listener for monitoring test execution The progress monitor Throws if the domain has been disposed. Unloads the current test package so that the test domain can be recycled for use with a different test package. The progress monitor A host test domain runs tests within a that is configured as needed to provide a suitable runtime environment for each test package. The host is recreated each time a new test package is loaded. The behavior of the test domain may be augmented by registering instances to fine-tune how the host is configured as needed. Adds a contributor to the test domain. The contributor Connects to the remote test domain and returns a proxy for the remote instance. The test package configuration The progress monitor with 1 work unit to do A proxy for the remote test domain instance Disconnects from the remote test domain. The progress monitor with 1 work unit to do A factory for that automatically applies all registered s. Creates a test domain. The test domain A local implementation of a test domain that performs all processing with the current app-domain including loading assemblies. Internal implementation of . The test enumeration options The progress monitor with 1 work unit to do The test model data Internal implementation of . Internal implementation of . The test package configuration The progress monitor with 1 work unit to do The test package data Internal implementation of . The test execution options The test listener for monitoring test execution The progress monitor with 1 work unit to do Internal implementation of . The progress monitor with 1 work unit to do A factory for . Creates a test domain. The test domain An implementation of designed to access services provided by a remote instance. The implementation establishes a remote connection when a project is loaded and releases it when a project is unloaded or when the domain is disposed. This class is and so cannot be instantiated. Gets a proxy for the remote test domain instance. Internal implementation of . The test enumeration options The progress monitor with 1 work unit to do The test model data Connects to the remote test domain and returns a proxy for the remote instance. The test package configuration The progress monitor with 1 work unit to do A proxy for the remote test domain instance Disconnects from the remote test domain. The progress monitor with 1 work unit to do Internal implementation of . Internal implementation of . The test package configuration The progress monitor with 1 work unit to do The test package data Internal implementation of . The test execution options The test listener for monitoring test execution The progress monitor with 1 work unit to do Internal implementation of . The progress monitor with 1 work unit to do A host test domain contribution interacts with a to alter how the is configured just prior to loading a . An example of a contribution is one that registers additional bootstrap assemblies with binding redirects for use inside the host. Applies contributions to the prior to the creation of an instance just prior to loading a . The host setup, never null The test package configuration, never null The test domain interface provides services for interacting with tests hosted in an isolated domain (presumably in its own AppDomain). Where the domain is hosted is irrelvant. It might be in an AppDomain within the same process or it might reside in another process altogether. Test domain implementations should be designed to permit interoperability of the host application with multiple frameworks. The test domain API is designed to limit the number of round-trips required. Moreover, all objects that pass through the API are serializable by value or can be marshalled using simple proxies. This design facilitates remote operation and cross-version compatibility. Test domain implementations based on remote calls should implement the test domain as a proxy over the real remote interface rather than, for instance, subclassing and supplying the application with a transparent proxy to be used directly. The test domain implementation should protect the main application from configuration concerns and failure conditions resulting from the use of remoting internally. Calling should never throw an exception. Gets the test model, or null if tests have not been built yet. Thrown if an error occurs Thrown if the domain has been disposed Gets the currently loaded test package, or null if none. Thrown if an error occurs Thrown if the domain has been disposed Populates the test model. The test enumeration options The progress monitor Thrown if or is null Thrown if an error occurs Thrown if the domain has been disposed Thrown if has not been called. Loads a test package into the test domain. The test package configuration to load The progress monitor Thrown if or is null Thrown if an error occurs Thrown if the domain has been disposed Runs the tests. The test execution options The test listener for monitoring test execution The progress monitor Thrown if , or is null Thrown if has not been called. Unloads the current test package so that the test domain can be recycled for use with a different test package. The progress monitor Thrown if is null Thrown if an error occurs Thrown if the domain has been disposed A test domain factory. Creates a test domain. The test domain Sets up console I/O streams. Sets up the test environment. Returns an object that when disposed causes the test environment to be torn down A contextual log text writer messages to a named log stream in the log associated with the test execution context that is active at the time each message is written. This class cannot be inherited. When overridden in a derived class, returns the in which the output is written. The Encoding in which the output is written. Gets or sets the line terminator string used by the current TextWriter. The line terminator string for the current TextWriter. Writes a string to the text stream. The string to write. Writes a character to the text stream. The character to write to the text stream. Writes a subarray of characters to the text stream. The character array to write data from. Starting index in the buffer. The number of characters to write. A contextual log trace listener messages to a named log stream in the log associated with the test execution context that is active at the time each message is written. This class cannot be inherited. Gets a value indicating whether the trace listener is thread safe. true if the trace listener is thread safe; otherwise, false. The default is false. When overridden in a derived class, writes the specified message to the listener you create in the derived class. A message to write. When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. A message to write. Default implementation of a test harness. Gets the test model, or null if the test model has not been built. Gets the test package loaded in the test harness, or null if none. Adds a test environment. The test framework to add Adds a test framework. The test framework to add Populates the test model. The test enumeration options The progress monitor Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Loads the test package into the test harness. The test package configuration The progress monitor Runs the tests. The test execution options The test listener for monitoring test execution The progress monitor The default test harness factory creates a . Creates a test harness and associates it with its test harness contributors, if any. The test harness Sets up trace listeners. Sets up the test environment. Returns an object that when disposed causes the test environment to be torn down Logs unhandled exceptions instead of killing the AppDomain. Sets up the test environment. Returns an object that when disposed causes the test environment to be torn down The test environment configures global behavior related to preparing the test execution environment for running tests and tearing them down. Sets up the test environment. Returns an object that when disposed causes the test environment to be torn down The test harness manages the lifecycle of test enumeration and execution. Contributors (such as test framework adapters) may attach event handlers to extend or modify the behavior at distinct points in the lifecycle. A new test harness instance is created when a test project is loaded into memory to serve as the ultimate container for all of its related resources. Gets the test model, or null if the test model has not been built. Gets the test package loaded in the test harness, or null if none. Adds a test environment. The test framework to add Thrown if is null Adds a test framework. The test framework to add Thrown if is null Populates the test model. The test enumeration options The progress monitor Thrown if or is null Thrown if has not been called yet Loads the test package into the test harness. The test package configuration The progress monitor Thrown if or is null Thrown if has already been called once because this interface does not support unloading packages except by disposing the harness and recreating it Runs the tests. The test execution options The test listener for monitoring test execution The progress monitor Thrown if , or is null Thrown if has not been called yet A test harness factory. Creates a test harness and associates it with its test harness contributors, if any. The test harness Base implementation of . This class is and so cannot be instantiated. Gets the runner to which the monitor has been bound. Attaches the monitor to a test runner. The test runner Detaches the monitor. Called when the monitor is attached to allow subclasses to perform any necessary processing. Called when the monitor is detached to allow subclasses to perform any necessary processing. Monitors events and writes debug messages to a logger. Called when the monitor is attached to allow subclasses to perform any necessary processing. Called when the monitor is detached to allow subclasses to perform any necessary processing. A log monitor writes a summary of test execution progress to an so the user can monitor what's going on. Passing tests are recorded with severity , warnings are recorded with severity and failures are recorded with severity . Called when the monitor is attached to allow subclasses to perform any necessary processing. Called when the monitor is detached to allow subclasses to perform any necessary processing. A report monitor tracks events and builds a . The report monitor also provides reinterpreted events regarding the lifecycle of tests in terms of report elements that have been generated. For example, to obtain the result associated with a test failure, a test runner can listen for the event which will include the test result as part of its . Gets the generated report. Called when the monitor is attached to allow subclasses to perform any necessary processing. Called when the monitor is detached to allow subclasses to perform any necessary processing. Sets to a fresh instance so that the monitor can be reused as part of a new test run while preserving the report that was previously created. The event fired when a test step is finished. The event fired when a test step transitions between phases. The event fired when a test step is starting. Provides report information for a test step that is beginning or ending or transitioning between phases. Gets the current test step's lifecycle phase, or an empty string if starting or ending. Gets the report. Gets the test data of the test that contains the test step. Gets the test step run element. Gets the kind of step described using the metadata key. The step kind A monitor listens to events on the to which it is attached and provides some service. Attaches the monitor to a test runner. The test runner Thrown if is null Detaches the monitor. Filter record for Gallio project. A string representation of the filter. The name of the filter. Gallio project container. This class cannot be inherited. A list of test filters for the project. The test package. The default implementation of . Gets a resolver for resolving registered components by name. Gets a report reader to load a report from the specified container. The report container The report reader Gets a report writer to save or format a report to the specified container. The report The report container The report writer Formats the report indicated by the report writer. The report writer The formatter name Custom options for the report formatter The progress monitor Default implementation of a report reader. Gets the report container. Loads the report from an XML file. The path of the saved report is constructed by appending the extension ".xml" to the container's . If true, loads attachment contents in referenced content files if they were not embedded otherwise the attachment contents are not loaded (but may be loaded later using ). The progress monitor The loaded report Loads referenced report attachments from the container. This method has the effect of populating the contents of all nodes in the report that have non-null . The report whose attachments are to be loaded The progress monitor Default implementation of a report writer. Gets the report being generated. Gets the report container. Gets the paths of all report documents that have been generated within the report container. Report documents are the primary files when reports are formatted or saved such as an XML file, a Text file, or the main HTML file that contains the body of the report. Adds the path of a report document that has been created within the report container. The document path Saves the report as an XML file. The saved report XML file is automatically added to the list. The path of the saved report is constructed by appending the extension ".xml" to the container's . The content disposition to use for all attachments. If the content disposition is then this method will automatically call to save the attachments. The progress monitor Saves all report attachments as individual content files to the container. The convention for attachments is to save them in a directory with the same name as the container's arranged in folders first by test id then by step id then by attachment name. For example: "Report\{testid}\{stepid}\attachment.jpg". The progress monitor Serializes the report to XML. The XML writer The content disposition to use for all attachments An Xml-serializable test execution log. This class cannot be inherited. Gets the list of attachments, not null. Gets the list of streams, not null. Used for Xml-serialization. Gets a stream by name. The stream name The stream or null if not found An Xml-serializable attachment. The contents of the attachment are embedded in the execution log according to their encoding. Text is directly embedded into the Xml whereas binary attachments are base 64 encoded. This is a and so cannot be inherited or instantiated. Gets or sets the content disposition of the attachment which indicates how the attachment has been stored. Gets or sets the path of the attachment contents relative to the directory that contains the Xml serialized report, or null if the content is embedded. Gets or sets the content type of the attachment as a MIME type, not null. Thrown if is null Gets or sets the encoding of the attachment. This value specifies how the attachment is represented in Xml. Returns true if the attachment is textual, false if it is binary. Gets or sets the name of the attachment, not null. Thrown if is null Gets or sets the attachment content serialized as text (including Base64 attachments), possibly null if none. Creates a binary attachment. The attachment name The content type The binary data The attachment Thrown if , or is null Creates a text attachment. The attachment name The content type The text The attachment Thrown if , or is null Gets the binary contents of a binary attachment. The bytes, or null if not available Thrown if the attachment is not binary Gets the text contents of a text attachment. The text, or null if not available Thrown if the attachment is not textual Loads the attachment contents from a stream. The stream Thrown if is null If the attachment could not be loaded Saves the attachment contents to a stream. The stream The preferred encoding to use if writing text, or null if none Thrown if is null If the attachment could not be saved Thrown if the attachment contents are not available An xml-serializable execution log stram. This class cannot be inherited. Gets or sets the body of the log stream, not null. Thrown if is null Gets or sets the name of the log stream, not null. Thrown if is null Formats the stream using a . The formatted text An Xml-serializable execution log body. Contains all other tags within a log stream. This class cannot be inherited. Invokes the appropriate visitor method for this tag type. The visitor Abstract class of Xml-serializable execution log container tags. This class is and so cannot be instantiated. Gets the list of nested contents of this tag. Invokes the appropriate visitor method each element contained within this tag. The visitor An Xml-serializable tag for embedding an attachment within an execution log. This class cannot be inherited. Gets or sets the name of the referenced attachment to embed, not null. Thrown if is null Invokes the appropriate visitor method for this tag type. The visitor An Xml-serializable container for a section with an identifying section name. This tag is used to delineate sections within an execution log stream. This class cannot be inherited. Gets or sets the section name, not null. Thrown if is null Invokes the appropriate visitor method for this tag type. The visitor A tag is an Xml-serializable object that is included in the body of an execution log stream and describes its contents. This class is and so cannot be instantiated. Invokes the appropriate visitor method for this tag type. The visitor Formats the tag using a . The formatted text Formats instances to plain text by recursively concatenating the text of all contained elements. Sections and embedded attachments introduce line-breaks within the text but are otherwise ignored. This class cannot be inherited. Gets the text that has been built. Visits a body tag. The tag to visit Visits an embedded attachment tag. The tag to visit Visits a section tag. The tag to visit True if the visitor should be called again for each child of the section tag Visits a text tag. The tag to visit An Xml-serializable block of preformatted text to include in an execution log stream. This class cannot be inherited. Gets or sets the text within the tag, not null. Thrown if is null Invokes the appropriate visitor method for this tag type. The visitor Writes execution logs to an Xml-serializable format. This class cannot be inherited. Gets the execution log under construction. A file-system based representation of a report container that uses ordinary files and folders to store report contents. Gets the full-path of the report directory. Gets the base name of the report. Logical files and folders associated with the report all begin with this name and are disambiguated by extension. Deletes the entire contents of the report in all of its formats. Replaces invalid characters in a file or directory name with underscores and trims it if it is too long. The file or directory name The encoded file or directory name Opens a report file for reading. The relative path of the report file within the container The stream Opens a report file for writing, overwriting any previous file with the same name. It is not necessary to create "directories" within the container. They are automatically created when new files are opened for writing within them. The path of the report file The content type of the file, or null if not specified The text encoding of the file, or null if not specified or if the file is binary The stream Summarizes the execution of a test package for reporting purposes. This class cannot be inherited. Gets or sets the time when the package run ended. Gets or sets the root test step run, or null if the root test has not run. Gets or sets the time when the package run started. Gets or sets the statistics for the package run. Thrown if is null Recursively enumerates all test step runs. Collects summary statistics about the execution of a test package for reporting purposes. This class cannot be inherited. Gets or sets the number of assertions evaluated. Gets or sets the duration of the package run in seconds. Gets or sets the number of test cases that ran and failed. Gets or sets the number of test cases that ran and were inconclusive. Gets or sets the test outcome summaries. Thrown if is null Gets or sets the number of test cases that ran and passed. Gets or sets the number of test cases that were run. Gets or sets the number of test cases that did not run. Gets or sets the total number of test steps. Gets or sets the total number of test cases. Formats a single line of text summarizing test case results. Gets the number of tests with the specified outcome. The outcome The number of tests with the specified outcome Merges statistics from a test step run, incrementing the relevant counters. The test step run Thrown if is null Ssets the number of tests with the specified outcomee. The outcome The count Thrown if is less than 0 A report includes a description of the test package, the model objects, the combined results of all test runs and summary statistics. This class cannot be inherited. Gets or sets the test package configuration for the report, or null if none. Gets or sets the package run information included in the report, or null if none. Gets or sets the test model for the report, or null if none. Utilities for working with . This is a and so cannot be inherited or instantiated. Recursively copies files and folders from the source path in the native file system to the destination path within the report container. The container The source file or directory path in the native file system The destination file or directory path in the report container Thrown if , or is null Describes the number of test cases with a particular . This class cannot be inherited. Gets or sets the number of test cases with the specified outcome. Gets or sets the outcome. Summarizes the execution of a single test step for reporting purposes. This class cannot be inherited. Gets the list of child step runs. Gets or sets the time when the test run ended. Gets or sets the execution log. Thrown if is null Gets or sets the test result from the run. Thrown if is null Gets or sets the time when the test run started. Gets or sets information about the step. Thrown if is null Visits an . Visits a body tag. The tag to visit Visits an embedded attachment tag. The tag to visit Visits a section tag. The tag to visit True if the visitor should be called again for each child of the section tag Visits a text tag. The tag to visit A report container is used to load or save the contents of a report. A report container consists of zero or more logical report files distinguished by extension and a content folder. The content folder holds attachment contents and format-specific resources. The definition of a report container is necessarily somewhat abstract. It is intended to allow the files associated with report rendered in multiple formats to coexist side by side unambiguously and without duplication of common attachment contents. Paths within reports are always specified relative to the root of the container with each path segment delimited by backslashes. The first path segment must be , optionally with an extra period-delimited extension. For example, if is "Report" then "Report.xml" and "Report/Contents.txt" are valid paths but "Bar" and "Report-NotAnExtension" are not. By convention report content such as attachments and images are stored in a folder with the same name as . Gets the base name of the report. Logical files and folders associated with the report all begin with this name and are disambiguated by extension. Deletes the entire contents of the report in all of its formats. Thrown if an I/O error occurs Replaces invalid characters in a file or directory name with underscores and trims it if it is too long. The file or directory name The encoded file or directory name Thrown if is null Opens a report file for reading. The relative path of the report file within the container The stream Thrown if is null Thrown if an I/O error occurs Opens a report file for writing, overwriting any previous file with the same name. It is not necessary to create "directories" within the container. They are automatically created when new files are opened for writing within them. The path of the report file The content type of the file, or null if not specified The text encoding of the file, or null if not specified or if the file is binary The stream Thrown if is null Thrown if an I/O error occurs A report formatter provides a strategy for formatting reports for human consumption. Formats the report indicated by the report writer. The report writer Custom options for the report formatter The progress monitor Thrown if , or is null The report manager provides services for manipulating reports. Gets a resolver for resolving registered components by name. Gets a report reader to load a report from the specified container. The report container The report reader Thrown if is null Gets a report writer to save or format a report to the specified container. The report The report container The report writer Thrown if or is null Formats the report indicated by the report writer. The report writer The formatter name Custom options for the report formatter The progress monitor Thrown if , , or is null Thrown if there is no formatter with the specified name A report writer provides services for loading a previously saved report from a . Gets the report container. Loads the report from an XML file. The path of the saved report is constructed by appending the extension ".xml" to the container's . If true, loads attachment contents in referenced content files if they were not embedded otherwise the attachment contents are not loaded (but may be loaded later using ). The progress monitor The loaded report Thrown if is null Loads referenced report attachments from the container. This method has the effect of populating the contents of all nodes in the report that have non-null . The report whose attachments are to be loaded The progress monitor Thrown if or is null A report writer provides services for formatting or saving a report to a . The writer tracks the paths of the report documents paths that are created within the report container. Likewise it remembers whether attachments have been saved so as to avoid redundantly resaving them when the same report is generated in multiple formats. Gets the report being generated. Gets the report container. Gets the paths of all report documents that have been generated within the report container. Report documents are the primary files when reports are formatted or saved such as an XML file, a Text file, or the main HTML file that contains the body of the report. Adds the path of a report document that has been created within the report container. The document path Saves the report as an XML file. The saved report XML file is automatically added to the list. The path of the saved report is constructed by appending the extension ".xml" to the container's . The content disposition to use for all attachments. If the content disposition is then this method will automatically call to save the attachments. The progress monitor Thrown is null Saves all report attachments as individual content files to the container. The convention for attachments is to save them in a directory with the same name as the container's arranged in folders first by test id then by step id then by attachment name. For example: "Report\{testid}\{stepid}\attachment.jpg". The progress monitor Thrown if is null Serializes the report to XML. The XML writer The content disposition to use for all attachments Thrown if is null Specifies how attachments are stored in Xml. The attachment content is not present. The attachment content is saved to a linked file indicated by . The attachment content is included inline as with a given . Specifies the Xml-encoding of an embedded execution log attachment. The attachment is encoded as a text string. The attachment is encoded as base 64 text string. Describes an exception that is to be reported. This class cannot be inherited. Gets the exception that occurred. Returns true if a second exception occurred while attempting to report a previous exception on the same thread. Gets the message associated with the exception. Gets the stack trace of the code that called to report the exception or null if not available. Adds a message that serves to describe the context in which the exception occurred. The will be augmented with these details. The correlation message to append Thrown if is null Formats a description of the exception to a string like: "Message\nException\nReported by: ReporterStackTrace". The formatted string Provides a few functions for working with and . This is a and so cannot be inherited or instantiated. Safely invokes each delegate in the invocation list of an event handler. Sends any exceptions thrown by the handler to . The event handler chain The sender The event arguments Safely invokes each delegate in the invocation list of an event handler. Sends any exceptions thrown by the handler to . The event handler chain The sender The event arguments Provides helper functions for manipulating s. This is a and so cannot be inherited or instantiated. Safely converts an exception to a string. This method protects the caller from unexpected failures that may occur while reporting an exception of untrusted origin. If an error occurs while converting the exception to a string, this method returns a generic description of the exception that can be used instead of the real thing. It can happen that converting an exception to a string produces a secondary exception because the method has been overridden or because the stack frames associated with the exception are malformed. For example, we observed one case of a being thrown while printing an exception because one of the stack frames referred to a dynamic method with incorrect metadata. The exception The string contents Thrown if is null Utilities for manipulating files. This is a and so cannot be inherited or instantiated. Makes an absolute path. The base directory for resolving relative paths, or null to use the current directory The path to canonicalize, or null if none The absolute path, or null if none Makes all paths in the list absolute. The base directory for resolving relative paths, or null to use the current directory The list of paths to canonicalize in place Recursively copies files and folders from the source path to the destination. The source file or directory path The destination file or directory path If true, overwrites existing files in the destination Thrown if or is null Recursively copies files and folders from the source path to the destination using an indirect mechanism to actually create a file or folder. The source file or directory path The destination file or directory path A delegate used to create a directory with a given destination directory path, or null to do nothing A delegate used to copy a source file to a given destination file path, or null to do nothing Thrown if or is null Copies the contents of a source stream to a destination stream. The source stream The destination stream Thrown if or is null Recursively deletes a file or directory. Does nothing if the file or directory does not exist. The path Replaces invalid characters in a file or directory name with underscores and trims it if it is too long. The file or directory name The encoded file or directory name Thrown if is null Gets the full path of the containing directory. The path The full path of the parent directory or null if it is at the root Thrown if is null Defines constants for commonly used mime types. This is a and so cannot be inherited or instantiated. Binary data. This field is constant and read-only. Cascading Style Sheet. This field is constant and read-only. GIF image. This field is constant and read-only. HTML. This field is constant and read-only. JavaScript This field is constant and read-only. MHTML web archive. This field is constant and read-only. Plain text data. This field is constant and read-only. PNG image. This field is constant and read-only. Well-formed XHTML. This field is constant and read-only. Xml data. This field is constant and read-only. Guesses the mime type given a well-known extension. The extension The mime type, or null if not known Thrown if is null This attribute prevents the compiler from inlining the associated method. When optimizations are enabled (as is typically the case in a Release build) simple method bodies may be inlined. Normally that is harmless however the inlining operation causes the stack trace to be incomplete. That may be significant when the object is used to obtain a reference to the calling method, for example. When overridden in a derived class, creates a permission object that can then be serialized into binary form and persistently stored along with the in an assembly's metadata. A serializable permission object. Provides utility functions for working with strings. This is a and so cannot be inherited or instantiated. Formats a character value as "'x'" or "'\n'" with support for escaped characters as a valid literal value. Encloses the char in single quotes ('). The character value to format The formatted character Gets a lowercase hexadecimal digit corresponding to the least significant nybble of the specified value. The value, only the last 4 bits of which are used The hexadecimal digit Formats a string value as ""abc\ndef"" with support for escaped characters as a valid literal value. Encloses the string in quotes ("). The string value to format The formatted string Escapes a character value as "x" or "\n". Unlike , does not enclose the literal in single quotes ('). The character value to format The unquoted char literal Escapes a string value such as "abc\ndef". Unlike , does not enclose the literal in quotes ("). The string value to format The unquoted string literal Truncates the string to the specified maximum length. Discards characters at the end of the string with indices greater than or equal to . The string to truncate The maximum length of the string to retain The truncated string If the string is longer than the specified maximum length, truncates it and appends an ellipsis mark ("..."). If the maximum length is less than or equal to 3, omits the ellipsis mark on truncation. The string to truncate The maximum length of the string to retain including the ellipsis mark when used The truncated string This class provides a mechanism for reporting unhandled exceptions when the infrastructure is otherwise unable to deal with them locally. The methods of this class should be considered as the last resort for reporting failures that might otherwise cause the system to crash. This is a and so cannot be inherited or instantiated. Returns true if there is at least one handler registered for . This property can be used to avoid duplicate exception reporting if some other system component has already registered a handler. Reports an unhandled exception. A message to explain how the exception was intercepted The unhandled exception Thrown if or is null Adds or removes an event handler that is notified when unhandled exceptions occur and is given a chance to add additional information the event about the context in which the exception occurred. Adds or removes an event handler that is notified when unhandled exceptions occur. A 64bit hash code value type. Provides somewhat more protection against collisions than 32 bit hashes. Produces a new hash code by combining information from the specified string with this hash code. The string, may be null if none The augmented hash code Creates a proabilistically unique 64bit hash code. Returns the fully qualified type name of this instance. A containing a fully qualified type name. A structure that memoizes the result of some computation for later reuse. The value type Gets the memoized value if available, otherwise populates it using the specified populator function and stores it for later reuse. The populator The value returned by the populator, possibly memoized