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 . A function chain captures a sequence of actions to be performed as part of a complex multi-part process. The function argument type The function result type Gets or sets a representation of the chain as a single function. The function is progressively augmented as new contributions are registered . By default the action is whatever was passed into the constructor. Thrown if is null Registers a function decorator to perform around all other actions currently in the chain. The contained part of the chain is passed in as a function to the decorator that the decorator can choose to run (or not) as needed. The decorator to register Thrown if is null An immutable record that holds two values. The type of the first value The type of the second value Gets the first value. Gets the second value. An immutable record that holds three values. The type of the first value The type of the second value The type of the third value Gets the first value. Gets the second value. Gets the third value. Provides a typed clone operation. The type produced when the object is cloned Clones the object. The cloned object 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 delegate that decorates an 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 delegate that decorates an 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 Represents a delegate that decorates a function. The type of object the function is performed upon The type of the function result The object to act upon The function to decorate which should be called in the middle of applying the decoration 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 true if the elements of both lists are equal. The first collection The second collection The comparison strategy to use True if the elements are equal Returns true if the elements of both lists are equal but possibly appear in a different order. Handles elements that appear multiple times and ensures that they appear the same number of times in each list. 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 . Lazily populates and caches values associated with a particular key. Gets the value associated with the specified key. Populates it on demand if not already cached. The key The associated value 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 the contents of the multi-map as an enumeration of pairs. 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 Adds all of the values from the specified enumeration of key-value pairs. The key-value pairs 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 A property bag associates keys with values where each key may have one or more associated value. All keys and values must be non-null strings. 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 the contents of the multi-map as an enumeration of pairs. Gets an containing the values in the . An containing the values in the object that implements . Gets a read-only view of this property set. A read-only view Removes all items from the . Creates a copy of this property bag. The copy Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 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 first value associated with a key. The key The first associated value, or null if none Provides the Xml schema for this element. The schema set The schema type of the element Sets the value associated with a key. The key The new value, or null to remove the existing values A property set associates keys with values where each key may have exactly one associated value. All keys and values must be non-null strings. 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 . Adds all elements of another collection to this dictionary. The collection to add Thrown if is null Gets a read-only view of this property set. A read-only view Removes all items from the . Creates a full copy of this property set. The copy Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. 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 value associated with a key, or null if absent. The key The associated value, or null if none Provides the Xml schema for this element. The schema set The schema type of the element Sets the value associated with a key, removes an existing value if null. The key The new value, or null to remove the existing value A read-only dictionary wrapper. 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 the collection. A 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 . An equality comparer that compares values by reference. This is a and so cannot be inherited or instantiated. The type of values to compare, must be reference types Gets the singleton instance of the comparer. Determines whether the specified objects are equal. The first object of type T to compare. The second object of type T to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. 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. Creates a copy of the collection. The copy Gets a value from the collection. The value type The key The associated value Thrown if was not found. Gets a value from the collection or a default value if none found. The value type The key The default value The associated value, or the default value Determines whether a key has an associated value in the collection. The value type The key True if the key has an associated value Thrown if is null Removes a value from the collection. The value type The key Sets a value in the collection. The value type The key The value to set Tries to get a value from the collection. The value type The key Set to the value, or default(T) if none present True if a value was obtained A strongly-typed key to be used together with an associative array to help the compiler perform better type checking of the value associated with the key. The type of value associated with the key Gets the unique name of the key. A multi-map allows a list of values to be associated with a single key. Gets the contents of the multi-map as an enumeration of pairs. 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 Adds all of the values from the specified enumeration of key-value pairs. The key-value pairs 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 or sets whether to create a window for the command prompt. The default value is false. Gets the executable path. Gets the exit code of the process, or -1 if the process did not run or has not exited. Gets a description of the exit code, if available, or null otherwise. Gets the that was started or null if the process has not been started yet. Gets or sets whether to execute the command with the Windows shell. The default value is false. Gets the working directory path. Aborts the task. Waits for the task to terminate. The timeout, or null to wait indefinitely 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 each line of new output is received on the console error stream. The event fired when each line of 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 maximum amount of time to wait for completion, or null to wait indefinitely 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, or null to wait indefinitely 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 maximum amount of time to wait for completion, or null to wait indefinitely True if the task ran to completion within the specified time span, false if the task was aborted Thrown if represents a negative time span 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. Gets the list of all tasks that are currently running. The list of running tasks Waits for all of currently running tasks to terminate. The maximum amount of time to wait for completion, or null to wait indefinitely 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 a protected context wherein it cannot receive a thread abort from this . The action to run Thrown if is null 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 or sets the desired to use for the thread when it is started. The default value is which causes the new thread to use the runtime's default apartment state. Thrown if this method is called after the thread has started 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, or null to wait indefinitely True if the task is not running as of the time this method exits, false if a timeout occurred while waiting Starts the task. A lock box object provides protected read / write access to a shared object that may be accessed concurrently by multiple threads. Clients are expected to use the and methods to acquire and release a lock of the appropriate type prior to manipulating the contents. The type of object inside the lock box Acquires a read lock and invokes the action with the object inside the lock box. The action to invoke Thrown if is null Acquires a write lock and invokes the action with the object inside the lock box. The action to invoke Thrown if is null An action that reads the contents of an object. It should not modify the object in any way. The type of object The object An action that reads or writes the contents of an object. The type of object The object Describes the semantics of how objects should be compared. This class encapsulates a default set of rules for comparing objects. These rules may be used as the foundation of a suite of standard assertion functions for comparing identity, equality and relations. This is a and so cannot be inherited or instantiated. Returns true if two values are equal to within a specified delta. The type of values to be compared The type of the difference produced when the values are subtracted, for numeric types this is the same as but it may differ for other types The expected value The actual value The inclusive delta between the values True if the values are approximately equal Compares two objects. The object type The left object, may be null The right object, may be null A value less than zero if the left object if less than the right object, zero if the left and right objects are equal, or greater than zero if the left object is greater than the right object Thrown if the values cannot be ordered. Returns true if two objects are equal. The left object, may be null The right object, may be null True if the objects are equal Returns true if two objects are equal. The object type The left object, may be null The right object, may be null True if the objects are equal Returns true if the specified type is a simple enumerable type. A simple enumerable type is one that that does not override . The object type Thrown if is null Returns true if two objects are the same. The object type, which must be a reference type (class) since a value type (struct) has no concept of referential identity. The left object, may be null The right object, may be null True if both objects are the same The diagnostic log provides services for writing diagnostic messages to the console or runtime log during a test run. This is a and so cannot be inherited or instantiated. Writes a message to the diagnostic log. The message to write, may be null Writes a formatted message to the diagnostic log. The message format string, may be null The message arguments 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. Thrown if the sandbox was disposed Returns the passed to , or null if has not been called. Thrown if the sandbox was disposed Returns true if was called. Thrown if the sandbox was disposed 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 Thrown if the sandbox was disposed 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 Thrown if the sandbox was disposed Disposes the sandbox. All currently executing actions are aborted with if has not already been called. Runs an action inside of a protected context wherein it cannot receive a thread abort from this . The action to run Thrown if is null Runs a test action. The log writer for reporting failures 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 or is null Thrown if the sandbox was disposed Uses a specified timeout for all actions run within a block of code. The execution timeout or null if none The action to perform, protected by the timeout Thrown if the sandbox was disposed Thrown if is negative 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. Thrown if the sandbox was disposed 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. 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 The test 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. Test 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 test 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 specified code reference. Does not verify the outcome of the step. The name of the step The action to perform The step execution timeout, or null if none True if the step represents an independent test case The associated code element, or null if none The context of the step that ran Thrown if or is null Thrown if is the empty string Thrown if is negative Performs an action as a new step within the current context and associates it with the specified code reference. Verifies that the step produced the expected outcome. The name of the step The action to perform The step execution timeout, or null if none True if the step represents an independent test case The associated code element, or null if none The expected outcome of the step The context of the step that ran Thrown if or is null Thrown if is the empty string Thrown if is negative Thrown if the expected outcome was not obtained 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. 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. Returns true if the test exception has a non-default message (the message parameter was not null in the constructor arguments). 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 . The test log class provides services for writing information to the execution log associated with a 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 marked region. Maybe be nested. A marker is a hidden tag that labels its contents with a semantic class. It is roughly equivalent in operation to an HTML "span" tag. Various tools may inspect the markers and modify the presentation accordingly. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The marker A Disposable object that calls when disposed. This is a convenience for use with the C# "using" statement. Begins a section with the specified name. Maybe be nested. A section groups together related content in the test log to make it easier to distinguish. The section name is used as a heading. 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 use with the C# "using" statement. Thrown if is null Embeds an attachment. 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 another copy of an existing attachment. 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 previously attached 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 region most recently started with one of the Begin* methods. 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 nested region Flushes the log writer. This is a convenience method that forwards the request to the current log writer as returned by the property. Writes a character. 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. 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. 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. 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. 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. 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 a test log stream writable 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 to write, or null if none Writes an ellipsis to indicate where content has been elided for brevity. An ellipsis may be used, for example, when printing assertion failures to clearly identify sections where the user is not being presented all of the information because it was too long and had to be truncated. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. Writes an exception. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The exception to write Thrown if is null Writes an exception within its own section. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The exception to write The section name, or null if none Thrown if , or is null Writes an exception. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The exception data to write Thrown if is null Writes an exception within its own section which provides additional cues for interpretation. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The exception data to write The section name, or null if none Thrown if is null Writes highlighted text. Highlights can be used to emphasize important information such differences between similar expected and actual values. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. The text to write, or null if none Writes a line delimiter. This is a convenience method that forwards the request to the current default log stream writer as returned by the property. Writes a character 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 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 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 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 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 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. Does not verify the outcome of the step. 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 Performs an action as a new step within the current context and associates it with the calling function. Does not verify the outcome of the step. The name of the step The action to perform The step execution timeout, or null if none The context of the step that ran Thrown if or is null Thrown if is the empty string Thrown if is negative Performs an action as a new step within the current context and associates it with the specified code reference. Does not verify the outcome of the step. The name of the step The action to perform The step execution timeout, or null if none True if the step represents an independent test case The associated code element, or null if none The context of the step that ran Thrown if or is null Thrown if is the empty string Thrown if is negative Performs an action as a new step within the current context and associates it with the calling function. Verifies that the step produced the expected outcome. The name of the step The action to perform The expected outcome of the step The context of the step that ran Thrown if or is null Thrown if is the empty string Thrown if the expected outcome was not obtained Performs an action as a new step within the current context and associates it with the calling function. Verifies that the step produced the expected outcome. The name of the step The action to perform The step execution timeout, or null if none The expected outcome of the step The context of the step that ran Thrown if or is null Thrown if is the empty string Thrown if is negative Thrown if the expected outcome was not obtained Performs an action as a new step within the current context and associates it with the specified code reference. Verifies that the step produced the expected outcome. The name of the step The action to perform The step execution timeout, or null if none True if the step represents an independent test case The associated code element, or null if none The expected outcome of the step The context of the step that ran Thrown if or is null Thrown if is the empty string Thrown if is negative Thrown if the expected outcome was not obtained This exception type is used to signal that a test has been terminated with a particular outcome. The exception message, if present, should explain the reason that the test was terminated. 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. 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 Describes the context in which an assertion is being evaluated. This is a and so cannot be inherited or instantiated. Gets the current assertion failure behavior. Gets the current assertion context. Gets the associated test context. Performs an action and returns an array containing the assertion failures that were observed within the block. The action to invoke The assertion failure behavior to use while executing the block Specifies whether to represent an exception as an assertion failure, otherwise it is rethrown The array of failures, may be empty if none Thrown if is null Gets the pending failures within the current assertion scope. The pending failures, or an empty array if none Submits an assertion failure. The assertion failure Thrown if is null The exception type used by the Gallio assertion framework to signal assertion failures. An assertion failure is an immutable description of a failed assertion and its cause. It takes into account information about labeled values such as the expected and actual value. Use an to generate an instance of this type. Gets the maximum length of formatted value that can be presented before truncation occurs. This field is read-only. Gets the maximum length of label that can be presented before truncation occurs. This field is read-only. Gets the description of the assertion failure. Gets information about the exceptions. Gets the nested assertion failures that contributed to the composite assertion failure described by this instance. Gets formatted representations of labeled values as key/value pairs. Gets the user-supplied message about the assertion failure, or null if none. Get the stack track of the failure, or null if none. Formats the failure as a string. The formatted string Writes the details about the assertion failure to the structured text writer. The structured text writer, not null Writes the assertion failure to a test log stream. The test log stream Thrown if is null An assertion failure builder is used to construct a complete description of an assertion failure that has occurred. It takes into account information about the expected and actual value, as well as additional labeled values and exceptions. Gets the formatted used by the builder. Adds an exception to the assertion failure. The exception to add The builder, to allow for fluent method chaining Thrown if is null Adds an exception to the assertion failure. The exception data to add The builder, to allow for fluent method chaining Thrown if is null Adds a nested assertion failure that contributed to the composite assertion failure described by this instance. The inner assertion failure to add The builder, to allow for fluent method chaining Thrown if is null Adds an enumeration of nested assertion failures that contributed to the composite assertion failure described by this instance. The enumeration of inner assertion failures to add The builder, to allow for fluent method chaining Thrown if is null or contains a null Adds a labeled value as plain text. The order in which this method is called determines the order in which this labeled value will appear relative to other labeled values. The label The formatted value The builder, to allow for fluent method chaining Thrown if or is null Thrown if is empty Adds a labeled value as structured text. The order in which this method is called determines the order in which this labeled value will appear relative to other labeled values. The label The formatted value as structured text The builder, to allow for fluent method chaining Thrown if or is null Thrown if is empty Adds a labeled value. The order in which this method is called determines the order in which this value will appear relative to other labeled values. The labeled value The builder, to allow for fluent method chaining Adds the raw actual value to be formatted using . The order in which this method is called determines the order in which this value will appear relative to other labeled values. The actual value The builder, to allow for fluent method chaining Adds the raw expected and actual values to be formatted using and includes formatting of their differences. The order in which this method is called determines the order in which the values will appear relative to other labeled values. The expected value The actual value The builder, to allow for fluent method chaining Adds the raw expected value to be formatted using . The order in which this method is called determines the order in which this value will appear relative to other labeled values. The expected value The builder, to allow for fluent method chaining Adds a raw labeled value to be formatted using . The order in which this method is called determines the order in which this labeled value will appear relative to other labeled values. The label The raw unformatted value The builder, to allow for fluent method chaining Thrown if is null Thrown if is empty Adds two raw labeled values formatted using and includes formatting of their differences. The order in which this method is called determines the order in which the values will appear relative to other labeled values. The left label The left value The right label The right value The builder, to allow for fluent method chaining Thrown if or is null Creates an assertion failure object. Sets the user-supplied assertion failure message. The user-supplied assertion failure message, or null if none The builder, to allow for fluent method chaining Sets the user-supplied assertion failure message to a formatted value. The user-supplied assertion failure message format string, or null if none The format arguments, or null or empty if none The builder, to allow for fluent method chaining Sets the stack trace. The stack trace, or null if none The builder, to allow for fluent method chaining Generates an immutable object that describes the failure. The assertion failure An exception type that wraps a . This exception is used in two ways: The exception may be "silent" when it is used to cause a test to terminate due to an assertion failure that has already been logged or otherwise conveyed to the user.Otherwise the exception will be reported the user in the typical manner. Returns true if the outcome and message (if any) should be used but the exception stack trace should not be logged. Gets the associated assertion failure, never null. Returns true if the assertion failure exception should not be logged because the information it contains has already been conveyed to the user. Gets a message that describes the current exception. The error message that explains the reason for the exception, or an empty string(""). 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 utilities to assist with the implementation of new asserts. This class is and so cannot be instantiated. Performs an action and returns an array containing the assertion failures that were observed within the block. If the block throws an exception, it is reified as an assertion failure. The assertion failure behavior while the action runs is so the action terminates on the first failure. The assertion failure itself is returned but it is not logged. This method is very useful for composing assertions because it enables assertions to be evaluated, and, when they fail, the failure can be recorded as an inner assertion failure of some larger composite assertion. For example, this makes it possible to create an assertion over a collection of items by composing an assertion over a single item. The action to invoke The array of failures, may be empty if none Thrown if is null Performs an action and returns an array containing the assertion failures that were observed within the block. If the block throws an exception, it is reified as an assertion failure. The action to invoke The assertion failure behavior to use while the action runs The array of failures, may be empty if none Thrown if is null Submits a failure if the assertion failure object is non-null. Failure to be submited, or null if none Verifies that an assertion succeeded. If the assertion function returns null then the assertion is deemed to have passed. If it returns an or throws an exception, then is is deemed to have failed. When an assertion failure is detected, it is submitted to which may choose to throw a or do something else. The assertion function to evaluate Thrown if is null A labeled value describes a named assertion parameter. The label indicates the purpose of the value, such as "Expected Value". The value itself should be formatted to emphasize structural characteristics. For additional emphasis, such as for comparison purposes (ie. diffs), the value may be formatted as structured text to include highlights and other markup. Gets the formatted value as structured text. Gets the label. Returns the fully qualified type name of this instance. A containing a fully qualified type name. Specifies the behavior that should take place when a is submitted to the . There are three orthogonal dimensions to the assertion failure behavior: / No-: Log the failure when reported, or do not log it. / No-: Throw an exception to abort computation, or allow it to continue / No- (aka. ): Discard the failure when finished reporting it, or capture it in a list for further processing When an assertion failure is reported, capture it in a list, log it, and allow the computation to continue. When an assertion failure is reported, capture it in a list, then throw an to immediately abort the current computation. When an assertion failure is reported, capture it in a list, log it, then throw an to immediately abort the current computation. This is the default behavior for assertion contexts. When an assertion failure is reported, discard it (instead of capturing it in a list) and allow the current computation to continue. When an assertion failure is reported, capture it in a list and allow the current computation to continue. This is the opposite of , and is an alias for the case where none of the other flags are specified. 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 Service locator for . This is a and so cannot be inherited or instantiated. Gets the global conveter singleton. 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 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 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 A base implementation of that performs argument validation. This class is and so cannot be instantiated. Gets a value derived from the . The data item The value Internal implementation of after argument validation has been performed. The data item, not null The value Thrown if the data binding fails 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 Abstract base class for data items. This class is and so cannot be instantiated. Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. 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 an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete. The enumeration of bindings Gets the value of the specified binding. The data binding, never null The value Implements . The binding, never null The associated value Populates the specified metadata map with key/value pairs associated with the data item, if any. For example, the metadata may contain a description that serves as documentation of the contents of the data item or of the test scenario that is exercised by the contents of the data item. This metadata may be injected into test instances created with the contents of this data item. The metadata map Implements . The metadata map to populate, never null 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 items that can supply values for a given collection of bindings. It should produce items even if some of the requested bindings cannot be fulfilled. The bindings that are requested If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. The enumeration of data items Enumerates the data items in the data set. The data bindings, not null If true, includes dynamic items The enumeration of data items in the combined data set A that simply accesses a value contained by a data item using a particular . This class cannot be inherited. The combinatorial join strategy combines items by constructing the cartesian product of the items 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 items from each provider into a sequence of aggregate items. The list of providers The list of bindings per provider If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the collection The concatenation merge strategy combines the items from multiple providers by simply concatenating the items 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 items from each provider into a new sequence. The list of providers The bindings If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. The merged sequence of items An implementation of that returns a constant value, ignoring the data item it is passed. This class cannot be inherited. A CSV data set retrieves fields from a CSV document as strings. If the CSV document has a header, then it is interpreted as the names of the columns. Columns with names in brackets, such as "[ExpectedException]", are interpreted as containing metadata values associated with the named key. Gets the number of columns in an indexed data set. Gets or sets a character that indicates that a line in the source represents a comment. May be set to '\0' (null) to disable comment handling. Comment lines are excluded from the record set. The default value is '#' (pound). Gets the name of the location that is providing the data, or null if none. The data location name and line number are exposed as metadata when provided. The default value is null. Gets or sets the field delimiter character. The default value is ',' (comma). Gets or sets whether the CSV document has a header that should be used to provide aliases for indexed columns. The default value is 'false' which indicates that the file does not have a header. 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 data items in the data set. The data bindings, not null If true, includes dynamic items The enumeration of data items in the combined data set Reads data from a Comma Separated Values document. The document format simply consists of sequential lines of delimited field values. The standard delimiter is ',' (comma) but it may be overridden using .Empty lines are considered to be records with one empty field.Lines that begin with a special are excluded from the record set.Field values may be quoted using '"' (quote) characters. The quotes will be omitted from the record set. Quotes may be escaped by doubling them within a quoted field.Unbalanced quotes are tolerated but may produce unexpected results.Excess whitespace is trimmed unless quoted.The document may contain a header consiting of field names but the reader does not interpret it in any special way. It will simply be returned to the client as an ordinary record. Gets or sets a character that indicates that a line in the source represents a comment. May be set to '\0' (null) to disable comment handling. Comment lines are excluded from the record set. The default value is '#' (pound). Gets or sets the field delimiter character. The default value is ',' (comma). Gets the 1-based line number of the previously returned record, or 0 if no lines have been read yet. Closes the reader. Reads the list of fields that belong to the next record in the document. Returns null at the end of the document. The record contents as an array of field values, or null if at the end of the document Thrown if an I/O error occurs 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 provide additional properties that are recognized by special kinds of data sets to modify how a bound value is resolved. 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. Determines whether the specified is equal to 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 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 items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. The enumeration of data 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 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 .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 sorted by name and formatted as name-value pair assignments following a colon and delimited by a comma Example: 'SomeType<int, string>(42, "deep thought"): Author="Douglas Adams", 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 will be returned unmodified. The entity that is qualified by the specification such as the name of a type or method The formatter The formatted specification Thrown if or is null Internal implementation of after argument validation. The entity that is qualified by the specification such as the name of a type or method 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 Utilities for . This is a and so cannot be inherited or instantiated. Gets the metadata associated with a data item. The data item The associated metadata A data row is a simple immutable value type that encpasulates an array of values along with associated metadata for use in data binding expressions. It presents a fluent interface that users may find more convenient than other implementations. The data in a is always considered dynamic. Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. 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 an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete. The enumeration of bindings Implements . The binding, never null The associated value Implements . The metadata map to populate, never null Returns an augmented data row with added metadata. The metadata key The metadata value The augmented data row Thrown if or is null Returns an augmented data row with added metadata from the specified metadata map. The metadata map The augmented data row Thrown if is null 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 data items in the data set. The data bindings, not null If true, includes dynamic items The enumeration of data items 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 A factory data set generates data items by invoking a factory delegate and interpreting its output in accordance with the factory kind. Multiple different interpretations are supported. Refer to the documentation of the enumeration for more details about each kind. 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 data items in the data set. The data bindings, not null If true, includes dynamic items The enumeration of data items in the combined data set 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 items from multiple providers by discarding items whose values do not appear in the items of all other providers. If the same item appears more than once within any given provider, when it will be enumerated only as often as the least number of repetitions of that item that appear in other providers. Uniqueness is determined by the natural equality of each bound value in the item. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Merges the items from each provider into a new sequence. The list of providers The bindings If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. The merged sequence of items A data set constructed from a sequence of data items. This class cannot be inherited. Gets the number of columns in an indexed data set. A joined data set is an aggregate data set that joins items 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 data items in the data set. The data bindings, not null If true, includes dynamic items The enumeration of data items 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 items 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 item contains a list of static data values combined with optional metadata for the item. Data binding occurs based on the binding index alone. This class cannot be inherited. The value type Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete. The enumeration of bindings A merged data set is an aggregate data set that selects items 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 data items in the data set. The data bindings, not null If true, includes dynamic items The enumeration of data items 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 Any exception thrown by the invoked method A null data item simply returns a null value on each request. It has no metadata. This is a and so cannot be inherited or instantiated. Gets the singleton null data item instance. This field is read-only. Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. 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 an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete. The enumeration of bindings 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 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 The pairwise strategy constructs a limited number of combinations of the items within the data providers such that they cover all possible pairs of values from each data source. 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 items from each provider into a sequence of aggregate items. The list of providers The list of bindings per provider If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the collection 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 scalar data item represents a single static data value combined with optional metadata for the item. Data binding occurs whenever the binding index is 0. This class cannot be inherited. The value type Gets an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete. The enumeration of bindings The sequential join strategy combines items from each data provider sequentially. If one provider contains fewer items 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 ordinal 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 items from each provider into a sequence of aggregate items. The list of providers The list of bindings per provider If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the collection An implementation of that stores the dynamic flag and metadata. This class is and so cannot be instantiated. Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. 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. Implements . The metadata map to populate, never null The union merge strategy combines the items from multiple providers by discarding all items whose values duplicate those of other items that have already been enumerated. Uniqueness is determined by the natural equality of each bound value in the item. This is a and so cannot be inherited or instantiated. Gets the singleton instance of the strategy. This field is read-only. Merges the items from each provider into a new sequence. The list of providers The bindings If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. The merged sequence of items A data set constructed from an enumerated sequence of values. This class cannot be inherited. Gets the number of columns in an indexed data set. An XML data set selects nodes from an XML document using XPath expressions. The selected nodes are returned as objects. Gets the number of columns in an indexed data set. Gets the name of the location that is providing the data, or null if none. The data location name and line number are exposed as metadata when provided. The default value 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 data items in the data set. The data bindings, not null If true, includes dynamic items The enumeration of data items in the combined data set A data accessor extracts a value from a . Gets a value derived from the . The data item The value Thrown if the data binding fails Thrown if is null 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 item is an opaque representation of a collection of values and metadata that may be retrieved using data bindings that encode the appropriate lookup rules into the item. Data items may have very different forms: Scalar-like items: Items that always yield a single value, possibly a constantRow-like items: Items that yield several values in response to index-based data bindings or named column pathsStructured items: Items that yield values by binding to paths within the item or by resolving custom data binding expressions Returns true if the item contains data that is obtained dynamically from sources whose content may change over time or may be expensive to query ahead of time. 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 an enumeration of the data bindings that may be queried to informally describe its contents. The enumeration of bindings may not be complete. The enumeration of bindings 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 Populates the specified metadata map with key/value pairs associated with the data item, if any. For example, the metadata may contain a description that serves as documentation of the contents of the data item or of the test scenario that is exercised by the contents of the data item. This metadata may be injected into test instances created with the contents of this data item. The metadata map A data provider generates an enumeration of s given a collection of s to satisfy. Gets an enumeration of data items that can supply values for a given collection of bindings. It should produce items even if some of the requested bindings cannot be fulfilled. The bindings that are requested If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. The enumeration of data items Thrown if is null A data set provides data items 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 join strategy combines items from multiple providers into products according to some algorithm. Joins the items from each provider into a sequence of aggregate items. The list of providers The list of bindings per provider If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. An enumeration of item-lists consisting of exactly one item from each provider and indexed in the same order as the collection A merge strategy combines items from multiple providers into a sequence according to some algorithm. Merges the items from each provider into a new sequence. The list of providers The bindings If true, includes items that may be dynamically generated in the result set. Otherwise excludes such items and only returns those that are statically known a priori. The merged sequence of items Specifies the kind of factory member referenced by . Each kind of factory expresses its contents by returning enumerations of data sets, data items, object arrays and single objects. The kind of a factory may be automatically determined or it may be explicitly specified in cases where it may be ambiguous. Automatically determines the type of factory based on the type of element returned by the enumeration. If the element is a then it is processed in the same manner as . If the element is a (such as , or ) then it is processed in the same manner as . If the element is an array then it is processed in the same manner as . Otherwise the element is process in the same manner as . Refer to the other factory kinds for usage examples. Specifies that the factory returns an enumeration s whose items are to be consumed. Specifies that the factory returns an enumeration of s (such as , , or ). Specifies that the factory returns an enumeration of object arrays that describe successive items. Specifies that the factory returns an enumeration of single object values. 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 Service locator for . This is a and so cannot be inherited or instantiated. Gets the global formatter singleton. 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. Fallback rule priority. Represents a rule to be applied if the typical case fails. This field is constant and read-only. Generic rule priority. Represents a generic rule that can represent objects of any type structurally. 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 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 that describes the structure of objects in terms of their constituent properties and fields. 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 formatter that is used when the runtime is not initialized. A formatting rule for . Formats values like: string, MyType.Nested, int[], byte*, similar to C#. 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 Associates an annotation message with a code element. When the code element is processed as part of building some other test, the annotation message will be emitted. This may be used to signal error, warning, and informational messages associated with the code element in question. Many annotations are automatically generated by the framework. For example, improperly used attributes generally cause error annotations to be emitted. This attribute provides an easy way for test authors to leverage the annotation mechanism for other discretionary purposes where it is desirable to draw attention to a particular code element. Note that the annotation will only be emitted if it is encountered during the process of building a test. If for some reason the annotated code element is not processed, then the attribute will have no effect. This class is and so cannot be instantiated. Gets or sets optional detail text of the annotation, or null if none. Gets the annotation message. Gets the annotation type. Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Abstract base class for typical builder implementations. This class is and so cannot be instantiated. Registers a deferred action to be performed when is called. The associated code element, used to report errors if the deferred action throws an exception The order in which the action should be applied, from least order to greatest The action to perform Applies all pending deferred in order and clears the list. Gets the test model builder. The test model builder 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 the method to decorate tests and test parameters declared by the primary pattern. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). Returns true if the code element represents a test. The evaluator The code element True if the code element represents a test Returns true if the code element represents a part of a test such as a test method or a test contribution like a setup or teardown method. The evaluator The code element True if the code element represents a test Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope 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 Abstract base class for test component builders. 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 or sets the name of the component. Adds a metadata key value pair. The metadata key The value to add Gets the underlying test component. The test component Gets the test model builder. The test model builder Gets the underlying test component. The underlying test component A contribution method pattern attribute applies decorations to a containing scope such as by introducing a new setup or teardown action to a test. 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 the method to decorate tests and test parameters declared by the primary pattern. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). Applies decorations to the containing test. The containing scope The method to process Returns true if the code element represents a part of a test such as a test method or a test contribution like a setup or teardown method. The evaluator The code element True if the code element represents a test Verifies that the attribute is being used correctly. The containing scope The method Thrown if the attribute is being used incorrectly 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 scope The data source The code element Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The code element Thrown if the attribute is being used incorrectly 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 The enumeration of patterns A decorator attribute applies contributions to a test component in scope such as a test or test parameter 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. Default implementation of a pattern evaluator. Gets the builder for the test model under construction. Consumes the specified code element. The containing scope The code element to consume If true, instructs the primary pattern to defer populating child tests The default primary pattern to use, if none can be resolved for the code element. May be null if none. Creates a top-level test as a child of the root test. Returns the scope of the newly created top-level test. The test name The associated code element, or null if none The builder for the top-level test Finds tests that are declared by the specified . The code element The enumeration of tests Gets all patterns associated with a code element. The code element The enumeration of patterns, or null if none Gets the primary pattern associated with a code element, or null if none. The code element The primary pattern, or null if none Finds scopes that are associated with the specified and returns an enumeration of their objects. The code element The enumeration of scopes Returns true if a code element has one or more associated patterns. The code element True if the code element has an associated pattern Returns true if the code element represents a test. The code element The default primary pattern to use, if none can be resolved for the code element. May be null if none. True if the code element represents a test Returns true if the code element represents a part of a test. The code element The default primary pattern to use, if none can be resolved for the code element. May be null if none. True if the code element represents a test Processes the specified code element. The scope The code element to process Registers the scope so that it can be resolved later by . The scope Default implementation of a pattern scope. Returns true if a child test can be added to the test within scope. Returns true if a test parameter can be added to the test within scope. Gets the code element associated with the scope, or null if none. Gets the pattern evaluator. Returns true if the scope represents a test declaration. An arbitrary scope nested within a test declaration scope is not itself considered a test declaration scope unless it also represents a test declaration. Returns true if the scope represents a test parameter declaration. An arbitrary scope nested within a test parameter declaration scope is not itself considered a test parameter declaration scope unless it also represents a test parameter declaration. Gets a builder for applying contributions to the test currently being constructed within this scope. Never null. Gets a builder for applying contributions to the test component currently being constructed within this scope. Gets a builder for applying contributions to the current test data context within the scope. Gets a builder for applying contributions to the test model. Gets a builder for applying contributions to the test parameter currently being constructed within this scope, if there is one, or null if there is no test parameter in scope. Adds an action to the scope that enables a pattern to lazily populate the test model with components generated in nested scopes. This is used when is called with the option to skip children. A supplied by the pattern to populate its components lazily Consumes the specified code element using this scope as the containing scope. The code element to consume If true, instructs the primary pattern to defer populating child tests The default primary pattern to use, if none can be resolved for the code element. May be null if none. Creates a child test data context derived from the builders of this scope. Returns the scope of the newly created child test data context. The associated code element, or null if none The scope of the newly created child test data context Creates a child test with its own child data context derived from the builders of this scope. Returns the scope of the newly created child test. The test name The associated code element, or null if none The scope of the newly created child test Creates and registers a scope for a test component. The code element to associate with the scope The test builder The test parameter builder, or null if the scope is to be associated to the test only The test data context builder If true, the scope represents the point of declaration of the test component with which it is associated The new scope Creates a test parameter for the test in scope with its own child data context derived from the builders of this scope. Returns the scope of the newly created test parameter. The test parameter name The associated code element, or null if none The scope of the newly created test parameter Asks all registered deferred component populators to build components whose construction had previously been deferred. The code element hint to identify the location of the particular components to populate, or null to populate them all Processes the specified code element using this scope as the current scope. The code element to process Default implementation of a test model builder. Gets or sets the apartment state to be used to run the test. The default value of this property is . Gets or sets whether the test is parallelizable. True if the test is parallelizable. The default value of this property is false. 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 or sets a suggested hint, 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 hint Gets or sets a number that defines an ordering for the test with respect to its siblings. Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. The test execution order with respect to siblings, initially zero. Gets the set of actions that describe the behavior of the test. 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. The timeout. Default value is null. Adds a test dependency. The test to add as a dependency Creates a child test and returns its builder. The test name The associated code element, or null if none The data context builder for the new test The builder for the child test Creates a test parameter and returns its builder. The test parameter name The associated code element, or null if none The data context builder for the new test parameter The builder for the test parameter Gets the underlying test component. The test component Sets the name of the expected exception type. The expected exception type name Gets the underlying test. The underlying test Default implementation of a test data context builder. Gets or sets the offset to add to a test parameter's implicit data binding index to map it into the containing data context. This property is used to determine the data binding index of a test parameter that has not been explicitly bound. The offsets are summed cumulatively to produce an implicit data binding index while traversing the chain of containing data contexts while locating the first anonymous data source. For example, suppose Y is the second parameter of a test method. If Y does not have an explicit data binding, we will apply implicit data binding rules as follows. If Y's data context contains an anonymous data source, then the implicit data binding index will be 0.Otherwise, if Y's containing data context contains an anonymous data source, then the implicit data binding index will equal the offset specified in Y's data context: 1 (since it is the second parameter).Otherwise, we continue searching containing data contexts and summing their offsets until we find an anonymous data source. If none is found, then data binding will fail. Creates a child data context. The builder for the child context Defines a new data source within this data context if one does not exist. Otherwise returns the existing one. The data source name The defined data source Gets the test model builder. The test model builder Gets the underlying pattern test data context. The underlying pattern test data context Default implementation of a test model builder. Gets the reflection policy for the model. Adds an annotation to the test model. The annotation to add Adds an assembly resolver to the test model's assembly loading policy. The resolver to add Creates a top-level test as a child of the root test and returns its builder. The test name The associated code element, or null if none The data context builder for the new test The builder for the top-level test Gets the test model builder. The test model builder Publishes an exception as an annotation about a particular code element. The code element, or null if none The exception to publish Gets the underlying test model. The underlying test model Default implementation of a test parameter builder. Gets or sets the data binder for the parameter. Gets the set of actions that describe the behavior of the test parameter. Gets the underlying test component. The test component Gets the underlying test parameter. The underlying test parameter 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 metadata key / value pairs for classification, filtering, reporting, documentation or other purposes. This class is and so cannot be instantiated. Gets the metadata key / value pairs to be added to the test component. The metadata entries Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The code element Thrown if the attribute is being used incorrectly The class is the base class for all pattern test framework attributes. It associates a code element with a for building up parts of the test model 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. Returns true if the code element represents a test. The evaluator The code element True if the code element represents a test Throws a with the specified message including a short heading that identifies the attribute type. The message, not null Throws a with the specified message including a short heading that identifies the attribute type. The message, not null The associated exception, or null if none Standard flag combinations for declarations. This is a and so cannot be inherited or instantiated. Valid attribute targets for contribution methods. This field is constant and read-only. Valid attribute targets for data contexts. This field is constant and read-only. Valid attribute targets for tests. This field is constant and read-only. Valid attribute targets for test assemblies. This field is constant and read-only. Valid attribute targets for tests or test parameters. This field is constant and read-only. Valid attribute targets for test constructors. This field is constant and read-only. Valid attribute targets for test contracts. This field is constant and read-only. Valid attribute targets for test methods. This field is constant and read-only. Valid attribute targets for test parameters. This field is constant and read-only. Valid attribute targets for test types. This field is constant and read-only. A test case that has been defined by the . Gets or sets the apartment state to be used to run the test. The default value of this property is . Gets the data context of the component. Gets or sets whether the test is parallelizable. True if the test is parallelizable. The default value of this property is false. 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. The timeout. Default value is null. Thrown if represents a negative time span Sets the name of the component. 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: Configuring the in anticipation of test execution.Accessing user data via .Skipping the test by throwing an appropriate . 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 The combined outcome of the root test command A pattern test data context introduces a scope for data source declarations. Each or has a . However, data contexts may also be nested. For example, the constructor of a test class typically augments its containing test with additional test parameters that represent its own constructor parameters. If data binding attributes are applied to the constructor, they should operate within the scope of that constructor only. To achieve this effect, the constructor declares a new within which its test parameters will be created. Gets or sets the offset to add to a test parameter's implicit data binding index to map it into the containing data context. This property is used to determine the data binding index of a test parameter that has not been explicitly bound. The offsets are summed cumulatively to produce an implicit data binding index while traversing the chain of containing data contexts while locating the first anonymous data source. For example, suppose Y is the second parameter of a test method. If Y does not have an explicit data binding, we will apply implicit data binding rules as follows. If Y's data context contains an anonymous data source, then the implicit data binding index will be 0.Otherwise, if Y's containing data context contains an anonymous data source, then the implicit data binding index will equal the offset specified in Y's data context: 1 (since it is the second parameter).Otherwise, we continue searching containing data contexts and summing their offsets until we find an anonymous data source. If none is found, then data binding will fail. Gets the containing data context, or null if none. Creates a child data context. A handle for the child context Defines a new data source within this data context if one does not exist. Otherwise returns the existing one. The data source name The defined data source Thrown if is null Resolves the data source with the specified name. The data source name The resolved data source, or null if none found Returns the index that should be used to implicitly bind to the nearest anonymous data source that can be found. The index is computed as the sum of the of each data context traversed to find the data source excluding the data context that actually has the data source. The implicit data binding index, or null if no anonymous data sources were found 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 Performs any final actions after exploration has taken place to ensure that we have a complete and internally consistent model. 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 unique id of the test framework. 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 functions. 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.Skipping the test instance by throwing an appropriate . 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 Runs the body of the test from the Initialize phase through the Dispose phase. The test instance state, never null The test outcome 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 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 a mutable dictionary of values assigned to test parameters. Gets the test state associated with this test instance state. Gets the test step used to execute the test instance. Gets the pattern test instance state from the specified context. The context The pattern test instance state, or null if none Thrown if is null 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 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 Any exception thrown by the invoked method Invokes the test method specified by , and . If there is no test method or no arguments, does nothing. The method return value, or null if there was none Any exception thrown by the invoked method Runs the body of the test. The test outcome 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 data context of the component. Gets the test that owns this parameter. Gets the set of actions that describe the behavior of the test parameter. Sets the name of the component. An implementation of based on actions that can be sequenced and composed as chains. Gets the chain of actions. Gets the chain of actions. Binds a value to a test parameter. The following actions are typically performed during this phase: Associated a value with a slot on the test fixture or test method.Storing the object for later use during the test run. 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 instance state, never null The value to bind to the parameter Unbinds a test parameter. The following actions are typically performed during this phase: Releasing any resources used by the test parameter. 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 instance state, never null The value that was bound to the test parameter 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 the test associated with this test state. Gets the handler for the test. Gets a mutable dictionary of data accessors that will provide values assigned to test parameters given a data binding item. Gets the pattern test state from the specified context. The context The pattern test state, or null if none Thrown if is null A step that belongs to a . Gets the associated test. The type of exception thrown when a test declaration is malformed or contains an error. Implementations of may use this exception to report that a pattern is malformed or not valid in the context in which it appears. The exception effectively halts the processing of the pattern. The message text is then manifested as an error annotation that may be displayed to the user. 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. The process isolation object saves global process-level context information when it is created and restores it when it is disposed. The following context information is saved and restored: The current working directoryThis class cannot be inherited. Restores the saved process state. A test assembly decorator pattern attribute applies decorations to an existing test declared at the assembly-level. This class is and so cannot be instantiated. Applies decorations to an assembly-level test. A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The assembly scope The assembly Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The assembly Thrown if the attribute is being used incorrectly Configures runtime parameters while executing tests within a test assembly. This is a and so cannot be inherited or instantiated. Specifies the default test case timeout or null if none. The default timeout for test cases or null if none. Defaults to 10 minutes. Specifies the maximum number of concurrent threads to use when tests are run in parallel. The degree of parallelism. Defaults to or 2, whichever is greater. Thrown if is less than 1 Resets the globals to default values. 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 framework-level scope that will eventually 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 the method to decorate tests and test parameters declared by the primary pattern. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). Initializes a test for an assembly after it has been added to the test model. The assembly scope The assembly Returns true if the code element represents a test. The evaluator The code element True if the code element represents a test Populates the children of the assembly test all at once. The assembly scope The assembly Prepares to populate the children of the assembly test on demand by adding a deferred populator with . The assembly scope The assembly Applies semantic actions to the assembly-level test to estalish its runtime behavior. This method is called after . The test builder The assembly Verifies that the attribute is being used correctly. The containing scope The assembly Thrown if the attribute is being used incorrectly Declares that a constructor is used to provide test fixture parameters. Subclasses of this attribute can control what happens with the constructor. 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 the method to decorate tests and test parameters declared by the primary pattern. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). Initializes the . The data context scope The constructor Returns true if the code element represents a part of a test such as a test method or a test contribution like a setup or teardown method. The evaluator The code element True if the code element represents a test Verifies that the attribute is being used correctly. The containing scope The constructor Thrown if the attribute is being used incorrectly A test decorator pattern attribute applies decorations to a test defined by an assembly, type, or method. This class is and so cannot be instantiated. Applies decorations to a test. A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The scope The code element Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The code element Thrown if the attribute is being used incorrectly 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 scope The code element The code element representing the dependency Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The code element Thrown if the attribute is being used incorrectly A test decorator pattern attribute applies decorations to an existing test declared at the method-level. This class is and so cannot be instantiated. Applies decorations to a method-level test. A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The method scope The method Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The method Thrown if the attribute is being used incorrectly Declares that a method represents a test. 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 the method to decorate tests and test parameters declared by the primary pattern. Gets or sets a number that defines an ordering for the test with respect to its siblings. Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. The test execution order with respect to siblings, initially zero. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). Executes the test method. The test instance state, not null The test method result Initializes a test for a method after it has been added to the test model. The method scope The method Returns true if the code element represents a test. The evaluator The code element True if the code element represents a test Applies semantic actions to a test to estalish its runtime behavior. This method is called after . The test builder The test method Verifies that the attribute is being used correctly. The containing scope The method Thrown if the attribute is being used incorrectly 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 slot scope The slot Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The slot Thrown if the attribute is being used incorrectly Declares that a field, property, method parameter or generic parameter represents a . 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 the method to decorate tests and test parameters declared by the primary pattern. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). Initializes a test parameter after it has been added to the containing test. The test parameter scope The slot Returns true if the code element represents a part of a test such as a test method or a test contribution like a setup or teardown method. The evaluator The code element True if the code element represents a test Verifies that the attribute is being used correctly. The containing scope The slot Thrown if the attribute is being used incorrectly A test type decorator pattern attribute applies decorations to an existing test declared at the type-level. This class is and so cannot be instantiated. Applies decorations to a type-level test. A typical use of this method is to augment the test with additional metadata or to add additional behaviors to the test. The type scope The type Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process Verifies that the attribute is being used correctly. The scope The type Thrown if the attribute is being used incorrectly Declares that a type represents an test. Gets an instance of the test type pattern attribute to use when no other pattern consumes the type. If the type can be inferred to be a test type then the pattern will behave as if the type has a test type pattern attribute applied to it. Otherwise it will simply recurse into nested types. This field is read-only. 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 the method to decorate tests and test parameters declared by the primary pattern. Gets or sets a number that defines an ordering for the test with respect to its siblings. Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. The test execution order with respect to siblings, initially zero. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). Consumes type constructors. The scope to be used as the containing scope The type whose constructors are to be consumed Consumes type members including fields, properties, methods and events. The scope to be used as the containing scope The type whose members are to be consumed Consumes nested types. The scope to be used as the containing scope The type whose nested types are to be consumed Gets the binding flags that should be used to enumerate non-nested type members of the type for determining their contribution to the test fixture. Instance members are only included if the type is not abstract. The type The binding flags for enumerating members Infers whether the type is a test type based on its structure. Returns true if the type any associated patterns, if it has non-nested type members (subject to ) with patterns, if it has generic parameters with patterns, or if any of its nested types satisfy the preceding rules. The pattern evaluator The type True if the type is likely a test type 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 type scope The type Returns true if the code element represents a test. The evaluator The code element True if the code element represents a test Applies semantic actions to a test to estalish its runtime behavior. This method is called after . The test builder The test type Verifies that the attribute is being used correctly. The containing scope The type Thrown if the attribute is being used incorrectly 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 up a test model using reflection. The general idea is that a pattern applies contributions to a that represents the state of the pattern interpretation process. A primary pattern adds contributions to its containing scope with the method. All patterns (primary and non-primary) add further contributions to the pattern's own scope with the method. A pattern can also defer some of its processing by registering a decorator on the scope. Once all of the decorators have been gathered, they can be applied in sorted order as required. Pattern processing is performed recursively. First the primary pattern for the assembly is found. If none is registered then the default assembly pattern is used instead. The assembly pattern then performs reflection over the types within the assembly and hands off control (via ) to any primary patterns it finds each type. Likewise the types scan their members and call into their primary patterns. And so on. Each primary pattern is responsible for invoking (via ) any additional non-primary patterns associated with their code element after they have established the appropriate evaluation scope. Typically a pattern is associated with a code element by means of a but other associations are possible. Some patterns might define default rules for recursively processing code elements that do not have primary patterns of their own. Others might use means other than standard reflection to discover the patterns to be applied. The process is intended to be open and extensible. 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 the method to decorate tests and test parameters declared by the primary pattern. Consumes a code element and applies its contributions to the scope provided by a containing pattern. This method is used to declare new tests, test parameters and other components and add them to a containing test that was defined in some other scope. For example, when enumerating test fixtures, the assembly-level pattern will call the method of the primary patterns associated with each type 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 the method of each non-primary pattern associated with the type within the scope of the test fixture. Then they will typically recurse into the fixture to apply contributions defined by patterns associated with methods, fields, properties, events, constructors and generic type parameters. The containing scope The code element to process If true, skips generating child test components. 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 are idempotent (do nothing or have no adverse side-effects). May be thrown to halt processing of the pattern and report an error message to the user as an annotation that describes how the pattern was misapplied. Returns true if the code element represents a test. The evaluator The code element True if the code element represents a test May be thrown to halt processing of the pattern and report an error message to the user as an annotation that describes how the pattern was misapplied. Returns true if the code element represents a part of a test such as a test method or a test contribution like a setup or teardown method. The evaluator The code element True if the code element represents a test May be thrown to halt processing of the pattern and report an error message to the user as an annotation that describes how the pattern was misapplied. Processes a code element and applies its contributions to the scope of this pattern. The scope will typically have been introduced by the method of a primary pattern applied to this code element. This method is used by patterns to decorate tests and test parameters that have been declared by primary patterns. For example, the method will typically be called by another pattern that has just created a new test based on the associated code element, such as a test method. The method then has the opportunity to modify the test to add metadata, change its name, add new behaviors, and so on. The scope The code element to process May be thrown to halt processing of the pattern and report an error message to the user as an annotation that describes how the pattern was misapplied. A pattern evaluator maintains state that is needed to interpret patterns. It is used by the to populate a during test enumeration. Gets the builder for the test model under construction. Consumes the specified code element. The containing scope The code element to consume If true, instructs the primary pattern to defer populating child tests The default primary pattern to use, if none can be resolved for the code element. May be null if none. Thrown if or is null Creates a top-level test as a child of the root test. Returns the scope of the newly created top-level test. The test name The associated code element, or null if none The builder for the top-level test Thrown if is null Finds tests that are declared by the specified . The code element The enumeration of tests Thrown if is null Gets all patterns associated with a code element. The code element The enumeration of patterns, or null if none Thrown if is null Gets the primary pattern associated with a code element, or null if none. The code element The primary pattern, or null if none Thrown if is null Thrown if there are multiple primary patterns associated with the code element Finds scopes that are associated with the specified and returns an enumeration of their objects. The code element The enumeration of scopes Thrown if is null Returns true if a code element has one or more associated patterns. The code element True if the code element has an associated pattern Thrown if is null Returns true if the code element represents a test. The code element The default primary pattern to use, if none can be resolved for the code element. May be null if none. True if the code element represents a test Returns true if the code element represents a part of a test. The code element The default primary pattern to use, if none can be resolved for the code element. May be null if none. True if the code element represents a test Processes the specified code element. The scope The code element to process Thrown if is null Registers the scope so that it can be resolved later by . The scope Thrown if is null 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 The enumeration of patterns Thrown if is null A pattern scope describes the environment in which the pattern is being evaluated. Returns true if a child test can be added to the test within scope. Returns true if a test parameter can be added to the test within scope. Gets the code element associated with the scope, or null if none. Gets the pattern evaluator. Returns true if the scope represents a test declaration. An arbitrary scope nested within a test declaration scope is not itself considered a test declaration scope unless it also represents a test declaration. Returns true if the scope represents a test parameter declaration. An arbitrary scope nested within a test parameter declaration scope is not itself considered a test parameter declaration scope unless it also represents a test parameter declaration. Gets a builder for applying contributions to the test currently being constructed within this scope. Never null. Gets a builder for applying contributions to the test component currently being constructed within this scope. Gets a builder for applying contributions to the current test data context within the scope. Gets a builder for applying contributions to the test model. Gets a builder for applying contributions to the test parameter currently being constructed within this scope, if there is one, or null if there is no test parameter in scope. Adds an action to the scope that enables a pattern to lazily populate the test model with components generated in nested scopes. This is used when is called with the option to skip children. A supplied by the pattern to populate its components lazily Thrown if is null Consumes the specified code element using this scope as the containing scope. The code element to consume If true, instructs the primary pattern to defer populating child tests The default primary pattern to use, if none can be resolved for the code element. May be null if none. Thrown if is null Creates a child test data context derived from the builders of this scope. Returns the scope of the newly created child test data context. The associated code element, or null if none The scope of the newly created child test data context Creates a child test with its own child data context derived from the builders of this scope. Returns the scope of the newly created child test. The test name The associated code element, or null if none The scope of the newly created child test Thrown if is null Thrown if is null Creates and registers a scope for a test component. The code element to associate with the scope The test builder The test parameter builder, or null if the scope is to be associated to the test only The test data context builder If true, the scope represents the point of declaration of the test component with which it is associated The new scope Thrown if , , or is null Creates a test parameter for the test in scope with its own child data context derived from the builders of this scope. Returns the scope of the newly created test parameter. The test parameter name The associated code element, or null if none The scope of the newly created test parameter Thrown if is null Thrown if is null Asks all registered deferred component populators to build components whose construction had previously been deferred. The code element hint to identify the location of the particular components to populate, or null to populate them all Processes the specified code element using this scope as the current scope. The code element to process Thrown if is null An interface shared by and . Gets the data context of the component. Sets the name of the component. 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. 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: Configuring the in anticipation of test execution.Accessing user data via .Skipping the test by throwing an appropriate . 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. 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.Skipping the test instance by throwing an appropriate . 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 Runs the body of the test from the Initialize phase through the Dispose phase. The test instance state, never null The test outcome 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 parameter handler provides the logic that implements the various phases of the test parameter binding lifecycle. Binds a value to a test parameter. The following actions are typically performed during this phase: Associated a value with a slot on the test fixture or test method.Storing the object for later use during the test run. 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 instance state, never null The value to bind to the parameter Unbinds a test parameter. The following actions are typically performed during this phase: Releasing any resources used by the test parameter. 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 instance state, never null The value that was bound to the test parameter Provides support for performing deferred build actions. Registers a deferred action to be performed when is called. The associated code element, used to report errors if the deferred action throws an exception The order in which the action should be applied, from least order to greatest The action to perform Thrown if or is null Applies all pending deferred in order and clears the list. A test builder applies contributions to a test under construction. Gets or sets the apartment state to be used to run the test. The default value of this property is . Gets or sets whether the test is parallelizable. True if the test is parallelizable. The default value of this property is false. 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 or sets a suggested hint, 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 hint Gets or sets a number that defines an ordering for the test with respect to its siblings. Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. The test execution order with respect to siblings, initially zero. Gets the set of actions that describe the behavior of the test. 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. The timeout. Default value is null. Thrown if represents a negative time span Adds a test dependency. The test to add as a dependency Thrown if is null Creates a child test and returns its builder. The test name The associated code element, or null if none The data context builder for the new test The builder for the child test Thrown if or is null Creates a test parameter and returns its builder. The test parameter name The associated code element, or null if none The data context builder for the new test parameter The builder for the test parameter Thrown if or is null Sets the name of the expected exception type. The expected exception type name Thrown if is null Gets the underlying test. The underlying test A test component builder applies contributions to a test or test parameter under construction. 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 or sets the name of the component. Thrown if is null Adds a metadata key value pair. The metadata key The value to add Thrown if or is null Gets the underlying test component. The underlying test component A test data context builder applies contributions to a test data context under construction. Gets or sets the offset to add to a test parameter's implicit data binding index to map it into the containing data context. This property is used to determine the data binding index of a test parameter that has not been explicitly bound. The offsets are summed cumulatively to produce an implicit data binding index while traversing the chain of containing data contexts while locating the first anonymous data source. For example, suppose Y is the second parameter of a test method. If Y does not have an explicit data binding, we will apply implicit data binding rules as follows. If Y's data context contains an anonymous data source, then the implicit data binding index will be 0.Otherwise, if Y's containing data context contains an anonymous data source, then the implicit data binding index will equal the offset specified in Y's data context: 1 (since it is the second parameter).Otherwise, we continue searching containing data contexts and summing their offsets until we find an anonymous data source. If none is found, then data binding will fail. Creates a child data context. The builder for the child context Defines a new data source within this data context if one does not exist. Otherwise returns the existing one. The data source name The defined data source Thrown if is null Gets the underlying pattern test data context. The underlying pattern test data context A test model builder applies contributions to a test model under construction. Gets the reflection policy for the model. Adds an annotation to the test model. The annotation to add Thrown if is null Adds an assembly resolver to the test model's assembly loading policy. The resolver to add Thrown if is null Creates a top-level test as a child of the root test and returns its builder. The test name The associated code element, or null if none The data context builder for the new test The builder for the top-level test Thrown if or is null Publishes an exception as an annotation about a particular code element. The code element, or null if none The exception to publish Gets the underlying test model. The underlying test model A test builder applies contributions to a test under construction. Gets or sets the data binder for the parameter. Thrown if is null Gets the set of actions that describe the behavior of the test parameter. Gets the underlying test parameter. The underlying test parameter Populates components lazily. The code element hint to identify the location of the particular components to populate, or null to populate them all 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 Performs one primitive action of a test and returns its outcome. A diff set consists of a sequence of differences between a left document and a right document that indicate changed and unchanged regions. If the changes are applied in order to the left document, the right document will be reproduced. If the inverse changes are applied in order to the right document, the left document will be reproduced. This class cannot be inherited. Returns true if the list of differences contains changed regions. Gets the list of differences that indicate the changed and unchanged regions between the left and right documents. The diffs span the entire range of the left and right documents and are listed in document order. Returns true if the list of differences is empty which can only occur when both document being compared are empty. Gets the left document. Gets the right document. Gets the set of differences between a left document and a right document. The left document The right document The set of differences Thrown if or is null Simplifies the diff for presentation. This method applies a series of heuristics to make the diff easier to read but perhaps less optimal, including the following: Adjacent diffs of the same kind are combined.Small unchanged regions sandwiched between larger changed regions are converted to larger changed regions. This improves the case when only a few scattered characters coincidentally match between the two documents. Returns a simplified diff Writes the diffs using the presentation style and no limits on the context length. For the purposes of determining additions and deletions, the left document is considered the original and the right document is the considered to be the one that was modified. Changes are annotated by markers: by , and . The test log stream writer to receive the highlighted document Thrown if if null Writes the diffs using the specified presentation style and no limits on the context length. Changes are annotated by markers: , and . If the style is then the left document is considered the original and the right document is the considered to be the one that was modified so deletions appear within the left and additions within the right. If the style is or then only the deletion and changed markers are used. The test log stream writer to receive the highlighted document The presentation style Thrown if if null Writes the diffs using the specified presentation style and max context length. Changes are annotated by markers: , and . If the style is then the left document is considered the original and the right document is the considered to be the one that was modified so deletions appear within the left and additions within the right. If the style is or then only the deletion and changed markers are used. The test log stream writer to receive the highlighted document The presentation style The maximum number of characters of unchanged regions to display for context, or for no limit. Extraneous context is split in two with an ellipsis inserted in between both halves Thrown if if null Thrown if is negative Describes the difference between a range of the left document and a range of the right document. Each diff is accompanied by a that indicates whether it represents an identical region or one with changes. Gets the diff kind which indicateds whether there is a change over the range covered by the diff. Gets the range of the left document that is affected. Gets the range of the right document that is affected. 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 fully qualified type name of this instance. A containing a fully qualified type name. A range denotes a segment of a string or other indexed data structure. Gets the ending index of the range, which is the start index plus the length. The ending index is one past the last character within the range. Gets the length of the range. Gets the starting index of the range. Creates a new range between the start index (inclusively) and end index (exclusively). The start index The end index The new range Thrown if is negative or greater than 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. Extends a range into an adjacent range and returns the combined range. The adjacent range The extended range Thrown if is not an adjacent range Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets a substring of the specified text using this range. The source text The substring of the source text that represents this range Thrown if is null Returns the fully qualified type name of this instance. A containing a fully qualified type name. A substring provides a convenient representation for a range within a larger string. Returns the whole string. Gets the character with a particular index. The index The character Thrown if the index is out of range Gets the length of the substring. Returns the range of the underlying string represented by the substring. 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 a substring of the substring. The index at which to start The substring Thrown if is negative or if is greater than Returns a substring of the substring. The index at which to start The length of the substring to produce The substring Thrown if or are negative or if their sum is greater than Finds the length of the common prefix of this substring and another one. The other substring The common prefix length, or 0 if the substrings have no prefix in common Finds the length of the common suffix of this substring and another one. The other substring The common suffix length, or 0 if the substrings have no suffix in common Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Returns the fully qualified type name of this instance. A containing a fully qualified type name. Describes whether a difference represents a changed or unchanged region. Indicates there is no change between the left and right documents over the ranges described by the diff. Indicates there is a change between the left and right documents over the ranges described by the diff. Text may have been added, removed, or edited. Specifies the presentation style for a . Display the left and right document contents and diffs fully interleaved. Display only the left document contents. Display only the right document contents. 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. Gets or sets the name of the test runner factory to use. The test runner factory name, defaults to 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 Adds a test method to the list of filters, and automatically adds its containing test assembly to the package configuration, if not already added. The test fixture type The test method name Thrown if or is null Explores the tests but does not run them. 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 all test step runs that represent test cases within a test with the specified code reference. 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 Gets all test step runs with the given code reference. The code reference of the test The enumeration of test step runs, or null if not found Runs the tests. An aggregate test explorer combines multiple test explorers from different sources to incorporate all of their contributions. Adds test explorers for the frameworks requested by the test model's test package. The frameworks Thrown if is null Adds a test explorer to the aggregate. The explorer to add Thrown if is null Thrown if has a different 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 Performs any final actions after exploration has taken place to ensure that we have a complete and internally consistent model. Returns true if the code element represents a test. The element True if the element represents a test An annotation associates a message with a source code location to inform the user about a problem. Gets the code element associated with the annotation. Gets additional details such as exception text, or null if none. Gets the annotation message. Gets the annotation type. 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 a read-only list of the children of this test. Gets a read-only 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 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 or sets a suggested hint, 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 hint Gets or sets a number that defines an ordering for the test with respect to its siblings. Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. The test execution order with respect to siblings, initially zero. Gets a read-only list of 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 Obtains a unique local id for a child of this test. A suggested id which will be used if no conflicts occur The unique local id to use 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 or sets the value of the metadata entry. (This is a convenience method.) One of the constants. 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. Applies additional contributions to a test domain, if desired. The test domain setup to modify Base implementation of . Gets the stable unique identifier of the component. Gets or sets the test that owns this parameter, or null if this parameter does not yet have an owner. 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 . Default implementation of a test package explorer factory that aggregates over all registered frameworks. Creates a test explorer with the specified reflection policy. The test package configuration The reflection policy The test explorer 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 specifying the origin of data used by 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. 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. Specifies setup options for a test domain. A test domain represents an isolated host environment within which a subset of a test package will be loaded, explored and run. Gets or sets the test package configuration to load in the test domain. Thrown if is null Merges the contents of another test domain setup into this one. The source setup Thrown if is null Provides options that control how test exploration occurs. This class cannot be inherited. Creates a copy of the options. The copy 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. Recursively enumerates all tests including the root test. Gets the read-only list of annotations. An annotation is an informational, warning or error message associated with a code element in the test model. Test frameworks publish annotations on the test model that describe usage errors or warnings about problems that may prevent tests from running, such as using a custom attribute incorrectly. They may also emit informational annotations to draw the user's attention, such as by flagging ignored or pending tests. The presentation of annotations is undefined. A command-line test runner might simply log them whereas an IDE plugin could generate new task items to incorporate them into the UI. Gets the root test in the model. Gets the test package. Adds an annotation. The annotation to add Thrown if is null 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 loader for the package. 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 test framework IDs that are to be excluded from the test exploration process. 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 Returns true if the framework with the specified id should be used to explore the contents of the test package. The framework id True if the framework is requested A read-only implementation of for reflection. This class cannot be inherited. 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, including its children. Gets or sets the test duration in seconds, including its children. Gets or sets the test outcome, including its children (unless they were skipped or are otherwise irrelevant to the outcome of their parent). 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. Produces an outcome with the same status but omitting the category information. The generalized outcome Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Provides the Xml schema for this element. The schema set The schema type of the element 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 a read-only list of the children of this test. Gets a read-only 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 or sets a number that defines an ordering for the test with respect to its siblings. Unless compelled otherwise by test dependencies, tests with a lower order number than their siblings will run before those siblings and tests with the same order number as their siblings with run in an arbitrary sequence with respect to those siblings. The test execution order with respect to siblings, initially zero. Gets a read-only list of 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 Obtains a unique local id for a child of this test. A suggested id which will be used if no conflicts occur The unique local id to use Thrown if is null Common interface 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 Performs any final actions after exploration has taken place to ensure that we have a complete and internally consistent model. 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 unique id of the test framework. Gets the name of the test framework. Applies additional contributions to a test domain, if desired. The test domain setup to modify Creates a test explorer for this test framework. The test model to populate incrementally as tests are discovered The test explorer Creates test explorers for packages. Creates a test explorer with the specified reflection policy. The test package configuration The reflection policy The test explorer Thrown if or is null 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 to ensure that it can be differentiated from others. However, this constraint is not enforced. Gets or sets the test that owns this parameter, or null if this parameter does not yet have an owner. 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. Specifies the type of an annotation. An informational annotation. A warning annotation. An error annotation. 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. Describes an exception in a serializable form. This class cannot be inherited. Gets the inner exception data, or null if none. Gets the exception message text. Gets the exception stack trace. Gets the exception type full name. Formats the exception to a string similar to the one that the .Net framework would ordinarily construct. The formatted exception Writes the exception in a structured format with markers to distinguish its component elements. The log stream writer Thrown if is null Describes a stack trace in a serializable form. This class cannot be inherited. Returns true if the stack trace data is empty. Formats the stack trace to a string similar to the one that the .Net framework would ordinarily construct. The formatted stack trace Writes the stack trace in a structured format with markers to distinguish its component elements. The log stream writer Thrown if is null Provides methods for filtering the stack trace for tests. The objective of this filtering is to omit frames that are not relevant to the user when reporting test failures. Stack trace filtering proceeds as follows: Stack frames that have an associated or are omitted.The stack trace is chopped just above the top-most stack frame with an associated .This is a and so cannot be inherited or instantiated. Captures a filtered stack trace from the currently executing thread. The filtered stack trace Filters the stack trace information in an exception. The exception The filtered exception data Thrown if is null Filters the stack trace information about an exception. The exception data The filtered exception data Thrown if is null Filters a stack trace. The stack trace The filtered stack trace Thrown if is null Filters a stack trace. The stack trace The filtered stack trace string Thrown if is null This attribute is used to mark methods that call into test code. The uses this attribute to determine at what point control flow initially transitioned from the test framework into the test. It can then filter out irrelevant frames that lie above the entry point. If two entry points are nested within one another in the call stack, then the effect is the same as if the outermost entry point did not appear. This enables test frameworks to support recursion into themselves. This class cannot be inherited. This attribute is used to mark methods and types that are internal to the implementation of the test framework. The uses this attribute to identify stack frames that may safely be filtered out when describing failures to users. If the stack frame refers to a method with this attribute or declared by a type with this attribute then it is omitted. The attribute also applies to nested types to help cover anonymous delegates as well. This class cannot be inherited. 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 The combined outcome of the root test command 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 The combined outcome of the root test command Recursively generates single test steps for each and sets the final outcome to . The root test command The parent test step 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 Defines the test ordering strategy. This default strategy first compares test by explicit ordering (using ) then defines an implicit ordering by name (using ). This class cannot be inherited. 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 and the metadata from the 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 Returns a description of the test command for debugging purposes. A description of the test command 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 . Adds an attachment to the log. The attachment to write, never null Closes the log. Begins a marked region in a log stream. The log stream name The marker Begins a section in a log stream. The log stream name The name of the section to begin, never null Embeds an attachment into a log stream. The log stream name The name of the attachment to write, never null Ends the current region started with one of the Begin* methods in a log stream. The log stream name Writes a text string to a log stream. The log stream name The text to write, never null 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 The combined outcome of the root test command 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 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. 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 set for the test model If true, only the specified tests are included, otherwise children of the selected tests are automatically included 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 for . This is a and so cannot be inherited or instantiated. Gets the global test context tracker singleton. Provides options that control how test execution occurs. This class cannot be inherited. Gets or sets whether the filter exactly specifies all tests to select. If false, then children of the selected tests are also included. Defaults to false. Gets or sets the filter set. Defaults to an empty filter set. Thrown if is null Gets or sets whether to run tests within a single thread. This ensures that the tests will run on the same thread as the initial call to the test harness (unless the test framework itself spawns any new threads). Defaults to false. 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 Creates a copy of the options. The copy 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 and the metadata from the 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 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 The combined outcome of the root test command Thrown if , or is null 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 list 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 The type of exception thrown when a filter cannot be parsed. 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 Creates a filter set from its textual representation as a filter set expression consisting of inclusion and exclusion rules. The filter set expression The parsed filter set Specifies an inclusion or exclusion filter rule. This class cannot be inherited. Gets the filter. Gets the filter rule type: inclusion or exclusion. A filterset combines zero or more filters as a sequence of inclusion and exclusion rules. This class cannot be inherited. Returns an empty filter set. Returns true if the filter set has at least one inclusion rule. Returns true if the filter set is empty. Gets the read-only list of filter rules. Evaluates the rules of this filter set and indicates whether the item is included, excluded or not matched by the list of rules. The item The result Formats the filter set to a string suitable for parsing by . The formatted filter set expression Returns a that represents the current . A that represents the current . 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 Parses a test filter set. The filter expression The parsed filter set 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 list 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 Specifies whether a filter rule is an inclusion or exclusion rule. The filter rule is an inclusion rule. The filter rule is an exclusion rule. Specifies whether a filter set includes, excludes or does not match a particular item. The filter set neither includes nor excludes the item. The filter set includes the item. The filter set excludes the item. 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 Recovers the attachment information from serializable attachment data. The attachment data The attachment Thrown if is null Generates serializable attachment data from an attachment. The attachment data An Xml-serializable structure that describes the contents, encoding and disposition of an 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 class cannot be inherited. Gets or sets the content disposition of the attachment which indicates how the attachment has been stored. The content disposition, initially 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. 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 Represents a binary-encoded attachments. This class cannot be inherited. Gets the binary content of the attachment, not null. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . Generates serializable attachment data from an attachment. The attachment data A test log writer that falls back to a different test log writer for certain operations when its primary test log writer is closed. Adds an attachment to the log. The attachment to write, never null Begins a marked region in a log stream. The log stream name The marker Begins a section in a log stream. The log stream name The name of the section to begin, never null Embeds an attachment into a log stream. The log stream name The name of the attachment to write, never null Ends the current region started with one of the Begin* methods in a log stream. The log stream name Writes a text string to a log stream. The log stream name The text to write, never 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 A test log writer that does nothing. Adds an attachment to the log. The attachment to write, never null Begins a marked region in a log stream. The log stream name The marker Begins a section in a log stream. The log stream name The name of the section to begin, never null Embeds an attachment into a log stream. The log stream name The name of the attachment to write, never null Ends the current region started with one of the Begin* methods in a log stream. The log stream name Writes a text string to a log stream. The log stream name The text to write, never null An implementation of that writes its output to a string. Gets the formatted log contents as a string. The contents as a string A structured test log is an Xml-serializable in-memory representation of a test log written by a . This class cannot be inherited. Gets the list of attachments, not null. Gets the list of streams, not null. Used for Xml-serialization. Gets an attachment by name. The attachment name The attachment or null if not found Thrown if is null Gets a stream by name. The stream name The stream or null if not found Thrown if is null Formats the log to a string by concatenating all formatted streams and displaying a "*** Stream Name ***" header for each stream name. The formatted text Writes the contents of the log to a test log writer. The writer Thrown if is null A structured log stream object represents a recursively structured stream of rich text that supports embedded attachments, nested sections and marked regions. Each part of the text is captured by a tag, some of which are composable and may therefore contain other tags. It is effectively an xml-serializable representation of a test log stream written by a . 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 Writes the contents of the stream to a test log stream writer. The writer Thrown if is null Writes a in memory. Gets the test log under construction. Adds an attachment to the log. The attachment to write, never null Closes the log. Flushes the log. Begins a marked region in a log stream. The log stream name The marker Begins a section in a log stream. The log stream name The name of the section to begin, never null Embeds an attachment into a log stream. The log stream name The name of the attachment to write, never null Ends the current region started with one of the Begin* methods in a log stream. The log stream name Flushes a log stream. The log stream name Writes a text string to a log stream. The log stream name The text to write, never null Flushes the writer and formats it as a string. The formatted log as a string A structured text object contains attachments and formatted text with rich presentation elements. Structured text is emitted by a . This class cannot be inherited. Gets the immutable list of attachments. Gets a copy of the body tag that described the structured text. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . Returns the total length of all s that appear within the structured text body. The total text length Formats the structured text to a string, discarding unrepresentable formatting details. The structured text as a string Writes the structured text to a test log stream writer and truncates its text to a particular maximum length, omitting all subsequent contents. The writer The maximum length of text to write True if truncation occurred Thrown if is null Thrown if is negative Writes the structured text to a test log stream writer. The writer Thrown if is null Writes log information in a structured manner so as to produce a or . Returns the structured text formatted as a string. The structured text Gets the structured text produced so far. The structured text Writes the object to a test log stream. The test log stream 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. Common test 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 log stream writer provides methods for writing rich structured text with embedded attachments, nested sections and hidden semantic markers to a particular stream within a log writer. Gets the containing log writer. 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 marked region. Maybe be nested. A marker is a hidden tag that labels its contents with a semantic class. It is roughly equivalent in operation to an HTML "span" tag. Various tools may inspect the markers and modify the presentation accordingly. The marker A Disposable object that calls when disposed. This is a convenience for use with the C# "using" statement. Begins a section with the specified name. Maybe be nested. A section groups together related content in the test log to make it easier to distinguish. The section name is used as a heading. The name of the section A Disposable object that calls when disposed. This is a convenience for use with the C# "using" statement. Thrown if is 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. The attachment to embed The attachment Thrown if is null Thrown if there is already an attachment with the same name Embeds another copy of an existing attachment. 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 previously attached 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 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 region most recently started with one of the Begin* methods. Thrown if there is no current nested region Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. Writes a character to the text stream. The character to write to the text 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 the text representation of an object to the text stream by calling ToString on that object. The object to write. Writes a test log stream writable object to the stream. The object to write, or null if none Writes an ellipsis to indicate where content has been elided for brevity. An ellipsis may be used, for example, when printing assertion failures to clearly identify sections where the user is not being presented all of the information because it was too long and had to be truncated. Writes an exception. The exception to write Thrown if is null Writes an exception within its own section. The exception to write The section name, or null if none Thrown if is null Writes an exception. The exception data to write Thrown if is null Writes an exception within its own section which provides additional cues for interpretation. The exception data to write The section name, or null if none Thrown if is null Writes highlighted text. Highlights can be used to emphasize important information such differences between similar expected and actual values. The text to write, or null if none Writes the text representation of an object by calling ToString on this object, followed by a line terminator to the text stream. The object to write. If value is null, only the line termination characters are written. 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. Gets the stream writer for the built-in log stream where assertion failures, exceptions and other failure data are recorded. Returns true if the log writer is closed. 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 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 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 Closes the log writer. Closes the log. Flushes the log writer. Flushes the log. Gets a writer for the stream with the specified name. The stream name, never null The log stream writer Begins a marked region in a log stream. The log stream name The marker Begins a section in a log stream. The log stream name The name of the section to begin, never null Embeds an attachment into a log stream. The log stream name The name of the attachment to write, never null Thrown if no attachment with the specified name has been previously attached Ends the current region started with one of the Begin* methods in a log stream. The log stream name Thrown if there is no current nested region Flushes a log stream. The log stream name Writes a text string to a log stream. The log stream name The text to write, never null Represents a text-encoded attachment. This class cannot be inherited. Gets the text of the attachment, not null. Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . Generates serializable attachment data from an attachment. The attachment data An implementation of that represents the test log as text written to a . Returns true if the verbose print mode is enabled. Gets the underlying text writer. Adds an attachment to the log. The attachment to write, never null Begins a marked region in a log stream. The log stream name The marker Begins a section in a log stream. The log stream name The name of the section to begin, never null Embeds an attachment into a log stream. The log stream name The name of the attachment to write, never null Ends the current region started with one of the Begin* methods in a log stream. The log stream name Writes a text string to a log stream. The log stream name The text to write, never null A marker is a hidden tag that labels its contents with a semantic class. It is roughly equivalent in operation to an HTML "span" tag. Various tools may inspect the markers and modify the presentation accordingly. Several standard marker classes are provided but you may also define your own. Standard marker class for assertion failures. This field is constant and read-only. Standard marker class for code location references. This field is constant and read-only. Column attribute for code location references. This field is constant and read-only. Line attribute for code location references. This field is constant and read-only. Path attribute for code location references. This field is constant and read-only. Standard marker class for content that represents added content in a diff. This field is constant and read-only. Standard marker class for content that represents changed content in a diff. This field is constant and read-only. Standard marker class for content that represents deleted content in a diff. This field is constant and read-only. Standard marker class for content that has been elided and may be made available instead as an attribute. This field is constant and read-only. Standard marker class for exceptions including their details. This field is constant and read-only. Standard marker class for exception messages reported as part of exception details. This field is constant and read-only. Standard marker class for exception types reported as part of exception details. This field is constant and read-only. Standard marker class for content that should be displayed with a highlight. This field is constant and read-only. Standard marker class for labels and headings. This field is constant and read-only. Standard marker class for link to a url. This field is constant and read-only. Url attribute for links. This field is constant and read-only. Standard marker class for fixed width output such as that from a console or structured table. This field is constant and read-only. Standard marker class for stack traces. This field is constant and read-only. Standard marker for assertion failures. Gets the marker's attributes which are optional name/value pairs associated with a marker to carry additional semantic content. Gets the marker class. Standard marker for content that represents added content in a diff. Standard marker for content that represents changed content in a diff. Standard marker for content that represents deleted content in a diff. Standard marker for text that is elided and replaced by an ellipsis. Standard marker for exceptions including their details. Standard marker for exception messages reported as part of exception details. Standard marker for exception types reported as part of exception details. Standard marker for content that should be displayed with a highlight. Standard marker for labels and headings. Standard marker for fixed width output such as that from a console or structured table. Standard marker for stack traces. Creates a standard marker for a code location. 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. Creates a standard marker for a link to a Url. Returns the fully qualified type name of this instance. A containing a fully qualified type name. Verifies that the parameter is a valid marker class or attribute identifier. The identifier Thrown if is null Thrown if is empty or contains characters other than letters, digits and underscores Creates a copy of the marker with the specified attribute added. The attribute name The attribute value The marker copy with the attribute Thrown if or is null Thrown if the is not a valid identifier. Interface implemented by objects that can write themselves to a Writes the object to a test log stream. The test log stream 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. An abstract base class for tag visitors that recursively traverses all tags and does nothing else by default. This class is and so cannot be instantiated. Visits a body tag. The tag to visit Visits an embedded attachment tag. The tag to visit Visits a marker tag. The tag to visit Visits a section tag. The tag to visit Visits a text tag. The tag to visit The top-level container tag of structured text. This class cannot be inherited. Clones the object. The cloned object Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . An abstract container tag for representing tags that can contain other 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 Thrown if is null Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. An embedded attachment tag. This class cannot be inherited. Gets or sets the name of the referenced attachment to embed, not null. Thrown if is null Clones the object. The cloned object Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . A marker tag. This class cannot be inherited. Gets the list of marker attributes. Gets or sets the marker class, not null. Thrown if is null Thrown if the is not a valid identifier. Gets the marker. Clones the object. The cloned object Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . Represents a marker attribute. This class cannot be inherited. Gets or sets the attribute name, not null. Thrown if is null Thrown if the is not a valid identifier. Gets or sets the attribute value, not null. Thrown if is null A section tag. This class cannot be inherited. Gets or sets the section name, not null. Thrown if is null Clones the object. The cloned object Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . An tag represents a portion of the contents of a structured test log stream. Each one can be thought of as a command that will regenerate the structured test log stream when written back out. This class is and so cannot be instantiated. Invokes the appropriate visitor method for this tag type. The visitor Thrown if is null Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. Formats the tag using a . The formatted text Writes the structured text tag to a . The structured text writer Throw if is null Formats instances to plain text. Text tags are written as-is. Sections introduce paragraph breaks with the header written out as the first line. Embedded attachments are described by name. Appends text to the buffer including any requested spacing. The text to append Ensures that the next chunk of text appended is separated by at least the specified number of line breaks. The minimum number of line breaks to insert Gets the formatted text that has been built. Visits a body tag. The tag to visit Visits an embedded attachment tag. The tag to visit Visits a marker tag. The tag to visit Visits a section tag. The tag to visit Visits a text tag. The tag to visit A text tag, containing text. This class cannot be inherited. Gets or sets the text within the tag, not null. Thrown if is null Clones the object. The cloned object Determines whether the specified is equal to the current . true if the specified is equal to the current ; otherwise, false. 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 . Provides the Xml schema for this element. The schema set The schema type of the element Visits a . Visits a body tag. The tag to visit Visits an embedded attachment tag. The tag to visit Visits a marker tag. The tag to visit Visits a section tag. The tag to visit Visits a text tag. The tag to visit Wraps a test execution listener so that it can be accessed remotely. Notifies the listener that a test step has finished execution. The id of the test step, not null The test result, not null Notifies the listener that a test step has changed lifecycle phase. The id of the test step, not null The lifecycle phase name, not null Notifies the listener that an attachment has been added to a test step log. The id of the test step, not null The attachment, not null Notifies the listener that a marker region has been started within a test step log stream. The id of the test step, not null The stream name, not null The marker Notifies the listener that a section region has been started within a test step log stream. The id of the test step, not null The stream name, not null The section name, not null Notifies the listener that an attachment has been embedded into a test step log stream. The id of the test step, not null The stream name, not null The attachment name, not null Notifies the listener that a region started with Begin* has finished within a test step log stream. The id of the test step, not null The stream name, not null Notifies the listener that text has been written to a test step log stream. The id of the test step, not null The stream name, not null The text, not null Notifies the listener that a test step has dynamically added metadata to itself. The id of the test step, not null The metadata key, not null The metadata value, not null Notifies the listener that a test step has started execution. Information about the test step that is about to start, not null Wraps a test exploration listener so that it can be accessed remotely. Notifies the listener that an annotation has been added to the test model. The annotation that was added Notifies the listener that a subtree of tests has been merged into the test model. The id of the parent test, or null if adding the root The test at the top of the subtree was merged A test execution listener observes the progress of test execution as a series of events. Notifies the listener that a test step has finished execution. The id of the test step, not null The test result, not null Notifies the listener that a test step has changed lifecycle phase. The id of the test step, not null The lifecycle phase name, not null Notifies the listener that an attachment has been added to a test step log. The id of the test step, not null The attachment, not null Notifies the listener that a marker region has been started within a test step log stream. The id of the test step, not null The stream name, not null The marker Notifies the listener that a section region has been started within a test step log stream. The id of the test step, not null The stream name, not null The section name, not null Notifies the listener that an attachment has been embedded into a test step log stream. The id of the test step, not null The stream name, not null The attachment name, not null Notifies the listener that a region started with Begin* has finished within a test step log stream. The id of the test step, not null The stream name, not null Notifies the listener that text has been written to a test step log stream. The id of the test step, not null The stream name, not null The text, not null Notifies the listener that a test step has dynamically added metadata to itself. The id of the test step, not null The metadata key, not null The metadata value, not null Notifies the listener that a test step has started execution. Information about the test step that is about to start, not null A test exploration listener observes the progress of test exploration as a series of events. Notifies the listener that an annotation has been added to the test model. The annotation that was added Notifies the listener that a subtree of tests has been merged into the test model. The id of the parent test, or null if adding the root The test at the top of the subtree was merged Describes an annotation in a portable manner for serialization. Gets or sets the code location associated with the annotation. Gets or sets the code reference associated with the annotation. Gets or sets additional details such as exception text, or null if none. Gets or sets the annotation message. Thrown if is null Gets or sets the annotation type. Writes the annotation to a logger for presentation. The logger If true, includes an identifying prefix to describe the annotation type, otherwise we assume that the logger will do its own thing based on the log severity Thrown if is null 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. Recursively enumerates this test and all of its descendants. Gets the mutable list of children. Gets or sets the full name of the test. Thrown if is null 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. Recursively enumerates all tests including the root test. Gets the mutable list of annotations. Gets or sets the root test in the model. Thrown if is null Gets the number of error annotations on the model. The numer of error annotations present Gets a test by its id. The test id The test, or null if not found Thrown if is null Merged a subtree of tests into the model. The id of the parent test, or null if adding the root The top test of the subtree to add The merged test, if the test was already present in the tree Thrown if is null Resets the test index by id in case the test model has been modified. Describes a test package in a portable manner for serialization. This class cannot be inherited. Gets or sets the test package configuration. Describes a test parameter in a portable manner for serialization. This class cannot be inherited. 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 Provides helpers for working with assemblies. This is a and so cannot be inherited or instantiated. Gets the application version given its primary assembly. Uses the assembly file version if available. The assembly The assembly's file version Thrown if is null 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 Gets the culture component of an assembly name. The assembly name The culture name 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 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 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. This assembly loader loads assemblies externally for reflection only. This implementation ensures that the assembly files do not remain locked on disk and are not cached in memory outside of the scope of the loader. Consequently the Garbage Collector will automatically reclaim the loader and its contents when they become unreferenced. In contrast, that of the standard .Net reflection-only load context () does not allow assemblies to be reclaimed until the is unloaded. The loader considers all assemblies in the specified search path as well as any that can be located using the current AppDomain's assembly resolvers. Gets the reflection policy used to load and access the assemblies. Adds a hint directory to search for loading assemblies. The search directory to add Thrown if is null 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 the named type is assignable from the specified type. The search type The candidate type True if the search type is assignable from the candidate type Thrown if or is null 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 The type of exception thrown when a reflection wrapper could not be resolved to a native reflection target. 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 native based on .Net reflection. 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 Returns true if the target represents an unresolved member with limited support for reflection. The member, or null if none True if the target is unresolved Returns true if the target represents an unresolved parameter with limited support for reflection. The parameter, or null if none True if the target is unresolved 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. Allows the code location structure to control its own serialization and deserialization. The serialization info to populate with data. The destination for this serialization. Provides the Xml schema for this element. The schema set The schema type of the element 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. Provides the Xml schema for this element. The schema set The schema type of the element 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 Specifies a typed constant value. Returns true if the value is an array. Returns true if the value is an enum. Returns true if the contents of can be interpreted as a native value or false if must be used to resolve the constant to a native value. Returns true if the value is a type. Gets the type of the constant. The type may be an array type, an enum type, a primitive type, or the type. Gets the value of the constant. If is true, then this property contains the native value. Otherwise it is represented differently depending upon its type. If the constant is a primitive value, then the value will be a primitive value such as an integer, string, float or null.If the constant is an enum, then the value will be a primitive value of the underlying type of the enum.If the constant is an array, then the value will be an array of objects representing the elements of the array.If the constant is a type, then the value will be a . Creates a constant value that wraps an existing native value. The native value The constant Resolves the constant to a native value by replacing type references with actual values, arrays of constants with values of the appropriate type, and enums with values. If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays The native constant value 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 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. If true, throws an exception if the target could not be resolved, otherwise returns null 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. If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays though it still may throw an exception if the attribute class cannot be instantiated 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 Loads an assembly from a file. The assembly file path 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 name of 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, or null if none True if the other type is not null and this type is assignable from the other type Returns true if this type is a subclass of the specified type. The other type, or null if none True if the other type is not null, this type is a subclass of the other type, and this type 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. A base reflection policy implementation that performs argument validation. This class is and so cannot be instantiated. Loads an assembly by name. The full or partial assembly name of the assembly to load The loaded assembly Loads an assembly from a file. The assembly file path The loaded assembly Loads an assembly from a file. The assembly file path, not null The loaded assembly wrapper Any exception may be thrown if the loading fails Loads an assembly. The assembly name, not null The loaded assembly wrapper Any exception may be thrown if the loading fails Resolves debug symbols via the CorMetaDataDispenser COM class. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 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 singleton debug symbol resolver used by these utilities. Creates a new debug symbol resolver appropriate for this platform. If true, avoids taking a lock on the PDB files but may use more memory or storage The debug symbol resolver Gets the location of a source file that contains the declaration of a type, or unknown 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 unknown 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 Implementation of a debug symbol resolver for Mono. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 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 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 If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays The attribute instance Thrown if the attribute could not be resolved 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 assembly to its native object. The reflected assembly If true, allows the assembly to be resolved by partial name if no match could be found by fullname If true, throws an exception if resolution fails, otherwise returns null The resolved . Thrown if is null Thrown if could not be resolved 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. This class cannot be inherited. Gets the rank of the array type. Returns true if the type represents an array. 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. If true, throws an exception if the target could not be resolved, otherwise returns null 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. If true, throws an exception if the target could not be resolved, otherwise the result may include unresolved types, enums or arrays though it still may throw an exception if the attribute class cannot be instantiated 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 name of 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 name of 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. This class cannot be inherited. 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. 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 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 name of 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, including all generic parameters of its declaring types if it is nested enumerated from outside in. 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, or an empty string if it has none 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 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 namespace in which the type is declared. 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, or null if none True if the other type is not null and this type is assignable from the other type Returns true if this type is a subclass of the specified type. The other type, or null if none True if the other type is not null, this type is a subclass of the other type, and this type 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. This class cannot be inherited. 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. This class cannot be inherited. 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. This class cannot be inherited. 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. This class cannot be inherited. 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. This class cannot be inherited. 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. This class cannot be inherited. 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. This class cannot be inherited. 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, 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 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, 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. 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, 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). 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 An interface implemented by special reflection types that represent code elements whose native definition could not be resolved so we fall back on the wrapper instead. Gets the underlying reflection adapter. 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 An implementation of that runs tests using a . The driver is created when the first package is loaded and is disposed when the runner is disposed. Consequently the test driver may be reused for multiple test runs. Gets the event dispatcher for the test runner. Gets the logger, or null if the test runner has not been initialized. Gets the test runner options, or null if the test runner has not been initialized. Disposes the test runner. Does nothing if already disposed or if not initialized. The progress monitor Explores tests in a test package. The test package configuration The test exploration options The progress monitor The test report Initializes the test runner. The test runner options The logger The progress monitor Registers a test runner extension. The test runner extension to register Explores and runs tests in a test package. The test package configuration The test exploration options The test execution options The progress monitor The test report 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 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 Gets the factory by name, or null if none. The name of the test runner factory, matched case-insensitively The test runner Gets the names of all supported test runner factories. The names of all runner factories Base arguments for events raised to indicate the completion of an operation. This class is and so cannot be instantiated. Returns true if the operation completed successfully. Base arguments for events raised to indicate the beginning of an operation. This class is and so cannot be instantiated. 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 the test runner in an isolated AppDomain of the current process. This field is constant and read-only. Runs the test runner in an isolated process. This field is constant and read-only. Runs the test runner 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 basic usage pattern 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, the launcher assumes that a runtime environment has already been established and is accessible via the . If there is no runtime yet, then you can cause one to be configured automatically for the duration of the test run by setting the property accordingly. You can override the default that is created by setting the property. 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 whether to ignore annotations when determining the result code. If false, then error annotations, usually indicative of broken tests, will cause a failure result to be generated. The default value is false. 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 list of report formats to generate. Gets or sets the report formatter options. Thrown if is null 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 maximum amount of time the tests can run before they are canceled. The default value is null, meaning an infinite time. Gets or sets the to use for automatically initializing the runtime during test execution or null if the runtime 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 execution options. Thrown if is null Gets or sets the test exploration options. Thrown if is null Gets or sets the test package. Thrown if is null Gets a mutable list of test runner extension specifications to instantiate and register with the test runner during test execution. Gets a mutable list of test runner extensions to register with the test runner during test execution. Specifies the name of a to use for constructing the at test execution time. The default value is . Thrown if is null Gets or sets the test runner options. Thrown if is null Cancels the test run and prevents a new one from starting. Runs the test package as configured. A result object 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. Gets a short summary with the number of test that passed, failed and so on. Gets the statistics of the execution from the report or an empty statistics object if none. Adds a new report document path. The report document path Thrown if is null Generates reports of the desired forms. This method adds the paths of the generated report documents to . The report directory The report name The report formats to generate The report formatter options The report manager A progress monitor for the operation Thrown if , , , , , or is null. Sets the result code of the result. The new result code Shows the report documents enumerated in the launcher result. True if the report documents were successfully opened Provides options that control the operation of the test runner. This class cannot be inherited. Gets a mutable collection of key/value pairs that specify configuration properties for the test runner. Creates a copy of the options. The copy Provides helper functions for test runner tools. This is a and so cannot be inherited or instantiated. Creates a test runner given its factory name. The test runner factory name The test runner Thrown if is null Presents a generated report to the user using the default viewing application for the report's document type. The path of the report True if the report document was successfully opened A test runner provides the basic functionality for loading, exploring and running tests. It abstracts away most concerns having to do with the execution of tests in isolated (possibly remote) domains. Gets the event dispatcher for the test runner. Disposes the test runner. Does nothing if already disposed or if not initialized. The progress monitor Thrown if is null Explores tests in a test package. The test package configuration The test exploration options The progress monitor The test report Thrown if , , or is null Thrown if the operation failed Thrown if the runner has been disposed Initializes the test runner. The test runner options The logger The progress monitor Thrown if , or is null Thrown if the runner is already initialized Thrown if the runner has been disposed Registers a test runner extension. The test runner extension to register Thrown if is null Thrown if the test runner has already been initialized Explores and runs tests in a test package. The test package configuration The test exploration options The test execution options The progress monitor The test report Thrown if , , , or is null Thrown if the operation failed Thrown if the runner has been disposed 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 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 Thrown if is null Gets the factory by name, or null if none. The name of the test runner factory, matched case-insensitively The test runner Thrown if is null Gets the names of all supported test runner factories. The names of all runner factories The type of exception thrown when an error occurs while manipulating the disk cache. A simple disk cache that stores its contents in a particular directory using hashes of the key values to ensure uniqueness. Gets the path of the cache directory. Gets the collection of disk cache groups. Gets the group with the given key. The key, nor null The cache group Deletes all items in the cache. Represents a disk cache group. Gets the disk cache that contains the group. Returns true if the group exists on disk. Gets the key of the group. Gets the that represents the physical storage location of the disk cache group in the filesystem. Creates the group if it does not exist. Creates a directory within the group. The relative path of the directory to create within the group Directory information for the directory that was created Deletes the group and all of its contents if any. Gets information about a file within the group. The relative path of the file within the group The file info Gets information about a directory within the group. The relative path of the directory within the group The directory info Opens a file within the group. If a new file is being created, automatically create the group and the containing directory for the file. The relative path of the file to open within the group The file open mode The file access mode The file sharing mode The file stream A disk cache that stores its contents in the user's temporary directory. The default cache directory name. This field is read-only. A disk cache manages temporary files and directories stored on disk and arranged into groups associated with arbitrary string keys. The files and directories within each group are assumed to have the same lifetime. Gets the collection of disk cache groups. Deletes all items in the cache. Thrown if an error occurs. A disk cache group represents an indexed partition of the disk cache. It is physically manifested as a directory on disk and may contain any number of related files or directories with the same lifetime. Gets the disk cache that contains the group. Returns true if the group exists on disk. Thrown if an error occurs. Gets the key of the group. Gets the that represents the physical storage location of the disk cache group in the filesystem. Creates the group if it does not exist. Thrown if an error occurs. Creates a directory within the group. The relative path of the directory to create within the group Directory information for the directory that was created Thrown if is null Thrown if an error occurs. Deletes the group and all of its contents if any. Thrown if an error occurs. Gets information about a file within the group. The relative path of the file within the group The file info Thrown if is null Thrown if an error occurs. Gets information about a directory within the group. The relative path of the directory within the group The directory info Thrown if is null Thrown if an error occurs. Opens a file within the group. If a new file is being created, automatically create the group and the containing directory for the file. The relative path of the file to open within the group The file open mode The file access mode The file sharing mode The file stream Thrown if is null Thrown if an error occurs. Represents a collection of groups in a disk cache indexed by an aritrary key string. Gets the group with the specified key. The key The group Thrown if is null An aggregate test driver partitions the work of running tests among multiple test drivers. This class is and so cannot be instantiated. Runs a block of code with partitions of the test package. The test package configuration, not null The action to perform given a list of partitions, not null An action that can be used to report progress, not null Internal implementation of . Called after argument validation takes place. Internal implementation of . Called after argument validation takes place. Base implementation of a test driver. This class is and so cannot be instantiated. Gets the logger, or a null logger instance if not initialized. Gets the runtime setup, or null if not initialized. Gets the test runner options, or null if not initialized. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Disposes the test driver. True if was called Explores tests in a test package. The test package configuration The test exploration options The test exploration listener The progress monitor The test report Internal implementation of . Called after argument validation takes place. Initializes the test driver. The runtime setup The test runner options The logger Internal implementation of . Called after argument validation takes place. Explores and runs tests in a test package. The test package configuration The test exploration options The test exploration listener The test execution options The test execution listener The progress monitor The test report Internal implementation of . Called after argument validation takes place. A test driver that runs tests remotely within a remote host. The driver further partitions assemblies into test domains based on their configuration requirements. Provides an opportunity for subclasses to configure the host. The host setup, not null Provides an opportunity for subclasses to clean up the host as part of its disposal. The host, not null Runs a block of code with partitions of the test package. The test package configuration, not null The action to perform given a list of partitions, not null An action that can be used to report progress, not null Provides an opportunity for subclasses to initialize the host once created. The host, not null Creates hosted test driver instances. Specifies whether to share the app-domain among all test domains. Creates a test driver. The new test driver A simple test driver implementation that runs tests locally within the current domain without any additional consultation of the test frameworks. Disposes the test driver. True if was called Internal implementation of . Called after argument validation takes place. Internal implementation of . Called after argument validation takes place. Internal implementation of . Called after argument validation takes place. A proxy for a remote test driver. Wraps a test driver and forwards all messages to it. Disposes the test driver. True if was called Internal implementation of . Called after argument validation takes place. Internal implementation of . Called after argument validation takes place. Internal implementation of . Called after argument validation takes place. An event that is fired when the test driver is disposed. Provides information about a partition of the aggregate test driver. Each partition specifies a test driver and a test package configuration that covers a portion of the total test package. Gets the test driver factory. Gets the test package configuration for the driver. A test driver controls how tests are loaded, explored, and run. Explores tests in a test package. The test package configuration The test exploration options The test exploration listener The progress monitor The test report Initializes the test driver. The runtime setup The test runner options The logger Thrown if , , or is null Explores and runs tests in a test package. The test package configuration The test exploration options The test exploration listener The test execution options The test execution listener The progress monitor The test report Creates test drivers. Creates a test driver. The new test driver Arguments for an event raised to indicate that the test runner disposal has finished. This class cannot be inherited. Arguments for an event raised to indicate that the test runner disposal has started. This class cannot be inherited. Arguments for an event raised to indicate that test exploration has finished. This class cannot be inherited. Gets the report, including test model data on success. Arguments for an event raised to indicate that test exploration has started. This class cannot be inherited. Gets the report lock-box which may be used to access the report asynchronously during execution. Gets the test exploration options. Gets the test package configuration. Arguments for an event raised to indicate that the test runner initialization has finished. This class cannot be inherited. Arguments for an event raised to indicate that the test runner initialization has started. This class cannot be inherited. Gets the test runner options. Arguments for an event raised to indicate that test execution has finished. This class cannot be inherited. Gets the report, including test package run data on success. Arguments for an event raised to indicate that test execution has started. This class cannot be inherited. Gets the report lock-box which may be used to access the report asynchronously during execution. Gets the test execution options. Gets the test exploration options. Gets the test package configuration. Arguments for an event raised to signal that an annotation has been added to the test model. This class cannot be inherited. Gets the annotation that was added. Gets the report. Arguments for an event raised to signal that a subtree of tests has been merged into the test model. This class cannot be inherited. Gets the report. Gets the test at the top of the subtree that was merged. Dispatches test runner events to listeners. Each notification function ensures that the event is safely dispatched via . This class cannot be inherited. Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Dispatches the event. The event arguments Subscribes to another event object such that the events will be forwarded to the handlers registered on this dispatcher. The other events object Thrown if is null The event raised to indicate that the test runner disposal has finished. The event raised to indicate that the test runner disposal has started. The event raised to indicate that test exploration has finished. The event raised to indicate that test exploration has started. The event raised to indicate that the test runner initialization has finished. The event raised to indicate that the test runner initialization has started. The event raised to indicate that a log message was written by the test runner. The event raised to indicate that test execution has finished. The event raised to indicate that test execution has started. The event raised to indicate that an annotation was added to the test model. The event raised to indicate that a subtree of tests was merged into the test model. The event raised to indicate that a test step has finished execution. The event raised to indicate that a test step has entered a new lifecycle phase. The event raised to indicate that an attachment has been added to a test step log. The event raised to indicate that a marker has been started within a test step log stream. The event raised to indicate that a section has been started within a test step log stream. The event raised to indicate that an attachment has been embedded into a test step log stream. The event raised to indicate that a section has finished within a test step log stream. The event raised to indicate that text has been written to a test step log stream. The event raised to indicate that a test step dynamically added metadata to itself. The event raised to indicate that a test step has started execution. Base arguments for an event raised to provide information about a test step. This class is and so cannot be instantiated. Gets the report. Gets the test data of the test that contains the test step. Gets the test step run. Gets the kind of step described using the metadata key. The step kind Arguments for an event raised to indicate that a test step has finished execution. This class cannot be inherited. Arguments for an event raised to indicate that a test step has entered a new lifecycle phase. This class cannot be inherited. Gets the lifecycle phase name. Arguments for an event raised to indicate that an attachment has been added to a test step log. This class cannot be inherited. Gets the attachment. Arguments for an event raised to indicate that a marker region has been started within a test step log stream. This class cannot be inherited. Gets the marker. Arguments for an event raised to indicate that a section has been started within a test step log stream. This class cannot be inherited. Gets the name of the section that was started. Arguments for an event raised to indicate that an attachment has been embedded into a test step log stream. This class cannot be inherited. Gets the name of the attachment that was embedded. Arguments for an event raised to indicate that a section has been finished within a test step log stream. This class cannot be inherited. Base arguments for an event raised to indicate that a test step log stream has been modified in some way. This class is and so cannot be instantiated. Gets the log stream name. Arguments for an event raised to indicate that text has been written to a test step log stream. This class cannot be inherited. Gets the text that was written. Arguments for an event raised to indicate that a test step dynamically added metadata to itself. This class cannot be inherited. Gets the metadata key. Gets the metadata value. Arguments for an event raised to indicate that a test step has started execution. This class cannot be inherited. Declares all of the events that may be raised by a . The event raised to indicate that the test runner disposal has finished. The event raised to indicate that the test runner disposal has started. The event raised to indicate that test exploration has finished. The event raised to indicate that test exploration has started. The event raised to indicate that the test runner initialization has finished. The event raised to indicate that the test runner initialization has started. The event raised to indicate that a log message was written by the test runner. The event raised to indicate that test execution has finished. The event raised to indicate that test execution has started. The event raised to indicate that an annotation was added to the test model. The event raised to indicate that a subtree of tests was merged into the test model. The event raised to indicate that a test step has finished execution. The event raised to indicate that a test step has entered a new lifecycle phase. The event raised to indicate that an attachment has been added to a test step log. The event raised to indicate that a marker has been started within a test step log stream. The event raised to indicate that a section has been started within a test step log stream. The event raised to indicate that an attachment has been embedded into a test step log stream. The event raised to indicate that a section has finished within a test step log stream. The event raised to indicate that text has been written to a test step log stream. The event raised to indicate that a test step dynamically added metadata to itself. The event raised to indicate that a test step has started execution. Monitors events and writes debug messages to the runner's logger. Initializes the extension as part of extension installation. The log extension writes a summary of test execution progress to the test runner's logger 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 . Initializes the extension as part of extension installation. Logs an annotation. The annotation to log Logs a message about a test case that has finished. The event Logs a message about a test case that has started. The event Abstract implementation of a test runner extension. for more details. This class is and so cannot be instantiated. Gets the test runner event extension point. Gets the logger. Gets or sets configuration parameters for the extension. Initializes the extension as part of extension installation. Installs the extension into a test runner. The test runner events, not null The logger, not null Provides utilities for manipulating test runner extensions. This is a and so cannot be inherited or instantiated. Creates an extension from its specification. An extension specification has the form "[Namespace.]Type,Assembly[;Parameters]". The extension class must implement . The namespace may be omitted if the assembly contains exactly one class with the specified name. The parameter string is passed to the extension exactly as written. Examples: "MyExtensions.MyExtension,MyExtensions.dll;Parameter1,Parameter2""CustomLogger,MyExtensions" The extension specification The extension Thrown if the extension cannot be instantiated and configured Thrown if is null A test runner extension plugs augments the behavior oa by attaching new behaviors to its event handlers. Typical extension use-cases: Custom logging by listening for events of interest and writing messages to a file or to another location.Custom configuration of test package loading, test exploration and test execution options by listening for the starting events of the phase and modifying the options in place. Gets or sets configuration parameters for the extension. Installs the extension into a test runner. The test runner events, not null The logger, not null 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 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Populates the test model. The test exploration options The test exploration listener The progress monitor Loads a test package into the test harness. The test package configuration The progress monitor Runs the tests. The test execution options The test execution listener The progress monitor Unloads the tests. 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 exploration options The test exploration listener The progress monitor Thrown if or is null Thrown if has not been called yet Loads a 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 execution listener The progress monitor Thrown if , or is null Thrown if has not been called yet Unloads the tests. The progress monitor Thrown if is null A test harness factory. Creates a test harness and associates it with its test harness contributors, if any. The test harness 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. Utilities for working with Gallio projects. Load a saved Gallio project file. The location of the project file. A Gallio Project instance. Thrown when the specified project location is invalid. Save a Gallio project to disk. The Project instance to save. The location to save it to. 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 The report formatter options 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 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 Describes a log entry for reporting purposes. Gets or sets the log message details, such as an exception. Gets or sets the log message. Gets or sets the log message severity. 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 a mutable list of log entries. Gets or sets the test model, or null if none. Gets or sets the test package configuration, or null if none. Gets or sets the test package run results, or null if none. Adds a log entry to the report. The log entry to add Thrown if is null 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 Provides options to report formatters. This class cannot be inherited. Gets a mutable collection of key/value pairs that specify configuration properties for the report formatter. Creates a copy of the options. The copy Collects summary statistics about test execution for reporting purposes. This class cannot be inherited. Gets or sets the number of assertions evaluated. Gets or sets the total duration summarized tests 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. Updates the test outcome statistics counters with an the outcome of a test. The test outcome 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 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 test package for reporting purposes. This class cannot be inherited. Recursively enumerates all test step runs including the root test step run. 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 Summarizes the execution of a single test step for reporting purposes. This class cannot be inherited. Recursively enumerates all test step runs including this one. Gets the list of child step runs. Gets or sets the time when the test run ended. 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 Gets or sets the test log. Thrown if is null 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 The report formatter options 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 The report formatter options 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 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 A configuration section handler for Gallio used to register Gallio components in applications and in plugins. The name of the Gallio section: "gallio". This field is constant and read-only. Creates a configuration section handler. Parent object. Configuration context object. Section XML node. The created section handler object. Describes the configuration of a Gallio installation. Gets the list of additional plugin directories. Gets or sets the runtime path of the development copy of Gallio to use for running tests, or null if not applicable. To facilitate development of Gallio, it is possible to redirect an out-of-process or isolated app-domain test runner to a different version of Gallio. That way a standard installation of Gallio can be running in the IDE and then delegating to the development version when it actually needs to run tests. Of course, this mechanism can only hook into certain APIs like the test runner API. Consequently it may still be necessary to reinstall Gallio and/or restart the IDE if the objective is to test changes made to the IDE add-ins themselves. Get or sets the folder where Gallio was installed, or null if Gallio is not installed. Get or sets the version that was installed, or null if Gallio is not installed. Returns true if is set and refers to a directory that exists. True if the development runtime path is valid Loads the configuration from the registry. The installed configuration Detects the kind of process that is being used. This is a and so cannot be inherited or instantiated. Gets the process type of the current process. Provides functions for obtaining runtime services. This is a and so cannot be inherited or instantiated. Gets the runtime instance. Thrown if the runtime has not been initialized Returns true if the runtime has been initialized. Gets the runtime's logger, or a if the runtime is not initialized. Gets the path of the Gallio runtime components. The runtime path Sets the runtime instance. This method should only be used by applications that host Gallio and not generally by client code. The runtime instance, or null if none The event dispatched when the value of the current runtime changes. Initializes and shuts down the runtime. This is a and so cannot be inherited or instantiated. 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 An object that when disposed automatically calls . This is particularly useful in combination with the C# "using" statement or its equivalent. 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. Provides functions for detecting CLR runtime parameters. Returns true if the application is running within the Mono runtime. When using Mono, creates that re-enters the Mono runtime if the executable is .Net otherwise creates a standard process start info. The executable path The arguments The process start info Thrown if or is null Gets the .Net runtime version installed and currently running. The runtime version An exception that expresses a problem performing a runtime service. 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 configuration which specifies characteristics about the Gallio installation on the local machine, or null to determine it automatically. The installation configuration. 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 runtime path, or null to determine it automatically based on the location of the primary runtime assemblies. The runtime path specifies where the standard runtime plugins are located. The installation path. Default 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 deep copy of the runtime setup parameters. The copy Sets the configuration file path to the *.config file associated with an assembly. The assembly Thrown if is null 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 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 the paths and assembly names of all plugin assemblies. The paths 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 Thrown if the runtime could not be initialized 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 with the given id. The componentId A component with the specified id Thrown if the component could not be resolved 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 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 Thrown if the service could not be resolved Describes the kind of process that is executing. The process is running in the console. The process is running interactively. The process is running as a Windows service. Specifies the version of the runtime. .Net Framework 2.0. .Net Framework 3.5. .Net Framework 4.0. 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 Prints a user friendly usage string describing the command line argument syntax in a message box. The message box caption Thrown if is null 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 or sets the application name. The name, by default this is the program assembly's name Thrown if is null Get or sets the application title. The title, by default this is constructed from the application's name and version Thrown if is null Gets or sets the application version. The version, by default this is the program assembly's version Thrown if is null 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. Logs a message with an associated exception. The log message severity The log message, not null The associated exception data, or null if none 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 Default implementation of a debugger manager. Gets the default debugger. The default debugger A null implementation of a debugger. All services return do nothing results. Attaches the debugger to a process. The process to which the debugger should be attached A result code to indicate whether the debugger was attached Detaches the debugger from a process. The process from which the debugger should be detached A result code to indicate whether the debugger was detached Returns true if the debugger is attached to a process. The process to which the debugger should be attached True if the debugger is already attached Provides control over a debugger. Attaches the debugger to a process. The process to which the debugger should be attached A result code to indicate whether the debugger was attached Thrown if is null Detaches the debugger from a process. The process from which the debugger should be detached A result code to indicate whether the debugger was detached Thrown if is null Returns true if the debugger is attached to a process. The process to which the debugger should be attached True if the debugger is already attached Thrown if is null Obtains a reference to a debugger. Gets the default debugger. The default debugger Describes different possible outcomes from attaching a debugger to a process. The debugger could not attach to the process. The debugger was already attached to the process. The debugger has just been attached to the process. Describes different possible outcomes from detaching a debugger from a process. The debugger could not be detached from the process and remains attached. The debugger was already detached from the process. The debugger has just been detached from the process. Utilities for working with AppDomains. This is a and so cannot be inherited or instantiated. Creates an AppDomain. The application name for the new AppDomain, or null if none The application base directory for the new AppDomain, or null to use the current one The configuration file for the new AppDomain, or null to use the current one If true, enables shadow copying within the AppDomain The new AppDomain Creates a remote instance of a type within another AppDomain. The AppDomain in which to create the instance The type to instantiate The constructor arguments for the type The remote instance Thrown if or is null Base implementation of that performs argument validation. This class is and so cannot be instantiated. Gets an reference to the host service, or null if not connected. Gets the internal host setup information without copying it. Returns true if the host is connected. Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options. Gets the logger. Gets the host service. The host service, or null if the host service was not available Attaches the debugger to a process if the host settings require it. Initializes the host and connects to the host service. Thrown if the host has already been initialized Thrown if the host has been disposed Thrown if an exception occurred while connecting to the host Detaches the debugger from a process if the host settings require it. Disconnects the host. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Disposes the host. True if disposing Gets a host service that can be used to perform operations within the host's environment. Gets a deep copy of the host setup information. Sets the state of the host to disconnected and notifies clients. Releases the host service. The host service that is being released, not null Throws an exception if the host has been disposed. An event that is raised when the host is disconnected. If the host has already been disconnected, the event is fired immediately. 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 Base implementation of that performs argument validation. This class is and so cannot be instantiated. 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 Internal implementation of . The assembly path, not null The type name, not null The created object handle Internal implementation of . The assembly name, not null The type name, not null The created object handle Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Disposes the host service. True if disposing Asks the host to perform the specified action remotely. The action must be a serializable delegate so that it can be sent to the host and executed. Generally speaking, this means it must either be a delegate for a static method or its target object must be serializable. The argument and result values must also be serializable (or null). The action to perform The argument value, if any The result value, if any Internal implementation of . The argument type The result type The action to perform, not null The argument value, if any The result value, if any Pings the host to verify and maintain connectivity. Internal implementation of . Throws an exception if the host service has been disposed. Attaches to a to provide assembly resolution services. This is a and so cannot be inherited or instantiated. Installs an assembly resolver that provides access to the installation path using the . Does nothing if the host is local. The host The Gallio runtime path Thrown if or is null Installs an assembly resolver that delegates to the creating 's assembly resolver to locate assemblies whenever the host is unable to find them. Does nothing if the host is local. The host Thrown if is null 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 Thrown if is null Adds a binding to the configuration for the specified assembly. The assembly name The assembly code base Uri 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 Thrown if or is null Adds an assembly dependency element if a suitable one does not already exist. The assembly name The assembly public key token, or null if none The assembly culture The assembly processor architecture, or null if none The assembly dependency element Adds an assembly qualification element if a suitable one does not already exist. The partial name to quality The full name The assembly qualification element Thrown if an assembly qualification already exists for the same partial name but with a different full name Creates a copy of the host configuration information. The copy 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. Determines whether the specified is equal to 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 . 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 Overlays the with the additional configuration entries necessary to enable the features described by this instance and writes the combined Xml configuration to a . The TextWriter where the Xml configuration will be written to. Thrown if is null. Thrown if the configuration could not be written Overlays the with the additional configuration entries necessary to enable the features described by this instance and writes the combined Xml configuration to a file with the given path. The file path Thrown if is null Thrown if the configuration could not be written 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 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. Determines whether the specified is equal to 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 . 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 Thrown if is not an absolute Uri Thrown if is not a well-formed Uri 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 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. Determines whether the specified is equal to 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 . 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. Adds an assembly binding redirect element if a suitable one is not already present. Th old version range The new version for redirection The binding redirect element Adds an assembly code-base element if a suitable one is not already present. The assembly version The code base uri The code base element Creates a copy of the assembly dependency information. The copy 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. Determines whether the specified is equal to 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 . 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 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. Determines whether the specified is equal to 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 . 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, or null to use a default value selected by the consumer. If relative, the path is based on the current working directory, so a value of "" causes the current working directory to be used. The application base directory. Default is null. Gets or sets the host configuration information. Thrown if is null Gets or sets where the host should write out the configuration file for the hosted components. The configuration file location. Default is . Gets or sets whether to attach the debugger to the host. True if a debugger should be attached to the host. Default is false. Gets or sets the processor architecture that the host should target, when supported. The processor architecture. Default is Gets a mutable collection of key/value pairs that specify configuration properties for the host. Gets or sets whether assembly shadow copying is enabled. True if shadow copying is enabled. Default is false. Gets or sets the relative or absolute path of the working directory or null to use a default value selected by the consumer. If relative, the path is based on the current working directory, so a value of "" causes the current working directory to be used. The working directory. Default 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 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. Determines whether the specified is equal to 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 . Writes a temporary configuration file for the application to disk and returns its path based on . The file is created with a unique name each time. The file should be deleted by the caller when no longer required. The full path of the configuration file that was written, or null if no file was written Thrown if is null but is . Thrown if the configuration file could not be written Provides utilities for working with hosts. This is a and so cannot be inherited or instantiated. Creates an instance of an object within a host. The type of object to create The host in which to create the object The object instance Thrown if is null Creates an instance of an object within The host in which to create the object The type of object to create The object instance Thrown if or is null 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. Connects to the remote host service. The remote host service Disposes the host. True if disposing A factory for initialized hosts. Gets the component Id of this factory. This field is read-only. 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. Connects to the remote host service. The remote host service Creates the process task to start the process. The executable path The command-line arguments The working directory The process task Disposes the host. True if disposing 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. Gets the component Id of this factory. This field is read-only. Gets the path of the runtime components, in particular the folder where Gallio.Host.exe is located. Creates the host. The canonicalized host setup, non-null The logger, non-null The host An implementation of that runs code locally within the current AppDomain. Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options. Gets the host service. The host service, or null if the host service was not available Disposes the host. True if disposing Releases the host service. The host service that is being released, not null A factory for initialized hosts. Gets the component Id of this factory. This field is read-only. Creates the host. The canonicalized host setup, non-null The logger, non-null The host Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options. Gets the host service. The host service, or null if the host service was not available Connects to the remote host service. The remote host service Disposes the host. True if disposing Releases the host service. The host service that is being released, not null A remotely accessible host service. Returns true if the watchdog timer expired. Disposes the host service. True if disposing Internal implementation of . Remotely shuts down the host service. Waits until the host service is shutdown or a ping timeout occurs. 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. Returns true if the host is connected. Thrown if the host has been disposed Returns true if the host is local to the creating AppDomain, false if it must be accessed across a remote channel. A local host might not support all configuration options. Disconnects the host. Thrown if the host has been disposed Gets a host service that can be used to perform operations within the host's environment. Thrown if the host has been disconnected Thrown if the host has been disposed Gets a deep copy of the host setup information. Thrown if the host has been disposed An event that is raised when the host is disconnected. If the host has already been disconnected, the event is fired immediately. Thrown if the host has been disposed 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 environment. 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 perform the specified action remotely. The action must be a serializable delegate so that it can be sent to the host and executed. Generally speaking, this means it must either be a delegate for a static method or its target object must be serializable. The argument and result values must also be serializable (or null). The argument type The result type The action to perform The argument value, if any The result value, if any Thrown if is null Pings the host to verify and maintain connectivity. Thrown if the remote host is unreachable A specialization of host service designed for hosts that are remotely managed. Remotely shuts down the host service. Specifies where a should store the temporary configuration file it generates when it is being initialized. Do not create a configuration file. Stores the configuration file in the user's temporary directory. Stores the configuration file in the application base directory of the hosted components. Bootstraps a globally reachable assembly resolver manager within the Gallio installation path. May be used by clients to ensure that Gallio assemblies can be resolved assuming we were able to load the main assembly and access the bootstrap. This is a and so cannot be inherited or instantiated. Gets the bootstrapped assembly resolver manager. Thrown if the bootstrap resolver has not been initialized Installs a global assembly resolver given the specified runtime path. The Gallio runtime path Thrown if is null 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. Default implementation of a loader. Gets the assembly resolver manager used to resolve referenced assemblies. Loads an assembly from the specified file. The assembly file The loaded assembly 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 Provides support for resolving 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 Provides services to assist with loading tests and dependent resources. Gets the assembly resolver manager used to resolve referenced assemblies. Loads an assembly from the specified file. The assembly file The loaded assembly Thrown if the assembly could not be loaded Base implementation of that performs argument validation and supports convenience methods. This class is and so cannot be instantiated. Logs a message. The log message severity The log message Logs a message with an associated exception. The log message severity The log message The associated exception, or null if none Logs a message with an associated exception. The log message severity The log message The associated exception data, or null if none Logs a message with an associated exception. The log message severity The log message, not null The associated exception data, or null if none A logger that dispatches log messages via events. Logs a message with an associated exception. The log message severity The log message, not null The associated exception data, or null if none An event that is fired when a log message is received. Filters another logger to exclude messages below a given level of severity. Logs a message with an associated exception. The log message severity The log message, not null The associated exception data, or null if none Event arguments for the Gets the exception, or null if none. Gets the log message. Gets the log severity. A null implementation of that does nothing. This class cannot be inherited. Gets a singleton instance of the null logger. This field is read-only. Wraps a logger so that it can be accessed remotely. Logs a message with an associated exception. The log message severity The log message, not null The associated exception data, or null if none The severity prefix logger wraps another loggers and encodes the severity of a log entry into the log message itself in a standard form. Logs a message with an associated exception. The log message severity The log message, not null The associated exception data, or null if none Parses severity information from log messages encoded by . Parses a line of log data. The line of log data to parse Set to the severity of the message extracted from the line The message extracted from the line True if the message included a severity, false otherwise Thrown if is null A logger that writes output to a . Logs a message with an associated exception. The log message severity The log message, not null The associated exception data, or null if none Provides support for logging messages from system components. Logs a message. The log message severity The log message Thrown if is null Logs a message with an associated exception. The log message severity The log message The associated exception, or null if none Thrown if is null Logs a message with an associated exception. The log message severity The log message The associated exception data, or null if none Thrown if is null Describes the severity of a log message. The severity used for debug messages. The severity used for informational messages. The severity used for important messages. The severity used for warning messages. The severity used for error messages. 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. An object that calls when disposed 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. Disposes the progress monitor, including cleaning up an marking as the current task, if any. Disposes the progress monitor, including cleaning up an marking as the current task, if any. True if was called 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. An object that calls when disposed 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. An object that calls when disposed 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 task cookie represents a task in progress. When it is disposed, the corresponding 's method is called. Marks the task as finished. Equivalent to calling on the associated . This method is provded as a convenience for use with the C# using statement. 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. An object that calls when disposed 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 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 . Base class for long-lived marshal by ref objects. 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. 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 Default implementation of based on the Castle inversion of control microkernel. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets the paths and assembly names of all plugin assemblies. The paths 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 with the given id. The componentId A component with the specified id 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. A component that implements the service Resolves references to all components that implement the specified service. An array of components that implement the service Sets when created, then restores it when disposed. Resets the current directory to its original saved value. Thrown if the current directory could not be reset Default IXmlSerializer implementation. 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 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. Invokes a method without producing a The method to invoke The instance on which to invoke the method, or null if none The method arguments, or null if none The method return value, or null if none Thrown if is null Rethrows an exception without discarding its stack trace. This enables the inner exception of to be unwrapped. The exception to rethrow Safely obtains the component of an exception. The message Thrown if is null Safely obtains the component of an exception. The stack trace Thrown if is null 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 Default implementation of IFileSystem using System.IO classes. Attempts to create a directory. The location of the directory. Attempts to delete a file. The location of the file. Checks if a directory exists (Directory.Exists) The location of the directory. True if the directory exists, otherwise False. Checks if a given file exists (File.Exists). The path of the file. True if the file exists, otherwise False. Checks if a path is relative or absolute (Path.IsPathRooted). The path to check. True if the path is absolute, otherwise False. 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 Strips the trailing backslash off of a directory path, if present. The path to strip, or null if none The stripped path, or null if none Provides utility functions for working with strings. This is a and so cannot be inherited or instantiated. Parses a string of whitespace delimited and possibly quoted arguments and returns an array of each one unquoted. The arguments string, eg. "/foo 'quoted arg' /bar The parsed and unquoted arguments Thrown if is null Parses a key/value pair from an input string of the form "key=value", with the value optionally quoted and optional surrounding whitespace removed. The input string The key value pair Thrown if is null 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 Thrown if is null Thrown if is negative 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 Thrown if is null Thrown if is negative Provides helpers for cross-thread synchronization. This is a and so cannot be inherited or instantiated. Synchronizes an action. The invoker, such as a WinForms control The action The exception thrown by the action Synchronizes a function that returns a value. The function return type The invoker, such as a WinForms control The function The value returned by the function The exception thrown by the function 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 Provides utilities for manipulating Xml. This is a and so cannot be inherited or instantiated. Produces an XPathDocument given an action applied to an XmlWriter. The action to perform The XPathDocument Thrown if is null 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. 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 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. Maintains an internal dictionary to memoize results by key. The key type The value type Gets the memoized value for the given key if available, otherwise populates it using the specified populator function and stores it in association with its keys for later reuse. The key by which to look up a memoized result The populator for the value associated with the key The value returned by the populator, possibly memoized 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 Wrapper for static System.IO.File operations to allow testing. Attempts to create a directory. The location of the directory. Attempts to delete a file. The location of the file. Checks if a directory exists (Directory.Exists) The location of the directory. True if the directory exists, otherwise False. Checks if a given file exists (File.Exists). The path of the file. True if the file exists, otherwise False. Checks if a path is relative or absolute (Path.IsPathRooted). The path to check. True if the path is absolute, otherwise False. Wrapper for XmlSerializationUtils static methods (allows testing). 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