From 39df928c452d2f4327862ccb5138d3ce3a1e5603 Mon Sep 17 00:00:00 2001 From: "jeremiah@geniuscode.net" Date: Sun, 28 Aug 2011 21:46:59 -0700 Subject: [PATCH] cleared out packages from source control --- .gitignore | 2 +- .../gcDynamicDuckLib.Tests/.gitignore | 1 - .../gcDynamicDuckLib/.gitignore | 2 +- .../gcLateBindingDynamicProvider/.gitignore | 3 +- .../.gitignore | 2 +- .../fasterflect.2.0.1/fasterflect.2.0.1.nupkg | Bin 167224 -> 0 bytes .../lib/net35/Fasterflect.XML | 4686 ---------------- .../lib/net35/Fasterflect.dll | Bin 95232 -> 0 bytes .../lib/net40/Fasterflect.XML | 4729 ----------------- .../lib/net40/Fasterflect.dll | Bin 96768 -> 0 bytes .../packages/repositories.config | 5 - 11 files changed, 4 insertions(+), 9426 deletions(-) delete mode 100644 src/gcDynamicDuckLib/packages/fasterflect.2.0.1/fasterflect.2.0.1.nupkg delete mode 100644 src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net35/Fasterflect.XML delete mode 100644 src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net35/Fasterflect.dll delete mode 100644 src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net40/Fasterflect.XML delete mode 100644 src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net40/Fasterflect.dll delete mode 100644 src/gcDynamicDuckLib/packages/repositories.config diff --git a/.gitignore b/.gitignore index 2e5a5e8..14ce1d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ /build -AssemblyInfo.cs + # Standard VS.NET and ReSharper Foo src/*/obj diff --git a/src/gcDynamicDuckLib/gcDynamicDuckLib.Tests/.gitignore b/src/gcDynamicDuckLib/gcDynamicDuckLib.Tests/.gitignore index a5bb8ff..4ded7c4 100644 --- a/src/gcDynamicDuckLib/gcDynamicDuckLib.Tests/.gitignore +++ b/src/gcDynamicDuckLib/gcDynamicDuckLib.Tests/.gitignore @@ -1,3 +1,2 @@ /bin/ /obj/ -/Properties/ diff --git a/src/gcDynamicDuckLib/gcDynamicDuckLib/.gitignore b/src/gcDynamicDuckLib/gcDynamicDuckLib/.gitignore index 1363389..6e2b58a 100644 --- a/src/gcDynamicDuckLib/gcDynamicDuckLib/.gitignore +++ b/src/gcDynamicDuckLib/gcDynamicDuckLib/.gitignore @@ -1,3 +1,3 @@ /obj/ /bin/ -/Properties/ + diff --git a/src/gcDynamicDuckLib/gcLateBindingDynamicProvider/.gitignore b/src/gcDynamicDuckLib/gcLateBindingDynamicProvider/.gitignore index a5bb8ff..0ff549a 100644 --- a/src/gcDynamicDuckLib/gcLateBindingDynamicProvider/.gitignore +++ b/src/gcDynamicDuckLib/gcLateBindingDynamicProvider/.gitignore @@ -1,3 +1,2 @@ /bin/ -/obj/ -/Properties/ +/obj/ \ No newline at end of file diff --git a/src/gcDynamicDuckLib/gcReflectionInteractionProvider/.gitignore b/src/gcDynamicDuckLib/gcReflectionInteractionProvider/.gitignore index a5bb8ff..b1708ba 100644 --- a/src/gcDynamicDuckLib/gcReflectionInteractionProvider/.gitignore +++ b/src/gcDynamicDuckLib/gcReflectionInteractionProvider/.gitignore @@ -1,3 +1,3 @@ /bin/ /obj/ -/Properties/ + diff --git a/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/fasterflect.2.0.1.nupkg b/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/fasterflect.2.0.1.nupkg deleted file mode 100644 index b0dea06b3895177fd3ec691e54e20a934fddf599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167224 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

(b4+yvJq^BSoo@B3LdPNl*RG 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


lyklJC<5xTRm)Qus9b%0b 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≈z1IJH$?1NN*&2F9Gr@8> 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�a%oSM^J1cj! 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 diff --git a/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net35/Fasterflect.XML b/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net35/Fasterflect.XML deleted file mode 100644 index 5f68ac1..0000000 --- a/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net35/Fasterflect.XML +++ /dev/null @@ -1,4686 +0,0 @@ - - - - Fasterflect - - - -

- Extension methods for creating object instances when you do not know which constructor to call. - - - - - This field is used to cache information on objects used as parameters for object construction, which - improves performance for subsequent instantiations of the same type using a compatible source type. - - - - - Creates an instance of the given using the public properties of the - supplied object as input. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many properties as possible to constructor parameters. Remaining properties - on the source are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - An instance of . - - - - Creates an instance of the given using the values in the supplied - dictionary as input. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many values as possible to constructor parameters. Remaining values - are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - An instance of . - - - - Creates an instance of the given using the supplied parameter information as input. - Parameter types are inferred from the supplied and as such these - should not be null. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many properties as possible to constructor parameters. Remaining properties - on the source are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - The type of which an instance should be created. - The names of the supplied parameters. - The values of the supplied parameters. - An instance of . - - - - Creates an instance of the given using the supplied parameter information as input. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many properties as possible to constructor parameters. Remaining properties - on the source are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - The type of which an instance should be created. - The names of the supplied parameters. - The types of the supplied parameters. - The values of the supplied parameters. - An instance of . - - - - Insert a collectible object into the cache. - - The cache key used to reference the item. - The object to be inserted into the cache. - - - - Insert an object into the cache using the specified cache strategy (lifetime management). - - The cache key used to reference the item. - The object to be inserted into the cache. - The strategy to apply for the inserted item (use Temporary for objects - that are collectible and Permanent for objects you wish to keep forever). - - - - Retrieves an entry from the cache using the given key. - - The cache key of the item to retrieve. - The retrieved cache item or null if not found. - - - - Removes the object associated with the given key from the cache. - - The cache key of the item to remove. - True if an item removed from the cache and false otherwise. - - - - Removes all entries from the cache. - - - - - Process all entries in the cache and remove entries that refer to collected entries. - - The number of live cache entries still in the cache. - - - - This method returns a string with information on the cache contents (number of contained objects). - - - - - Returns the number of entries currently stored in the cache. Accessing this property - causes a check of all entries in the cache to ensure collected entries are not counted. - - - - - Indexer for accessing or adding cache entries. - - - - - Indexer for adding a cache item using the specified strategy. - - - - - An enumeration of the supported caching strategies. - - - - - This value indicates that caching is disabled. - - - - - This value indicates that caching is enabled, and that cached objects may be - collected and released at will by the garbage collector. This is the default value. - - - - - This value indicates that caching is enabled, and that cached objects may not - be garbage collected. The developer must manually ensure that objects are - removed from the cache when they are no longer needed. - - - - - Extension methods for mapping (copying) members from one object instance to another. - - - - - Maps values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The source object from which member values are read. - The target object to which member values are written. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Maps values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The source object from which member values are read. - The target object to which member values are written. - The used to define the scope when locating members. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Maps values from members on the source object to members with the same name on the target object. - - The source object from which member values are read. - The target object to which member values are written. - The member types (Fields, Properties or both) to include on the source. - The member types (Fields, Properties or both) to include on the target. - The used to define the scope when locating members. If - is different from the flag value - will automatically be applied. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Creates a delegate that can map values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The type of the source object. - The type of the target object. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Creates a delegate that can map values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The type of the source object. - The type of the target object. - The used to define the scope when locating members. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Creates a delegate that can map values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The type of the source object. - The type of the target object. - The member types (Fields, Properties or both) to include on the source. - The member types (Fields, Properties or both) to include on the target. - The used to define the scope when locating members. If - is different from the flag value - will automatically be applied. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Maps values from fields on the source object to fields with the same name on the target object. - - The source object from which field values are read. - The target object to which field values are written. - The optional list of field names against which to filter the fields that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter fields by substring and to ignore case. - - - - Maps values from properties on the source object to properties with the same name on the target object. - - The source object from which property values are read. - The target object to which property values are written. - The optional list of property names against which to filter the properties that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter properties by substring and to ignore case. - - - - Maps values from fields on the source object to properties with the same name (ignoring case) - on the target object. - - The source object from which field values are read. - The target object to which property values are written. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-insensitive match. Pass - to filter members by substring. - - - - Maps values from properties on the source object to fields with the same name (ignoring case) - on the target object. - - The source object from which property values are read. - The target object to which field values are written. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-insensitive match. Pass - to filter members by substring. - - - - Helper class for producing invocation maps that describe how to create an instance of an object - given a set of parameters. Maps are cached to speed up subsequent requests. - - - - - This field contains a dictionary mapping from a particular constructor to all known parameter sets, - each with an associated MethodMap responsible for creating instances of the type using the given - constructor and parameter set. - - - - - This class encapsulates common combinations and provides various - additional Fasterflect-specific flags to further tailor the lookup experience. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - Note that this value is respected even in cases where normal Reflection calls would ignore it. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - If this option is specified the search for a named member will perform a partial match instead - of an exact match. If is specified the trimmed name is - used instead of the original member name. If is specified the - comparison uses and otherwise - uses . - - - - - If this option is specified the search for a named member will strip off the namespace and - interface name from explicitly implemented interface members before applying any comparison - operations. - - - - - If this option is specified the search for members will exclude explicitly implemented - interface members. - - - - - If this option is specified all members that are backers for another member, such as backing - fields for automatic properties or get/set methods for properties, will be excluded from the - result. - - - - - If this option is specified the search for methods will avoid checking whether parameters - have been declared as ref or out. This allows you to locate a method by its signature - without supplying the exact details for every parameter. - - - - - Search criteria encompassing all public and non-public members, including base members. - - - - - Search criteria encompassing all public and non-public instance members, including base members. - - - - - Search criteria encompassing all public and non-public static members, including base members. - - - - - Search criteria encompassing all public and non-public instance members, excluding base members. - - - - - Search criteria encompassing all public and non-public static members, excluding base members. - - - - - Search criteria encompassing all members, including base members. - - - - - Returns true if all values in the given are set in the current Flags instance. - - - - - Returns true if all values in the given are set in the current Flags instance. - - - - - Returns true if at least one of the values in the given are set in the current Flags instance. - - - - - Returns true if at least one of the values in the given are set in the current Flags instance. - - - - - Returns true if all values in the given are not set in the current Flags instance. - - - - - Returns true if all values in the given are not set in the current Flags instance. - - - - - Returns a new Flags instance with the union of the values from and - if is true, and otherwise returns the - supplied . - - - - - Returns a new Flags instance with the union of the values from and - if is true, and otherwise returns a new - Flags instance with the values from that were not in . - - - - - Returns a new Flags instance returns a new Flags instance with the values from - that were not in if is true, and otherwise returns - the supplied . - - - - - Compares the current Flags instance to the given . - Returns true only if is a Flags instance representing an identical selection. - - - - - Produces a unique hash code for the current Flags instance. - - - - - Produces a new Flags instance with the values from that were not in . - - - - - Produces a new Flags instance with the values from the union of and . - - - - - Produces a new Flags instance with the values from the intersection of and . - - - - - Compares two Flags instances and returns true if they represent identical selections. - - - - - Compares two Flags instances and returns true if they represent different selections. - - - - - Converts from BindingFlags to Flags. - - - - - Converts from long to Flags. - - - - - Converts from Flags to BindingFlags. - - - - - Converts from Flags to long. - - - - - Returns a string representation of the Flags values selected by the current instance. - - - - - Extension methods for working with arrays. - - - - - Sets to the element at position of . - - . - - - - Gets the element at position of . - - - - - Creates a delegate which can set element of . - - - - - Creates a delegate which can retrieve element of . - - - - - This class defines extensions for transforming any object to XML. - - - - - Generates a string representation of the given using the default - . The output will contain one element for every readable - property on and process reference properties (other than strings) - recursively. This method does not handle cyclic references - passing in such an object - graph will cause an infinite loop. - - The object to convert to XML. - A string containing the generated XML data. - - - - Generates a string representation of the given using the default - . The output will contain one element for every readable - property on and process reference properties (other than strings) - recursively. This method does not handle cyclic references - passing in such an object - graph will cause an infinite loop. - - The object to convert to XML. - - A string containing the generated XML data. - - - - Stores all necessary information to construct a dynamic method. - - - - - Two CallInfo instances are considered equaled if the following properties - are equaled: TargetType, Flags, IsStatic, MemberTypes, Name, - and ParamTypes. - - - - - The CIL should handle inner struct only when the target type is - a value type or the wrapper ValueTypeHolder type. In addition, the call - must also be executed in the non-static context since static - context doesn't need to handle inner struct case. - - - - - Extension methods for working with types. - - - - - Returns a wrapper instance if - is a value type. Otherwise, returns . - - An object to be examined. - A wrapper instance if - is a value type, or itself if it's a reference type. - - - - Returns a wrapped object if is an instance of . - - An object to be "erased". - The object wrapped by if the latter is of type . Otherwise, - return . - - - - Determines whether is a wrapped object (instance of ). - - The object to check. - Returns true if is a wrapped object (instance of ). - - - - Extension methods for locating and accessing fields. - - - - - Sets the field specified by on the given - to the specified . - - . - - - - Gets the value of the field specified by on the given . - - - - - Sets the field specified by and matching - on the given to the specified . - - . - - - - Gets the value of the field specified by and matching - on the given . - - - - - Creates a delegate which can set the value of the field specified by on - the given . - - - - - Creates a delegate which can get the value of the field specified by on - the given . - - - - - Creates a delegate which can set the value of the field specified by and - matching on the given . - - - - - Creates a delegate which can get the value of the field specified by and - matching on the given . - - - - - Gets the field identified by on the given . This method - searches for public and non-public instance fields on both the type itself and all parent classes. - - A single FieldInfo instance of the first found match or null if no match was found. - - - - Gets the field identified by on the given . - Use the parameter to define the scope of the search. - - A single FieldInfo instance of the first found match or null if no match was found. - - - - Gets all public and non-public instance fields on the given , - including fields defined on base types. - - The type on which to reflect. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. This method will check for an exact, - case-sensitive match. - A list of all instance fields on the type. This value will never be null. - - - - Gets all fields on the given that match the specified . - - The type on which to reflect. - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching fields on the type. This value will never be null. - - - - Gets the first (public or non-public) instance field with the given on the given - object. Returns the value of the field if a match was found and null otherwise. - - - When using this method it is not possible to distinguish between a missing field and a field whose value is null. - - The source object on which to find the field - The name of the field whose value should be retrieved - The value of the field or null if no field was found - - - - Gets the first field with the given on the given object. - Returns the value of the field if a match was found and null otherwise. - Use the parameter to limit the scope of the search. - - - When using this method it is not possible to distinguish between a missing field and a field whose value is null. - - The source object on which to find the field - The name of the field whose value should be retrieved - A combination of Flags that define the scope of the search - The value of the field or null if no field was found - - - - Sets the first (public or non-public) instance field with the given on the - given object to supplied . Returns true if a value - was assigned to a field and false otherwise. - - The source object on which to find the field - The name of the field whose value should be retrieved - The value that should be assigned to the field - True if the value was assigned to a field and false otherwise - - - - Sets the first field with the given on the given object - to the supplied . Returns true if a value was assigned to a field and false otherwise. - Use the parameter to limit the scope of the search. - - The source object on which to find the field - The name of the field whose value should be retrieved - The value that should be assigned to the field - A combination of Flags that define the scope of the search - True if the value was assigned to a field and false otherwise - - - - Extension methods for locating and accessing fields or properties, for situations where - you do not care which it is. - - - - - Gets the member identified by on the given . This - method searches for public and non-public instance fields on both the type itself and all parent classes. - - A single MemberInfo instance of the first found match or null if no match was found. - - - - Gets the member identified by on the given . Use - the parameter to define the scope of the search. - - A single MemberInfo instance of the first found match or null if no match was found. - - - - Gets all public and non-public instance fields and properties on the given , - including members defined on base types. - - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance fields and properties on the given - that match the specified , including members defined on base types. - - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance members on the given . - - A list of all members on the type. This value will never be null. - The type to reflect on. - A list of all members on the type. This value will never be null. - - - - Gets all public and non-public instance members on the given that - match the specified . - - A list of all matching members on the type. This value will never be null. - The type to reflect on. - The or combination used to define - the search behavior and result filtering. - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance members of the given on the - given , optionally filtered by the supplied list. - - The to include in the result. - The type on which to reflect. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching members on the type. This value will never be null. - - - - Gets all members of the given on the given that - match the specified , optionally filtered by the supplied - list (in accordance with the given ). - - The type to reflect on. - The to include in the result. - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching members on the type. This value will never be null. - - - - Gets the first (public or non-public) instance member with the given on the given - object. Returns the value of the member if a match was found and null otherwise. - - - When using this method it is not possible to distinguish between a missing member and a member whose value is null. - - The source object on which to find the member - The name of the member whose value should be retrieved - The value of the member or null if no member was found - - - - Gets the first member with the given on the given object. - Returns the value of the member if a match was found and null otherwise. - Use the parameter to limit the scope of the search. - - - When using this method it is not possible to distinguish between a missing member and a member whose value is null. - - The source object on which to find the member - The name of the member whose value should be retrieved - A combination of Flags that define the scope of the search - The value of the member or null if no member was found - - - - Sets the first (public or non-public) instance member with the given on the - given object to the supplied . Returns true - if a value was assigned to a member and false otherwise. - - The source object on which to find the member - The name of the member whose value should be retrieved - The value that should be assigned to the member - True if the value was assigned to a member and false otherwise - - - - Sets the first member with the given on the given object - to the supplied . Returns true if a value was assigned to a member and false otherwise. - Use the parameter to limit the scope of the search. - - The source object on which to find the member - The name of the member whose value should be retrieved - The value that should be assigned to the member - A combination of Flags that define the scope of the search - True if the value was assigned to a member and false otherwise - - - - Helper class for converting values between various types. - - - - - Convert the supplied XmlNode into the specified target type. Only the InnerXml portion - of the XmlNode is used in the conversion, unless the target type is itself an XmlNode. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied XAttribute into the specified target type. Only the Value portion - of the XAttribute is used in the conversion, unless the target type is itself an XAttribute. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied XElement into the specified target type. Only the Value portion - of the XElement is used in the conversion, unless the target type is itself an XElement. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied string into the specified target type. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied object into the specified target type. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - A method that will convert between types and their textual names. - - The target type - The type of the provided value. - The value representing the type. - - - - - Helper method for converting enums from/to different types. - - - - - Convert the binary string (16 bytes) into a Guid. - - - - - Convert the Guid into a binary string. - - - - - A method that will convert guids from and to different types - - - - - Extension methods for creating object instances when you do not know which constructor to call. - - - - - Obtains a list of all methods with the given on the given - , and invokes the best match for the parameters obtained from the - public properties of the supplied object. - TryCallMethod is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[16], etc. - - The result of the invocation. - - - - Obtains a list of all methods with the given on the given - , and invokes the best match for the parameters obtained from the - values in the supplied dictionary. - TryCallMethod is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[16], etc. - - The result of the invocation. - - - - Obtains a list of all methods with the given on the given - , and invokes the best match for the supplied parameters. - TryCallMethod is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[16], etc. - - The type of which an instance should be created. - The name of the overloaded methods. - Specifies whether all supplied parameters must be used in the - invocation. Unless you know what you are doing you should pass true for this parameter. - The names of the supplied parameters. - The types of the supplied parameters. - The values of the supplied parameters. - The result of the invocation. - - - - This enumeration allows you to customize the XML output of the ToXml extensions. - - - - - This option specifies the empty set of options and does not affect the output. - - - - - If this option is specified the generated XML will include an XML document header. - - - - - If this option is specified a line feed will be emitted after every XML element. - - - - - If this option is specified nested tags will be indented either 1 tab character - (the default) or 4 space characters. - - - - - If this option is specified indentation will use spaces instead of tabs. - - - - - This option, which combines AddHeader, NewLineAfterElement and Indent, provides the - default set of options used. - - - - - This method applies name filtering to a set of members. - - - - - This method applies method parameter type filtering to a set of methods. - - - - - This method applies member type filtering to a set of members. - - - - - This method applies flags-based filtering to a set of members. - - - - - This class wraps a single invokable method call. It contains information on the method to call as well as - the parameters to use in the method call. - This intermediary class is used by the various other classes to select the best match to call - from a given set of available methods/constructors (and a set of parameter names and types). - - - - - Perform parameter reordering, null handling and type conversion in preparation - of executing the method call. - - The callers row of data. - The parameter array to use in the actual invocation. - - - - Test whether at least one bit is set in the array. Replaces the old "long != 0" check. - - - - - Test whether no bits are set in the array. Replaces the old "long == 0" check. - - - - - Test whether no bits are set in the array. Replaces the old "long == 0" check. - - - - - Extension methods for inspecting and working with fields. - - - - - Sets the static field identified by to the specified . - - - - - Sets the instance field identified by on the given - to the specified . - - - - - Gets the value of the static field identified by . - - - - - Gets the value of the instance field identified by on the given . - - - - - Creates a delegate which can set the value of the field identified by . - - - - - Creates a delegate which can get the value of the field identified by . - - - - - Extension methods for inspecting and working with properties. - - - - - Sets the static property identified by to the specified . - - - - - Sets the instance property identified by on the given - to the specified . - - - - - Gets the value of the static property identified by . - - - - - Gets the value of the instance property identified by on the given . - - - - - Creates a delegate which can set the value of the property . - - - - - Creates a delegate which can set the value of the property matching the - specified . - - - - - Creates a delegate which can get the value of the property . - - - - - Creates a delegate which can get the value of the property matching the - specified . - - - - - Extension methods for locating and retrieving attributes. - - - - - Gets the first associated with the . - - The first attribute found on the source element. - - - - Gets the first of type associated with the . - - The first attribute found on the source element. - - - - Gets the first of type associated with the . - - The first attribute found on the source element. - - - - Gets the first of type associated with the - enumeration value given in the parameter. - - The attribute type to search for. - An enumeration value on which to search for the attribute. - The first attribute found on the source. - - - - Gets the first of type associated with the - enumeration value given in the parameter. - - An enumeration value on which to search for the attribute. - The attribute type to search for. - The first attribute found on the source. - - - - Gets the s associated with the . The resulting - list of attributes can optionally be filtered by suppliying a list of - to include. - - A list of the attributes found on the source element. This value will never be null. - - - - Gets all s of type associated with the . - - A list of the attributes found on the source element. This value will never be null. - - - - Gets the s associated with the enumeration given in . - - The attribute type to search for. - An enumeration on which to search for attributes of the given type. - A list of the attributes found on the supplied source. This value will never be null. - - - - Gets the s associated with the enumeration given in . - The resulting list of attributes can optionally be filtered by suppliying a list of - to include. - - A list of the attributes found on the supplied source. This value will never be null. - - - - Determines whether the element has an associated - of type . - - True if the source element has the associated attribute, false otherwise. - - - - Determines whether the element has an associated - of type . - - True if the source element has the associated attribute, false otherwise. - - - - Determines whether the element has an associated - of any of the types given in . - - - The list of attribute types to look for. If this list is null or - empty an will be thrown. - True if the source element has at least one of the specified attribute types, false otherwise. - - - - Determines whether the element has an associated - of all of the types given in . - - True if the source element has all of the specified attribute types, false otherwise. - - - - Gets all public and non-public instance members on the given . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The to include in the search. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - will be included in the result. - A list of all matching members on the type. This value will never be null. - - - - Gets all members of the given on the given - that match the specified and are decorated with an - of the given type . - - The type on which to reflect. - The to include in the search. - The or combination - used to define the search behavior and result filtering. - A list of all matching members on the type. This value will never be null. - - - - Gets all members on the given that match the specified - . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The to include in the search. - The or combination - used to define the search behavior and result filtering. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - matching the given will be included in the result. - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance fields and properties on the given . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - will be included in the result. - A list of all matching fields and properties on the type. This value will never be null. - - - - Gets all fields and properties on the given that match the specified - . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The or combination - used to define the search behavior and result filtering. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - matching the given will be included in the result. - A list of all matching fields and properties on the type. This value will never be null. - - - - Gets a dictionary with all public and non-public instance members on the given - and their associated attributes. Only members of the given will - be included in the result. - The list of attributes associated with each member can optionally be filtered by supplying a list of - , in which case only members with at least one of these will be - included in the result. - - An dictionary mapping all matching members to their associated attributes. This value - will never be null. The attribute list associated with each member in the dictionary will likewise - never be null. - - - - Gets a dictionary with all members on the given and their associated attributes. - Only members of the given and matching will - be included in the result. - The list of attributes associated with each member can optionally be filtered by supplying a list of - , in which case only members with at least one of these will be - included in the result. - - An dictionary mapping all matching members to their associated attributes. This value - will never be null. The attribute list associated with each member in the dictionary will likewise - never be null. - - - - Extension methods for inspecting types. - - - - - Returns true of the supplied implements the given . - - The type (interface) to check for. - The type to check. - True if the given type implements the interface. - - - - Extension methods for inspecting and working with members. - - - - - Gets the static field or property identified by . - - - - - Sets the static field or property identified by with . - - - - - Gets the instance field or property identified by on - the . - - - - - Sets the instance field or property identified by on - the object with . - - - - - Gets the system type of the field or property identified by the . - - The system type of the member. - - - - Determines whether a value can be read from the field or property identified by - the . - - True for fields and readable properties, false otherwise. - - - - Determines whether a value can be assigned to the field or property identified by - the . - - True for updateable fields and properties, false otherwise. - - - - Determines whether the given is invokable. - - True for methods and constructors, false otherwise. - - - - Determines whether the given is a static member. - - True for static fields, properties and methods and false for instance fields, - properties and methods. Throws an exception for all other . - - - - Determines whether the given is an instance member. - - True for instance fields, properties and methods and false for static fields, - properties and methods. Throws an exception for all other . - - - - Determines whether the given has the given . - The comparison uses OrdinalIgnoreCase and allows for a leading underscore in either name - to be ignored. - - True if the name is considered identical, false otherwise. If either parameter - is null an exception will be thrown. - - - - Extension methods for locating, inspecting and invoking constructors. - - - - - Invokes a constructor whose parameter types are inferred from - on the given with being the arguments. - Leave empty if the constructor has no argument. - - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes a constructor having parameter types specified by - on the the given with being the arguments. - - - - - Invokes a constructor whose parameter types are inferred from and - matching on the given - with being the arguments. - Leave empty if the constructor has no argument. - - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes a constructor whose parameter types are and - matching on the given - with being the arguments. - - - - - Creates a delegate which can invoke the constructor whose parameter types are - on the given . Leave empty if the constructor - has no argument. - - - - - Creates a delegate which can invoke the constructor whose parameter types are - and matching on the given . - Leave empty if the constructor has no argument. - - - - - Finds all types implementing a specific interface or base class in the - given and invokes the default constructor on each to return a list of - instances. Any type that is not a class or does not have a default constructor is ignored. - - The interface or base class type to look for in the given assembly. - The assembly in which to look for types derived from the type parameter. - A list containing one instance for every unique type implementing T. This will never be null. - - - - Gets the constructor corresponding to the supplied on the - given . - - The type to reflect on. - The types of the constructor parameters in order. - The matching constructor or null if no match was found. - - - - Gets the constructor matching the given and corresponding to the - supplied on the given . - - The type to reflect on. - The search criteria to use when reflecting. - The types of the constructor parameters in order. - The matching constructor or null if no match was found. - - - - Gets all public and non-public constructors (that are not abstract) on the given . - - The type to reflect on. - A list of matching constructors. This value will never be null. - - - - Gets all constructors matching the given (and that are not abstract) - on the given . - - The type to reflect on. - The search criteria to use when reflecting. - A list of matching constructors. This value will never be null. - - - - Extension methods for inspecting and working with method parameters. - - - - - Determines whether null can be assigned to the given . - - True if null can be assigned, false otherwise. - - - - Determines whether the given has the given . - The comparison uses OrdinalIgnoreCase and allows for a leading underscore in either name - to be ignored. - - True if the name is considered identical, false otherwise. If either parameter - is null an exception will be thrown. - - - - Determines whether the given has an associated default value as - supplied by an . This method does not read the value of - the attribute. It also does not support C# 4.0 default parameter specifications. - - True if the attribute was detected, false otherwise. - - - - Gets the default value associated with the given . The value is - obtained from the if present on the parameter. This method - does not support C# 4.0 default parameter specifications. - - The default value if one could be obtained and converted into the type of the parameter, - and null otherwise. - - - - Collects methods into a pool and allows invocation of the best match given a set of parameters. - - - - - Add a method to the list of available methods for this method dispatcher. - - The method to add to the pool of invocation candidates. - - - - Invoke the best available match for the supplied parameters. - If no method can be called using the supplied parameters, an exception is thrown. - - The object on which to invoke a method. - Specifies whether all supplied parameters must be used in the - invocation. Unless you know what you are doing you should pass true for this parameter. - The object whose public properties will be used as parameters. - The return value of the invocation. - - - - Invoke the best available match for the supplied parameters. - If no method can be called using the supplied parameters, an exception is thrown. - - The object on which to invoke a method. - Specifies whether all supplied parameters must be used in the - invocation. Unless you know what you are doing you should pass true for this parameter. - A dictionary of parameter name/value pairs. - The return value of the invocation. - - - - Extension methods for locating and accessing properties. - - - - - Sets the property specified by on the given to the - specified . - - . - - - - Gets the value of the property specified by on the given . - - - - - Sets the property specified by matching - on the given to the specified . - - . - - - - Gets the value of the property specified by matching - on the given . - - - - - Sets the property specified by on the given to the - specified . - - . - - - - Gets the value of the property specified by on the given . - - - - - Creates a delegate which can set the value of the property specified by - on the given . - - - - - Creates a delegate which can get the value of the property specified by - on the given . - - - - - Creates a delegate which can set the value of the property specified by - matching on the given . - - - - - Creates a delegate which can get the value of the property specified by - matching on the given . - - - - - Sets the value of the indexer of the given - - The object whose indexer is to be set. - The list of the indexer parameters plus the value to be set to the indexer. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Sets the value of the indexer of the given - - The object whose indexer is to be set. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - The list of the indexer parameters plus the value to be set to the indexer. - This list must match with the list. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Gets the value of the indexer of the given - - The object whose indexer is to be retrieved. - The list of the indexer parameters. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The value returned by the indexer. - - - - Gets the value of the indexer of the given - - The object whose indexer is to be retrieved. - The types of the indexer parameters (must be in the right order). - The list of the indexer parameters. - The value returned by the indexer. - - - - Sets the value of the indexer matching of the given - - The object whose indexer is to be set. - The binding flags used to lookup the indexer. - The list of the indexer parameters plus the value to be set to the indexer. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Sets the value of the indexer matching of the given - - The object whose indexer is to be set. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - The binding flags used to lookup the indexer. - The list of the indexer parameters plus the value to be set to the indexer. - This list must match with the list. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Gets the value of the indexer matching of the given - - The object whose indexer is to be retrieved. - The binding flags used to lookup the indexer. - The list of the indexer parameters. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The value returned by the indexer. - - - - Gets the value of the indexer matching of the given - - The object whose indexer is to be retrieved. - The types of the indexer parameters (must be in the right order). - The binding flags used to lookup the indexer. - The list of the indexer parameters. - The value returned by the indexer. - - - - Creates a delegate which can set an indexer - - The type which the indexer belongs to. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - A delegate which can set an indexer. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - MethodInvoker invoker = type.DelegateForSetIndexer(new Type[]{typeof(int), typeof(string)}); - - - - - - Creates a delegate which can get the value of an indexer. - - The type which the indexer belongs to. - The types of the indexer parameters (must be in the right order). - The delegate which can get the value of an indexer. - - - - Creates a delegate which can set an indexer matching . - - The type which the indexer belongs to. - The binding flags used to lookup the indexer. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - A delegate which can set an indexer. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - MethodInvoker invoker = type.DelegateForSetIndexer(new Type[]{typeof(int), typeof(string)}); - - - - - - Creates a delegate which can get the value of an indexer matching . - - The type which the indexer belongs to. - The binding flags used to lookup the indexer. - The types of the indexer parameters (must be in the right order). - The delegate which can get the value of an indexer. - - - - Gets the property identified by on the given . This method - searches for public and non-public instance properties on both the type itself and all parent classes. - - A single PropertyInfo instance of the first found match or null if no match was found. - - - - Gets the property identified by on the given . - Use the parameter to define the scope of the search. - - A single PropertyInfo instance of the first found match or null if no match was found. - - - - Gets all public and non-public instance properties on the given , - including properties defined on base types. The result can optionally be filtered by specifying - a list of property names to include using the parameter. - - A list of matching instance properties on the type. - The type whose public properties are to be retrieved. - A list of names of properties to be retrieved. If this is null, - all properties are returned. - A list of all public properties on the type filted by . - This value will never be null. - - - - Gets all properties on the given that match the specified , - including properties defined on base types. - - A list of all matching properties on the type. This value will never be null. - - - - Gets the first (public or non-public) instance property with the given on the given - object. Returns the value of the property if a match was found and null otherwise. - - - When using this method it is not possible to distinguish between a missing property and a property whose value is null. - - The source object on which to find the property - The name of the property whose value should be retrieved - The value of the property or null if no property was found - - - - Gets the first property with the given on the given object. - Returns the value of the property if a match was found and null otherwise. - Use the parameter to limit the scope of the search. - - - When using this method it is not possible to distinguish between a missing property and a property whose value is null. - - The source object on which to find the property - The name of the property whose value should be retrieved - A combination of Flags that define the scope of the search - The value of the property or null if no property was found - - - - Sets the first (public or non-public) instance property with the given on the - given object to the supplied . Returns true - if a value was assigned to a property and false otherwise. - - The source object on which to find the property - The name of the property whose value should be retrieved - The value that should be assigned to the property - True if the value was assigned to a property and false otherwise - - - - Sets the first property with the given on the given object - to the supplied . Returns true if a value was assigned to a property and false otherwise. - Use the parameter to limit the scope of the search. - - The source object on which to find the property - The name of the property whose value should be retrieved - The value that should be assigned to the property - A combination of Flags that define the scope of the search - True if the value was assigned to a property and false otherwise - - - - Extension methods for inspecting, invoking and working with constructors. - - - - - Invokes the constructor with as arguments. - Leave empty if the constructor has no argument. - - - - - Creates a delegate which can create instance based on the constructor . - - - - - Extension methods for inspecting assemblies. - - - - - Gets all types in the given matching the optional list - . - - The assembly in which to look for types. - An optional list of names against which to filter the result. If this is - null or left empty, all types are returned. - A list of all matching types. This method never returns null. - - - - Gets all types in the given matching the specified - and the optional list . - - The assembly in which to look for types. - The used to customize how results - are filters. If the option is specified any name - comparisons will use instead of . - An optional list of names against which to filter the result. If this is - null or left empty, all types are returned. - A list of all matching types. This method never returns null. - - - - Gets all types in the given that implement the given . - - The interface types should implement. - The assembly in which to look for types. - A list of all matching types. This method never returns null. - - - - Gets all types in the given that are decorated with an - of the given . - - A list of all matching types. This value will never be null. - - - - Gets all types in the given that are decorated with an - of the given type . - - A list of all matching types. This value will never be null. - - - - Extension methods for locating, inspecting and invoking methods. - - - - - Invokes the method specified by on the given - using as arguments. - Leave empty if the method has no arguments. - - The return value of the method. - If the method has no return type, null is returned. - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes the method specified by on the given - using as arguments. - Method parameter types are specified by . - - The return value of the method. - If the method has no return type, null is returned. - - - - Invokes the method specified by on the given - matching using as arguments. - Leave empty if the method has no argument. - - The return value of the method. - If the method has no return type, null is returned. - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes the method specified by on the given - matching using as arguments. - Method parameter types are specified by . - - The return value of the method. - If the method has no return type, null is returned. - - - - Creates a delegate which can invoke the method with arguments matching - on the given . - Leave empty if the method has no arguments. - - - - - Creates a delegate which can invoke the method with arguments matching - and matching on the given . - Leave empty if the method has no arguments. - - - - - Gets the public or non-public instance method with the given on the - given . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. Pass - to include explicitly implemented interface members, to locate - by substring, and to ignore case. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets the public or non-public instance method with the given on the - given where the parameter types correspond in order with the - supplied . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. - If this parameter is not null then only methods with the same - parameter signature will be included in the result. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets the method with the given and matching - on the given . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. Pass - to include explicitly implemented interface members, to locate - by substring, and to ignore case. - The or combination used to define - the search behavior and result filtering. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets the method with the given and matching - on the given where the parameter types correspond in order with the - supplied . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. Pass - to include explicitly implemented interface members, to locate - by substring, and to ignore case. - If this parameter is supplied then only methods with the same parameter signature - will be included in the result. The default behavior is to check only for assignment compatibility, - but this can be changed to exact matching by passing . - The or combination used to define - the search behavior and result filtering. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets all public and non-public instance methods on the given that match the - given . - - The type on which to reflect. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching methods. This value will never be null. - - - - Gets all public and non-public instance methods on the given that match the - given . - - The type on which to reflect. - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching methods. This value will never be null. - - - - Gets all public and non-public instance methods on the given that match the given - . - - The type on which to reflect. - If this parameter is supplied then only methods with the same parameter - signature will be included in the result. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. - A list of all matching methods. This value will never be null. - - - - Gets all methods on the given that match the given lookup criteria and values. - - The type on which to reflect. - If this parameter is supplied then only methods with the same parameter signature - will be included in the result. The default behavior is to check only for assignment compatibility, - but this can be changed to exact matching by passing . - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching methods. This value will never be null. - - - - Extension methods for inspecting, invoking and working with methods. - - - - - Invokes the static method identified by with - as arguments. Leave empty if the method has no argument. - - The return value of the method. - If the method has no return type, null is returned. - - - - Invokes the instance method identified by on the object - with as arguments. - Leave empty if the method has no argument. - - The return value of the method. - If the method has no return type, null is returned. - - - - Creates a delegate which can invoke the instance method identified by . - - - - - Gets all parameters for the given . - - The list of parameters for the method. This value will never be null. - - - - A wrapper for value type. Must be used in order for Fasterflect to - work with value type such as struct. - - - - - Creates a wrapper for value type. The wrapper - can then be used with Fasterflect. - - The value type to be wrapped. - Must be a derivative of ValueType. - - - - The actual struct wrapped by this instance. - - - - - Extension methods for deep cloning of objects. - - - - - Produces a deep clone of the object. Reference integrity is maintained and - every unique object in the graph is cloned only once. - A current limitation of this method is that all objects in the graph must have a default constructor. - - The type of the object to clone. - The object to clone. - A deep clone of the source object. - - - - A delegate to retrieve the value of an instance field or property of an object. - - The object whose field's or property's value is to be retrieved. - The value of the instance field or property. - - - - A delegate to set the value of an instance field or property of an object. - - The object whose field's or property's value is to be set. - The value to be set to the field or property. - - - - A delegate to set an element of an array. - - The array whose element is to be set. - The index of the element to be set. - The value to set to the element. - - - - A delegate to retrieve an element of an array. - - The array whose element is to be retrieved - The index of the element to be retrieved - The element at - - - - A delegate to invoke an instance method or indexer of an object. - - The object whose method or indexer is to be invoked on. - The properly-ordered parameter list of the method/indexer. - For indexer-set operation, the parameter array include parameters for the indexer plus - the value to be set to the indexer. - The return value of the method or indexer. Null is returned if the method has no - return type or if it's a indexer-set operation. - - - - A delegate to invoke the constructor of a type. - - The properly-ordered parameter list of the constructor. - An instance of type whose constructor is invoked. - - - - A delegate to copy values of instance members (fields, properties, or both) from one object to another. - - The object whose instance members' values will be read. - The object whose instance members' values will be written. - - - - A wrapper around the class. - - ILGenerator Class - - - - Initializes a new instance of the class - with the specified . - - The to use. - - - - Converts the supplied to a . - - The . - An ILGenerator. - - - - Begins a catch block. - - The Type object that represents the exception. - ILGenerator.BeginCatchBlock Method - - - - Begins an exception block for a filtered exception. - - ILGenerator.BeginCatchBlock Method - - - - Begins an exception block for a non-filtered exception. - - The label for the end of the block. - - - - Begins an exception fault block in the Microsoft intermediate language (MSIL) stream. - - Current instance of the . - - - - Begins a finally block in the Microsoft intermediate language (MSIL) instruction stream. - - Current instance of the . - - - - Begins a lexical scope. - - Current instance of the . - - - - Declares a local variable. - - The Type of the local variable. - The declared local variable. - - - - Declares a local variable, optionally pinning the object referred to by the variable. - - The Type of the local variable. - true to pin the object in memory; otherwise, false. - The declared local variable. - - - - Declares a new label. - - Returns a new label that can be used as a token for branching. - - - - Ends an exception block. - - Current instance of the . - - - - Ends a lexical scope. - - Current instance of the . - - - - Marks the Microsoft intermediate language (MSIL) stream's current position - with the given label. - - The label for which to set an index. - Current instance of the . - - - - Marks a sequence point in the Microsoft intermediate language (MSIL) stream. - - The document for which the sequence point is being defined. - The line where the sequence point begins. - The column in the line where the sequence point begins. - The line where the sequence point ends. - The column in the line where the sequence point ends. - Current instance of the . - - - - Emits an instruction to throw an exception. - - The class of the type of exception to throw. - Current instance of the . - - - - Specifies the namespace to be used in evaluating locals and watches for - the current active lexical scope. - - The namespace to be used in evaluating locals and watches for the current active lexical scope. - Current instance of the . - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if two values are equal. - - The label to branch from this location. - OpCodes.Beq - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if two values are equal. - - The label to branch from this location. - OpCodes.Beq_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is greater than or equal to the second value. - - The label to branch from this location. - OpCodes.Bge - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) - if the first value is greater than or equal to the second value. - - The label to branch from this location. - OpCodes.Bge_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the the first value is greather than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bge_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if if the the first value is greather than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bge_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is greater than the second value. - - The label to branch from this location. - OpCodes.Bgt - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is greater than the second value. - - The label to branch from this location. - OpCodes.Bgt_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is greater than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bgt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is greater than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bgt_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than or equal to the second value. - - The label to branch from this location. - OpCodes.Ble - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than or equal to the second value. - - The label to branch from this location. - OpCodes.Ble_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than or equal to the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Ble_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than or equal to the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Ble_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than the second value. - - The label to branch from this location. - OpCodes.Blt - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than the second value. - - The label to branch from this location. - OpCodes.Blt_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Blt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Blt_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction when two unsigned integer values or unordered float values are not equal. - - The label to branch from this location. - OpCodes.Bne_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) - when two unsigned integer values or unordered float values are not equal. - - The label to branch from this location. - OpCodes.Bne_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts a value type to an object reference. - - A Type - OpCodes.Box - ILGenerator.Emit - - - - Converts a value type to an object reference if the value is a value type. - - A Type - OpCodes.Box - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - unconditionally transfers control to a target instruction. - - The label to branch from this location. - OpCodes.Br - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if value is false, a null reference (Nothing in Visual Basic), or zero. - - The label to branch from this location. - OpCodes.Brfalse - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if value is false, a null reference, or zero. - - The label to branch from this location. - OpCodes.Brfalse_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if value is true, not null, or non-zero. - - The label to branch from this location. - OpCodes.Brtrue - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if value is true, not null, or non-zero. - - The label to branch from this location. - OpCodes.Brtrue_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - unconditionally transfers control to a target instruction (short form). - - The label to branch from this location. - OpCodes.Br_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - calls the method indicated by the passed method descriptor. - - The method to be called. - OpCodes.Call - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, constructorInfo) that - calls the method indicated by the passed method descriptor. - - The constructor to be called. - OpCodes.Call - ILGenerator.Emit - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls the method indicated by the passed method descriptor. - - The method to be called. - The types of the optional arguments if the method is a varargs method. - OpCodes.Call - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls the method indicated by the passed method descriptor. - - A Type - The name of the method to be called. - The types of the optional arguments if the method is a varargs method. - OpCodes.Call - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls the method indicated by the passed method descriptor. - - A Type - The name of the method to be called. - A bitmask comprised of one or more - that specify how the search is conducted. - The types of the optional arguments if the method is a varargs method. - OpCodes.Call - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCalli(, , Type, Type[]) that - calls the method indicated on the evaluation stack (as a pointer to an entry point) - with arguments described by a calling convention using an unmanaged calling convention. - - The unmanaged calling convention to be used. - The Type of the result. - The types of the required arguments to the instruction. - OpCodes.Calli - ILGenerator.EmitCalli - - - - Calls ILGenerator.EmitCalli(, , Type, Type[], Type[]) that - calls the method indicated on the evaluation stack (as a pointer to an entry point) - with arguments described by a calling convention using a managed calling convention. - - The managed calling convention to be used. - The Type of the result. - The types of the required arguments to the instruction. - The types of the optional arguments for vararg calls. - OpCodes.Calli - ILGenerator.EmitCalli - - - - Calls ILGenerator.Emit(, methodInfo) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - OpCodes.Callvirt - ILGenerator.Emit - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The types of the optional arguments if the method is a varargs method. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The declaring type of the method. - The types of the optional arguments if the method is a varargs method. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The declaring type of the method. - A bitmask comprised of one or more - that specify how the search is conducted. - The types of the optional arguments if the method is a varargs method. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The declaring type of the method. - A bitmask comprised of one or more - that specify how the search is conducted. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.Emit(, type) that - attempts to cast an object passed by reference to the specified class. - - A Type - OpCodes.Castclass - ILGenerator.Emit - - - - Attempts to cast an object passed by reference to the specified class - or to unbox if the type is a value type. - - A Type - - - - Calls ILGenerator.Emit() that - constrains the type on which a virtual method call is made. - - A Type - OpCodes.Constrained - ILGenerator.Emit - - - - Converts the value on top of the evaluation stack to the specified type. - - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - copies the value type located at the address of an object (type &, * or natural int) - to the address of the destination object (type &, * or natural int). - - A Type - OpCodes.Cpobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - initializes all the fields of the object at a specific address to a null reference or - a 0 of the appropriate primitive type. - - A Type - OpCodes.Initobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - tests whether an object reference (type O) is an instance of a particular class. - - A Type - OpCodes.Isinst - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - exits current method and jumps to specified method. - - The method to be jumped. - OpCodes.Jmp - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - loads an argument (referenced by a specified index value) onto the stack. - - Index of the argument that is pushed onto the stack. - OpCodes.Ldarg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) or - ILGenerator.Emit(, byte) that - loads an argument (referenced by a specified index value) onto the stack. - - Index of the argument that is pushed onto the stack. - OpCodes.Ldarg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - load an argument address onto the evaluation stack. - - Index of the address addr of the argument that is pushed onto the stack. - OpCodes.Ldarga - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - load an argument address, in short form, onto the evaluation stack. - - Index of the address addr of the argument that is pushed onto the stack. - OpCodes.Ldarga_S - ILGenerator.Emit - - - - Load an argument address onto the evaluation stack. - - Index of the address addr of the argument that is pushed onto the stack. - - - - Calls ILGenerator.Emit(, byte) that - loads the argument (referenced by a specified short form index) onto the evaluation stack. - - Index of the argument value that is pushed onto the stack. - OpCodes.Ldarg_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit( or ) that - pushes a supplied value of type int32 onto the evaluation stack as an int32. - - The value pushed onto the stack. - OpCodes.Ldc_I4_0 - OpCodes.Ldc_I4_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, int) that - pushes a supplied value of type int32 onto the evaluation stack as an int32. - - The value pushed onto the stack. - OpCodes.Ldc_I4 - ILGenerator.Emit - - - - Calls the best form of ILGenerator.Emit(Ldc_I4_X) that - pushes the integer value of -1 onto the evaluation stack as an int32. - - - - - - Calls ILGenerator.Emit(, byte) that - pushes the supplied int8 value onto the evaluation stack as an int32, short form. - - The value pushed onto the stack. - OpCodes.Ldc_I4_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, long) that - pushes a supplied value of type int64 onto the evaluation stack as an int64. - - The value pushed onto the stack. - OpCodes.Ldc_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, float) that - pushes a supplied value of type float32 onto the evaluation stack as type F (float). - - The value pushed onto the stack. - OpCodes.Ldc_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, double) that - pushes a supplied value of type float64 onto the evaluation stack as type F (float). - - The value pushed onto the stack. - OpCodes.Ldc_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - loads the address of the array element at a specified array index onto the top of the evaluation stack - as type & (managed pointer). - - A Type - OpCodes.Ldelema - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - finds the value of a field in the object whose reference is currently on the evaluation stack. - - A representing a field. - OpCodes.Ldfld - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - finds the address of a field in the object whose reference is currently on the evaluation stack. - - A representing a field. - OpCodes.Ldflda - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - pushes an unmanaged pointer (type natural int) to the native code implementing a specific method - onto the evaluation stack. - - The method to be called. - OpCodes.Ldftn - ILGenerator.Emit - - - - Loads a value of the type from a supplied address. - - A Type. - - - - Calls ILGenerator.Emit(, short) that - load an argument address onto the evaluation stack. - - Index of the local variable value pushed onto the stack. - OpCodes.Ldloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - load an argument address onto the evaluation stack. - - Local variable builder. - OpCodes.Ldloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - loads the address of the local variable at a specific index onto the evaluation stack. - - Index of the local variable. - OpCodes.Ldloca - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - loads the address of the local variable at a specific index onto the evaluation stack, short form. - - Index of the local variable. - OpCodes.Ldloca_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - loads the address of the local variable at a specific index onto the evaluation stack. - - A representing the local variable. - OpCodes.Ldloca - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - loads the local variable at a specific index onto the evaluation stack, short form. - - Index of the local variable. - OpCodes.Ldloc_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - copies the value type object pointed to by an address to the top of the evaluation stack. - - A Type - OpCodes.Ldobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - pushes the value of a static field onto the evaluation stack. - - A representing a field. - OpCodes.Ldsfld - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - pushes the address of a static field onto the evaluation stack. - - A representing a field. - OpCodes.Ldsflda - ILGenerator.Emit - - - - Calls -or- , - if given string is a null reference. - - The String to be emitted. - - - - - - Calls ILGenerator.Emit(, string) that - pushes a new object reference to a string literal stored in the metadata. - - The String to be emitted. - OpCodes.Ldstr - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - converts a metadata token to its runtime representation, pushing it onto the evaluation stack. - - The method to be called. - OpCodes.Ldtoken - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - converts a metadata token to its runtime representation, - pushing it onto the evaluation stack. - - A representing a field. - OpCodes.Ldtoken - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts a metadata token to its runtime representation, pushing it onto the evaluation stack. - - A Type - OpCodes.Ldtoken - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - pushes an unmanaged pointer (type natural int) to the native code implementing a particular virtual method - associated with a specified object onto the evaluation stack. - - The method to be called. - OpCodes.Ldvirtftn - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - exits a protected region of code, unconditionally tranferring control to a specific target instruction. - - The label. - OpCodes.Leave - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - exits a protected region of code, unconditionally transferring control to a target instruction (short form). - - The label. - OpCodes.Leave_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - pushes a typed reference to an instance of a specific type onto the evaluation stack. - - A Type - OpCodes.Mkrefany - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - pushes an object reference to a new zero-based, one-dimensional array whose elements - are of a specific type onto the evaluation stack. - - A Type - OpCodes.Newarr - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - creates a new object or a new instance of a value type, - pushing an object reference (type O) onto the evaluation stack. - - A representing a constructor. - OpCodes.Newobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ConstructorInfo) that - creates a new object or a new instance of a value type, - pushing an object reference (type O) onto the evaluation stack. - - A type. - An array of System.Type objects representing - the number, order, and type of the parameters for the desired constructor. - -or- An empty array of System.Type objects, to get a constructor that takes - no parameters. Such an empty array is provided by the static field System.Type.EmptyTypes. - - - - Calls ILGenerator.Emit(, type) that - retrieves the address (type &) embedded in a typed reference. - - A Type - OpCodes.Refanyval - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - returns from the current method, pushing a return value (if present) - from the caller's evaluation stack onto the callee's evaluation stack. - - OpCodes.Ret - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - pushes the size, in bytes, of a supplied value type onto the evaluation stack. - - A Type - OpCodes.Sizeof - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - stores the value on top of the evaluation stack in the argument slot at a specified index. - - Slot index. - OpCodes.Starg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - stores the value on top of the evaluation stack in the argument slot at a specified index, - short form. - - Slot index. - OpCodes.Starg_S - ILGenerator.Emit - - - - Stores the value on top of the evaluation stack in the argument slot at a specified index. - - Slot index. - OpCodes.Starg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - replaces the value stored in the field of an object reference or pointer with a new value. - - A representing a field. - OpCodes.Stfld - ILGenerator.Emit - - - - Stores a value of the type at a supplied address. - - A Type. - - - - Calls ILGenerator.Emit(, ) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at a specified index. - - A local variable. - OpCodes.Stloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at a specified index. - - A local variable index. - OpCodes.Stloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index (short form). - - A local variable. - OpCodes.Stloc_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index (short form). - - A local variable index. - OpCodes.Stloc_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - copies a value of a specified type from the evaluation stack into a supplied memory address. - - A Type - OpCodes.Stobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - replaces the value of a static field with a value from the evaluation stack. - - A representing a field. - OpCodes.Stsfld - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label[]) that - implements a jump table. - - The array of label objects to which to branch from this location. - OpCodes.Switch - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - indicates that an address currently atop the evaluation stack might not be aligned - to the natural size of the immediately following ldind, stind, ldfld, stfld, ldobj, stobj, - initblk, or cpblk instruction. - - The label to branch from this location. - OpCodes.Unaligned - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, long) that - indicates that an address currently atop the evaluation stack might not be aligned - to the natural size of the immediately following ldind, stind, ldfld, stfld, ldobj, stobj, - initblk, or cpblk instruction. - - An address is pushed onto the stack. - OpCodes.Unaligned - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts the boxed representation of a value type to its unboxed form. - - A Type - OpCodes.Unbox - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts the boxed representation of a value type to its unboxed form. - - A Type - OpCodes.Unbox_Any - ILGenerator.Emit - - - - Calls if given type is a value type. - - A Type - OpCodes.Unbox - ILGenerator.Emit - - - - Ends sequence of property calls. - - - - - Loads default value of given type onto the evaluation stack. - - A Type - - - - Loads supplied object value (if possible) onto the evaluation stack. - - Any object instance or null reference. - True is a value was loaded, otherwise false. - - - - Initialize local variable with some default value. - - A method local variable. - - - - Loads a type instance at runtime. - - A type - - - - Loads a field instance at runtime. - - A representing a field. - - - - Cast an object passed by reference to the specified type - or unbox a boxed value type. - - A type - - - - Increase max stack size by specified delta. - - Number of bytes to enlarge max stack size. - - - - Gets MSIL generator. - - - - - Calls ILGenerator.Emit() that - adds two values and pushes the result onto the evaluation stack. - - OpCodes.Add - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - adds two integers, performs an overflow check, and pushes the result onto the evaluation stack. - - OpCodes.Add_Ovf - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. - - OpCodes.Add_Ovf_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - computes the bitwise AND of two values and pushes the result onto the evalution stack. - - OpCodes.And - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - returns an unmanaged pointer to the argument list of the current method. - - OpCodes.Arglist - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - signals the Common Language Infrastructure (CLI) to inform the debugger that a break point has been tripped. - - OpCodes.Break - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two values. If they are equal, the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Ceq - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two values. If the first value is greater than the second, - the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Cgt - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two unsigned or unordered values. - If the first value is greater than the second, the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Cgt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - throws if value is not a finite number. - - OpCodes.Ckfinite - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two values. If the first value is less than the second, - the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Clt - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares the unsigned or unordered values value1 and value2. - If value1 is less than value2, then the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Clt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to natural int. - - OpCodes.Conv_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int8, then extends (pads) it to int32. - - OpCodes.Conv_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int16, then extends (pads) it to int32. - - OpCodes.Conv_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int32. - - OpCodes.Conv_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int64. - - OpCodes.Conv_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I1_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed int16 and extending it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int16 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I2_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation tack to signed int32, throwing on overflow. - - OpCodes.Conv_Ovf_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int32, throwing on overflow. - - OpCodes.Conv_Ovf_I4_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed int64, - throwing on overflow. - - OpCodes.Conv_Ovf_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int64, throwing on overflow. - - OpCodes.Conv_Ovf_I8_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_I_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_U - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U1_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned int16 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int16 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U2_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - Converts the signed value on top of the evaluation stack to unsigned int32, throwing on overflow. - - OpCodes.Conv_Ovf_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int32, throwing on overflow. - - OpCodes.Conv_Ovf_U4_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned int64, throwing on overflow. - - OpCodes.Conv_Ovf_U8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int64, throwing on overflow. - - OpCodes.Conv_Ovf_U8_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_U_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to float32. - - OpCodes.Conv_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to float64. - - OpCodes.Conv_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned integer value on top of the evaluation stack to float32. - - OpCodes.Conv_R_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned natural int, and extends it to natural int. - - OpCodes.Conv_U - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int8, and extends it to int32. - - OpCodes.Conv_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int16, and extends it to int32. - - OpCodes.Conv_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int32, and extends it to int32. - - OpCodes.Conv_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int64, and extends it to int64. - - OpCodes.Conv_U8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - copies a specified number bytes from a source address to a destination address. - - OpCodes.Cpblk - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two values and pushes the result as a floating-point (type F) or - quotient (type int32) onto the evaluation stack. - - OpCodes.Div - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two unsigned integer values and pushes the result (int32) onto the evaluation stack. - - OpCodes.Div_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - copies the current topmost value on the evaluation stack, and then pushes the copy onto the evaluation stack. - - OpCodes.Dup - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - transfers control from the filter clause of an exception back to - the Common Language Infrastructure (CLI) exception handler. - - OpCodes.Endfilter - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - transfers control from the fault or finally clause of an exception block back to - the Common Language Infrastructure (CLI) exception handler. - - OpCodes.Endfinally - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - initializes a specified block of memory at a specific address to a given size and initial value. - - OpCodes.Initblk - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 0 onto the evaluation stack. - - OpCodes.Ldarg_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 1 onto the evaluation stack. - - OpCodes.Ldarg_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 2 onto the evaluation stack. - - OpCodes.Ldarg_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 3 onto the evaluation stack. - - OpCodes.Ldarg_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 0 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 1 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 2 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 3 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 4 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 5 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 6 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_6 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 7 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_7 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 8 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of -1 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_M1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type natural int at a specified array index onto the top of the evaluation stack - as a natural int. - - OpCodes.Ldelem_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int8 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int16 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int32 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int64 at a specified array index onto the top of the evaluation stack as an int64. - - OpCodes.Ldelem_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type float32 at a specified array index onto the top of the evaluation stack as type F (float). - - OpCodes.Ldelem_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type float64 at a specified array index onto the top of the evaluation stack as type F (float). - - OpCodes.Ldelem_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element containing an object reference at a specified array index - onto the top of the evaluation stack as type O (object reference). - - OpCodes.Ldelem_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type unsigned int8 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type unsigned int16 at a specified array index - onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type unsigned int32 at a specified array index - onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type natural int as a natural int onto the evaluation stack indirectly. - - OpCodes.Ldind_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int8 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int16 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int32 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int64 as an int64 onto the evaluation stack indirectly. - - OpCodes.Ldind_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type float32 as a type F (float) onto the evaluation stack indirectly. - - OpCodes.Ldind_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type float64 as a type F (float) onto the evaluation stack indirectly. - - OpCodes.Ldind_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads an object reference as a type O (object reference) onto the evaluation stack indirectly. - - OpCodes.Ldind_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type unsigned int8 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type unsigned int16 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type unsigned int32 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the number of elements of a zero-based, one-dimensional array onto the evaluation stack. - - OpCodes.Ldlen - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 0 onto the evaluation stack. - - OpCodes.Ldloc_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 1 onto the evaluation stack. - - OpCodes.Ldloc_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 2 onto the evaluation stack. - - OpCodes.Ldloc_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 3 onto the evaluation stack. - - OpCodes.Ldloc_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes a null reference (type O) onto the evaluation stack. - - OpCodes.Ldnull - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - allocates a certain number of bytes from the local dynamic memory pool and pushes the address - (a transient pointer, type *) of the first allocated byte onto the evaluation stack. - - OpCodes.Localloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - multiplies two values and pushes the result on the evaluation stack. - (a transient pointer, type *) of the first allocated byte onto the evaluation stack. - - OpCodes.Mul - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - multiplies two integer values, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Mul_Ovf - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - multiplies two unsigned integer values, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Mul_Ovf_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - negates a value and pushes the result onto the evaluation stack. - - OpCodes.Neg - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - fills space if opcodes are patched. No meaningful operation is performed although - a processing cycle can be consumed. - - OpCodes.Nop - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - computes the bitwise complement of the integer value on top of the stack - and pushes the result onto the evaluation stack as the same type. - - OpCodes.Not - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compute the bitwise complement of the two integer values on top of the stack and - pushes the result onto the evaluation stack. - - OpCodes.Or - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - removes the value currently on top of the evaluation stack. - - OpCodes.Pop - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - specifies that the subsequent array address operation performs - no type check at run time, and that it returns a managed pointer - whose mutability is restricted. - - OpCodes.Refanytype - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - retrieves the type token embedded in a typed reference. - - OpCodes.Refanytype - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two values and pushes the remainder onto the evaluation stack. - - OpCodes.Rem - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two unsigned values and pushes the remainder onto the evaluation stack. - - OpCodes.Rem_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - rethrows the current exception. - - OpCodes.Rethrow - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - shifts an integer value to the left (in zeroes) by a specified number of bits, - pushing the result onto the evaluation stack. - - OpCodes.Shl - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - shifts an integer value (in sign) to the right by a specified number of bits, - pushing the result onto the evaluation stack. - - OpCodes.Shr - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - shifts an unsigned integer value (in zeroes) to the right by a specified number of bits, - pushing the result onto the evaluation stack. - - OpCodes.Shr_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the natural int value - on the evaluation stack. - - OpCodes.Stelem_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int8 value on the evaluation stack. - - OpCodes.Stelem_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int16 value on the evaluation stack. - - OpCodes.Stelem_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int32 value on the evaluation stack. - - OpCodes.Stelem_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int64 value on the evaluation stack. - - OpCodes.Stelem_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the float32 value on the evaluation stack. - - OpCodes.Stelem_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the float64 value on the evaluation stack. - - OpCodes.Stelem_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the object ref value (type O) - on the evaluation stack. - - OpCodes.Stelem_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type natural int at a supplied address. - - OpCodes.Stind_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int8 at a supplied address. - - OpCodes.Stind_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int16 at a supplied address. - - OpCodes.Stind_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int32 at a supplied address. - - OpCodes.Stind_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int64 at a supplied address. - - OpCodes.Stind_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type float32 at a supplied address. - - OpCodes.Stind_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type float64 at a supplied address. - - OpCodes.Stind_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores an object reference value at a supplied address. - - OpCodes.Stind_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 0. - - OpCodes.Stloc_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 1. - - OpCodes.Stloc_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 2. - - OpCodes.Stloc_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 3. - - OpCodes.Stloc_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - subtracts one value from another and pushes the result onto the evaluation stack. - - OpCodes.Sub - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - subtracts one integer value from another, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Sub_Ovf - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - subtracts one unsigned integer value from another, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Sub_Ovf_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - performs a postfixed method call instruction such that the current method's stack frame - is removed before the actual call instruction is executed. - - OpCodes.Tailcall - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - throws the exception object currently on the evaluation stack. - - OpCodes.Throw - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - specifies that an address currently atop the evaluation stack might be volatile, - and the results of reading that location cannot be cached or that multiple stores - to that location cannot be suppressed. - - OpCodes.Volatile - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - computes the bitwise XOR of the top two values on the evaluation stack, - pushing the result onto the evaluation stack. - - OpCodes.Xor - ILGenerator.Emit - - - diff --git a/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net35/Fasterflect.dll b/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net35/Fasterflect.dll deleted file mode 100644 index 41e8a5795c04b895d605c902e0931b7b4102d074..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95232 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 X-%SIv4lL7{vW@@U8vZ}+r3U^tta*CM diff --git a/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net40/Fasterflect.XML b/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net40/Fasterflect.XML deleted file mode 100644 index 52b60be..0000000 --- a/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net40/Fasterflect.XML +++ /dev/null @@ -1,4729 +0,0 @@ - - - - Fasterflect - - - - - Extension methods for creating object instances when you do not know which constructor to call. - - - - - This field is used to cache information on objects used as parameters for object construction, which - improves performance for subsequent instantiations of the same type using a compatible source type. - - - - - Creates an instance of the given using the public properties of the - supplied object as input. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many properties as possible to constructor parameters. Remaining properties - on the source are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - An instance of . - - - - Creates an instance of the given using the values in the supplied - dictionary as input. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many values as possible to constructor parameters. Remaining values - are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - An instance of . - - - - Creates an instance of the given using the supplied parameter information as input. - Parameter types are inferred from the supplied and as such these - should not be null. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many properties as possible to constructor parameters. Remaining properties - on the source are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - The type of which an instance should be created. - The names of the supplied parameters. - The values of the supplied parameters. - An instance of . - - - - Creates an instance of the given using the supplied parameter information as input. - This method will try to determine the least-cost route to constructing the instance, which - implies mapping as many properties as possible to constructor parameters. Remaining properties - on the source are mapped to properties on the created instance or ignored if none matches. - TryCreateInstance is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[], etc. - - The type of which an instance should be created. - The names of the supplied parameters. - The types of the supplied parameters. - The values of the supplied parameters. - An instance of . - - - - Insert a collectible object into the cache. - - The cache key used to reference the item. - The object to be inserted into the cache. - - - - Insert an object into the cache using the specified cache strategy (lifetime management). - - The cache key used to reference the item. - The object to be inserted into the cache. - The strategy to apply for the inserted item (use Temporary for objects - that are collectible and Permanent for objects you wish to keep forever). - - - - Retrieves an entry from the cache using the given key. - - The cache key of the item to retrieve. - The retrieved cache item or null if not found. - - - - Removes the object associated with the given key from the cache. - - The cache key of the item to remove. - True if an item removed from the cache and false otherwise. - - - - Removes all entries from the cache. - - - - - Process all entries in the cache and remove entries that refer to collected entries. - - The number of live cache entries still in the cache. - - - - This method returns a string with information on the cache contents (number of contained objects). - - - - - Returns the number of entries currently stored in the cache. Accessing this property - causes a check of all entries in the cache to ensure collected entries are not counted. - - - - - Indexer for accessing or adding cache entries. - - - - - Indexer for adding a cache item using the specified strategy. - - - - - An enumeration of the supported caching strategies. - - - - - This value indicates that caching is disabled. - - - - - This value indicates that caching is enabled, and that cached objects may be - collected and released at will by the garbage collector. This is the default value. - - - - - This value indicates that caching is enabled, and that cached objects may not - be garbage collected. The developer must manually ensure that objects are - removed from the cache when they are no longer needed. - - - - - Extension methods for mapping (copying) members from one object instance to another. - - - - - Maps values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The source object from which member values are read. - The target object to which member values are written. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Maps values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The source object from which member values are read. - The target object to which member values are written. - The used to define the scope when locating members. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Maps values from members on the source object to members with the same name on the target object. - - The source object from which member values are read. - The target object to which member values are written. - The member types (Fields, Properties or both) to include on the source. - The member types (Fields, Properties or both) to include on the target. - The used to define the scope when locating members. If - is different from the flag value - will automatically be applied. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Creates a delegate that can map values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The type of the source object. - The type of the target object. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Creates a delegate that can map values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The type of the source object. - The type of the target object. - The used to define the scope when locating members. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Creates a delegate that can map values from fields and properties on the source object to fields and properties with the - same name on the target object. - - The type of the source object. - The type of the target object. - The member types (Fields, Properties or both) to include on the source. - The member types (Fields, Properties or both) to include on the target. - The used to define the scope when locating members. If - is different from the flag value - will automatically be applied. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter members by substring and to ignore case. - - - - Maps values from fields on the source object to fields with the same name on the target object. - - The source object from which field values are read. - The target object to which field values are written. - The optional list of field names against which to filter the fields that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter fields by substring and to ignore case. - - - - Maps values from properties on the source object to properties with the same name on the target object. - - The source object from which property values are read. - The target object to which property values are written. - The optional list of property names against which to filter the properties that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-sensitive match. Pass to - filter properties by substring and to ignore case. - - - - Maps values from fields on the source object to properties with the same name (ignoring case) - on the target object. - - The source object from which field values are read. - The target object to which property values are written. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-insensitive match. Pass - to filter members by substring. - - - - Maps values from properties on the source object to fields with the same name (ignoring case) - on the target object. - - The source object from which property values are read. - The target object to which field values are written. - The optional list of member names against which to filter the members that are - to be mapped. If this parameter is null or empty no name filtering will be applied. The default - behavior is to check for an exact, case-insensitive match. Pass - to filter members by substring. - - - - Helper class for producing invocation maps that describe how to create an instance of an object - given a set of parameters. Maps are cached to speed up subsequent requests. - - - - - This field contains a dictionary mapping from a particular constructor to all known parameter sets, - each with an associated MethodMap responsible for creating instances of the type using the given - constructor and parameter set. - - - - - This class encapsulates common combinations and provides various - additional Fasterflect-specific flags to further tailor the lookup experience. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - Note that this value is respected even in cases where normal Reflection calls would ignore it. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - This value corresponds to the value. - - - - - If this option is specified the search for a named member will perform a partial match instead - of an exact match. If is specified the trimmed name is - used instead of the original member name. If is specified the - comparison uses and otherwise - uses . - - - - - If this option is specified the search for a named member will strip off the namespace and - interface name from explicitly implemented interface members before applying any comparison - operations. - - - - - If this option is specified the search for members will exclude explicitly implemented - interface members. - - - - - If this option is specified all members that are backers for another member, such as backing - fields for automatic properties or get/set methods for properties, will be excluded from the - result. - - - - - If this option is specified the search for methods will avoid checking whether parameters - have been declared as ref or out. This allows you to locate a method by its signature - without supplying the exact details for every parameter. - - - - - Search criteria encompassing all public and non-public members, including base members. - - - - - Search criteria encompassing all public and non-public instance members, including base members. - - - - - Search criteria encompassing all public and non-public static members, including base members. - - - - - Search criteria encompassing all public and non-public instance members, excluding base members. - - - - - Search criteria encompassing all public and non-public static members, excluding base members. - - - - - Search criteria encompassing all members, including base members. - - - - - Returns true if all values in the given are set in the current Flags instance. - - - - - Returns true if all values in the given are set in the current Flags instance. - - - - - Returns true if at least one of the values in the given are set in the current Flags instance. - - - - - Returns true if at least one of the values in the given are set in the current Flags instance. - - - - - Returns true if all values in the given are not set in the current Flags instance. - - - - - Returns true if all values in the given are not set in the current Flags instance. - - - - - Returns a new Flags instance with the union of the values from and - if is true, and otherwise returns the - supplied . - - - - - Returns a new Flags instance with the union of the values from and - if is true, and otherwise returns a new - Flags instance with the values from that were not in . - - - - - Returns a new Flags instance returns a new Flags instance with the values from - that were not in if is true, and otherwise returns - the supplied . - - - - - Compares the current Flags instance to the given . - Returns true only if is a Flags instance representing an identical selection. - - - - - Produces a unique hash code for the current Flags instance. - - - - - Produces a new Flags instance with the values from that were not in . - - - - - Produces a new Flags instance with the values from the union of and . - - - - - Produces a new Flags instance with the values from the intersection of and . - - - - - Compares two Flags instances and returns true if they represent identical selections. - - - - - Compares two Flags instances and returns true if they represent different selections. - - - - - Converts from BindingFlags to Flags. - - - - - Converts from long to Flags. - - - - - Converts from Flags to BindingFlags. - - - - - Converts from Flags to long. - - - - - Returns a string representation of the Flags values selected by the current instance. - - - - - Extension methods for working with arrays. - - - - - Sets to the element at position of . - - . - - - - Gets the element at position of . - - - - - Creates a delegate which can set element of . - - - - - Creates a delegate which can retrieve element of . - - - - - This class defines extensions for transforming any object to XML. - - - - - Generates a string representation of the given using the default - . The output will contain one element for every readable - property on and process reference properties (other than strings) - recursively. This method does not handle cyclic references - passing in such an object - graph will cause an infinite loop. - - The object to convert to XML. - A string containing the generated XML data. - - - - Generates a string representation of the given using the default - . The output will contain one element for every readable - property on and process reference properties (other than strings) - recursively. This method does not handle cyclic references - passing in such an object - graph will cause an infinite loop. - - The object to convert to XML. - - A string containing the generated XML data. - - - - Stores all necessary information to construct a dynamic method. - - - - - Two CallInfo instances are considered equaled if the following properties - are equaled: TargetType, Flags, IsStatic, MemberTypes, Name, - and ParamTypes. - - - - - The CIL should handle inner struct only when the target type is - a value type or the wrapper ValueTypeHolder type. In addition, the call - must also be executed in the non-static context since static - context doesn't need to handle inner struct case. - - - - - Extension methods for working with types. - - - - - Returns a wrapper instance if - is a value type. Otherwise, returns . - - An object to be examined. - A wrapper instance if - is a value type, or itself if it's a reference type. - - - - Returns a wrapped object if is an instance of . - - An object to be "erased". - The object wrapped by if the latter is of type . Otherwise, - return . - - - - Determines whether is a wrapped object (instance of ). - - The object to check. - Returns true if is a wrapped object (instance of ). - - - - Extension methods for locating and accessing fields. - - - - - Sets the field specified by on the given - to the specified . - - . - - - - Gets the value of the field specified by on the given . - - - - - Sets the field specified by and matching - on the given to the specified . - - . - - - - Gets the value of the field specified by and matching - on the given . - - - - - Creates a delegate which can set the value of the field specified by on - the given . - - - - - Creates a delegate which can get the value of the field specified by on - the given . - - - - - Creates a delegate which can set the value of the field specified by and - matching on the given . - - - - - Creates a delegate which can get the value of the field specified by and - matching on the given . - - - - - Gets the field identified by on the given . This method - searches for public and non-public instance fields on both the type itself and all parent classes. - - A single FieldInfo instance of the first found match or null if no match was found. - - - - Gets the field identified by on the given . - Use the parameter to define the scope of the search. - - A single FieldInfo instance of the first found match or null if no match was found. - - - - Gets all public and non-public instance fields on the given , - including fields defined on base types. - - The type on which to reflect. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. This method will check for an exact, - case-sensitive match. - A list of all instance fields on the type. This value will never be null. - - - - Gets all fields on the given that match the specified . - - The type on which to reflect. - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching fields on the type. This value will never be null. - - - - Gets the first (public or non-public) instance field with the given on the given - object. Returns the value of the field if a match was found and null otherwise. - - - When using this method it is not possible to distinguish between a missing field and a field whose value is null. - - The source object on which to find the field - The name of the field whose value should be retrieved - The value of the field or null if no field was found - - - - Gets the first field with the given on the given object. - Returns the value of the field if a match was found and null otherwise. - Use the parameter to limit the scope of the search. - - - When using this method it is not possible to distinguish between a missing field and a field whose value is null. - - The source object on which to find the field - The name of the field whose value should be retrieved - A combination of Flags that define the scope of the search - The value of the field or null if no field was found - - - - Sets the first (public or non-public) instance field with the given on the - given object to supplied . Returns true if a value - was assigned to a field and false otherwise. - - The source object on which to find the field - The name of the field whose value should be retrieved - The value that should be assigned to the field - True if the value was assigned to a field and false otherwise - - - - Sets the first field with the given on the given object - to the supplied . Returns true if a value was assigned to a field and false otherwise. - Use the parameter to limit the scope of the search. - - The source object on which to find the field - The name of the field whose value should be retrieved - The value that should be assigned to the field - A combination of Flags that define the scope of the search - True if the value was assigned to a field and false otherwise - - - - Extension methods for locating and accessing fields or properties, for situations where - you do not care which it is. - - - - - Gets the member identified by on the given . This - method searches for public and non-public instance fields on both the type itself and all parent classes. - - A single MemberInfo instance of the first found match or null if no match was found. - - - - Gets the member identified by on the given . Use - the parameter to define the scope of the search. - - A single MemberInfo instance of the first found match or null if no match was found. - - - - Gets all public and non-public instance fields and properties on the given , - including members defined on base types. - - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance fields and properties on the given - that match the specified , including members defined on base types. - - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance members on the given . - - A list of all members on the type. This value will never be null. - The type to reflect on. - A list of all members on the type. This value will never be null. - - - - Gets all public and non-public instance members on the given that - match the specified . - - A list of all matching members on the type. This value will never be null. - The type to reflect on. - The or combination used to define - the search behavior and result filtering. - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance members of the given on the - given , optionally filtered by the supplied list. - - The to include in the result. - The type on which to reflect. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching members on the type. This value will never be null. - - - - Gets all members of the given on the given that - match the specified , optionally filtered by the supplied - list (in accordance with the given ). - - The type to reflect on. - The to include in the result. - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching members on the type. This value will never be null. - - - - Gets the first (public or non-public) instance member with the given on the given - object. Returns the value of the member if a match was found and null otherwise. - - - When using this method it is not possible to distinguish between a missing member and a member whose value is null. - - The source object on which to find the member - The name of the member whose value should be retrieved - The value of the member or null if no member was found - - - - Gets the first member with the given on the given object. - Returns the value of the member if a match was found and null otherwise. - Use the parameter to limit the scope of the search. - - - When using this method it is not possible to distinguish between a missing member and a member whose value is null. - - The source object on which to find the member - The name of the member whose value should be retrieved - A combination of Flags that define the scope of the search - The value of the member or null if no member was found - - - - Sets the first (public or non-public) instance member with the given on the - given object to the supplied . Returns true - if a value was assigned to a member and false otherwise. - - The source object on which to find the member - The name of the member whose value should be retrieved - The value that should be assigned to the member - True if the value was assigned to a member and false otherwise - - - - Sets the first member with the given on the given object - to the supplied . Returns true if a value was assigned to a member and false otherwise. - Use the parameter to limit the scope of the search. - - The source object on which to find the member - The name of the member whose value should be retrieved - The value that should be assigned to the member - A combination of Flags that define the scope of the search - True if the value was assigned to a member and false otherwise - - - - Helper class for converting values between various types. - - - - - Convert the supplied XmlNode into the specified target type. Only the InnerXml portion - of the XmlNode is used in the conversion, unless the target type is itself an XmlNode. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied XAttribute into the specified target type. Only the Value portion - of the XAttribute is used in the conversion, unless the target type is itself an XAttribute. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied XElement into the specified target type. Only the Value portion - of the XElement is used in the conversion, unless the target type is itself an XElement. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied string into the specified target type. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - Convert the supplied object into the specified target type. - - The type into which to convert - The source value used in the conversion operation - The converted value - - - - A method that will convert between types and their textual names. - - The target type - The type of the provided value. - The value representing the type. - - - - - Helper method for converting enums from/to different types. - - - - - Convert the binary string (16 bytes) into a Guid. - - - - - Convert the Guid into a binary string. - - - - - A method that will convert guids from and to different types - - - - - Extension methods for creating object instances when you do not know which constructor to call. - - - - - Obtains a list of all methods with the given on the given - , and invokes the best match for the parameters obtained from the - public properties of the supplied object. - TryCallMethod is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[16], etc. - - The result of the invocation. - - - - Obtains a list of all methods with the given on the given - , and invokes the best match for the parameters obtained from the - values in the supplied dictionary. - TryCallMethod is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[16], etc. - - The result of the invocation. - - - - Obtains a list of all methods with the given on the given - , and invokes the best match for the supplied parameters. - TryCallMethod is very liberal and attempts to convert values that are not otherwise - considered compatible, such as between strings and enums or numbers, Guids and byte[16], etc. - - The type of which an instance should be created. - The name of the overloaded methods. - Specifies whether all supplied parameters must be used in the - invocation. Unless you know what you are doing you should pass true for this parameter. - The names of the supplied parameters. - The types of the supplied parameters. - The values of the supplied parameters. - The result of the invocation. - - - - This enumeration allows you to customize the XML output of the ToXml extensions. - - - - - This option specifies the empty set of options and does not affect the output. - - - - - If this option is specified the generated XML will include an XML document header. - - - - - If this option is specified a line feed will be emitted after every XML element. - - - - - If this option is specified nested tags will be indented either 1 tab character - (the default) or 4 space characters. - - - - - If this option is specified indentation will use spaces instead of tabs. - - - - - This option, which combines AddHeader, NewLineAfterElement and Indent, provides the - default set of options used. - - - - - This method applies name filtering to a set of members. - - - - - This method applies method parameter type filtering to a set of methods. - - - - - This method applies member type filtering to a set of members. - - - - - This method applies flags-based filtering to a set of members. - - - - - This class wraps a single invokable method call. It contains information on the method to call as well as - the parameters to use in the method call. - This intermediary class is used by the various other classes to select the best match to call - from a given set of available methods/constructors (and a set of parameter names and types). - - - - - Perform parameter reordering, null handling and type conversion in preparation - of executing the method call. - - The callers row of data. - The parameter array to use in the actual invocation. - - - - Test whether at least one bit is set in the array. Replaces the old "long != 0" check. - - - - - Test whether no bits are set in the array. Replaces the old "long == 0" check. - - - - - Test whether no bits are set in the array. Replaces the old "long == 0" check. - - - - - Extension methods for inspecting and working with fields. - - - - - Sets the static field identified by to the specified . - - - - - Sets the instance field identified by on the given - to the specified . - - - - - Gets the value of the static field identified by . - - - - - Gets the value of the instance field identified by on the given . - - - - - Creates a delegate which can set the value of the field identified by . - - - - - Creates a delegate which can get the value of the field identified by . - - - - - Assigns the given value to the specified member, overwriting any previous definition if one existed. - - - - - Gets the value of the specified member. - - - - - Invokes the specified member (if it is a delegate). - - - - - Gets a list of all dynamically defined members. - - - - - Extension methods for inspecting and working with properties. - - - - - Sets the static property identified by to the specified . - - - - - Sets the instance property identified by on the given - to the specified . - - - - - Gets the value of the static property identified by . - - - - - Gets the value of the instance property identified by on the given . - - - - - Creates a delegate which can set the value of the property . - - - - - Creates a delegate which can set the value of the property matching the - specified . - - - - - Creates a delegate which can get the value of the property . - - - - - Creates a delegate which can get the value of the property matching the - specified . - - - - - Extension methods for locating and retrieving attributes. - - - - - Gets the first associated with the . - - The first attribute found on the source element. - - - - Gets the first of type associated with the . - - The first attribute found on the source element. - - - - Gets the first of type associated with the . - - The first attribute found on the source element. - - - - Gets the first of type associated with the - enumeration value given in the parameter. - - The attribute type to search for. - An enumeration value on which to search for the attribute. - The first attribute found on the source. - - - - Gets the first of type associated with the - enumeration value given in the parameter. - - An enumeration value on which to search for the attribute. - The attribute type to search for. - The first attribute found on the source. - - - - Gets the s associated with the . The resulting - list of attributes can optionally be filtered by suppliying a list of - to include. - - A list of the attributes found on the source element. This value will never be null. - - - - Gets all s of type associated with the . - - A list of the attributes found on the source element. This value will never be null. - - - - Gets the s associated with the enumeration given in . - - The attribute type to search for. - An enumeration on which to search for attributes of the given type. - A list of the attributes found on the supplied source. This value will never be null. - - - - Gets the s associated with the enumeration given in . - The resulting list of attributes can optionally be filtered by suppliying a list of - to include. - - A list of the attributes found on the supplied source. This value will never be null. - - - - Determines whether the element has an associated - of type . - - True if the source element has the associated attribute, false otherwise. - - - - Determines whether the element has an associated - of type . - - True if the source element has the associated attribute, false otherwise. - - - - Determines whether the element has an associated - of any of the types given in . - - - The list of attribute types to look for. If this list is null or - empty an will be thrown. - True if the source element has at least one of the specified attribute types, false otherwise. - - - - Determines whether the element has an associated - of all of the types given in . - - True if the source element has all of the specified attribute types, false otherwise. - - - - Gets all public and non-public instance members on the given . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The to include in the search. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - will be included in the result. - A list of all matching members on the type. This value will never be null. - - - - Gets all members of the given on the given - that match the specified and are decorated with an - of the given type . - - The type on which to reflect. - The to include in the search. - The or combination - used to define the search behavior and result filtering. - A list of all matching members on the type. This value will never be null. - - - - Gets all members on the given that match the specified - . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The to include in the search. - The or combination - used to define the search behavior and result filtering. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - matching the given will be included in the result. - A list of all matching members on the type. This value will never be null. - - - - Gets all public and non-public instance fields and properties on the given . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - will be included in the result. - A list of all matching fields and properties on the type. This value will never be null. - - - - Gets all fields and properties on the given that match the specified - . - The resulting list of members can optionally be filtered by supplying a list of - , in which case only members decorated with at least one of - these will be included. - - The type on which to reflect. - The or combination - used to define the search behavior and result filtering. - The optional list of attribute types with which members should - be decorated. If this parameter is null or empty then all fields and properties - matching the given will be included in the result. - A list of all matching fields and properties on the type. This value will never be null. - - - - Gets a dictionary with all public and non-public instance members on the given - and their associated attributes. Only members of the given will - be included in the result. - The list of attributes associated with each member can optionally be filtered by supplying a list of - , in which case only members with at least one of these will be - included in the result. - - An dictionary mapping all matching members to their associated attributes. This value - will never be null. The attribute list associated with each member in the dictionary will likewise - never be null. - - - - Gets a dictionary with all members on the given and their associated attributes. - Only members of the given and matching will - be included in the result. - The list of attributes associated with each member can optionally be filtered by supplying a list of - , in which case only members with at least one of these will be - included in the result. - - An dictionary mapping all matching members to their associated attributes. This value - will never be null. The attribute list associated with each member in the dictionary will likewise - never be null. - - - - Extension methods for inspecting types. - - - - - Returns true of the supplied implements the given . - - The type (interface) to check for. - The type to check. - True if the given type implements the interface. - - - - Extension methods for inspecting and working with members. - - - - - Gets the static field or property identified by . - - - - - Sets the static field or property identified by with . - - - - - Gets the instance field or property identified by on - the . - - - - - Sets the instance field or property identified by on - the object with . - - - - - Gets the system type of the field or property identified by the . - - The system type of the member. - - - - Determines whether a value can be read from the field or property identified by - the . - - True for fields and readable properties, false otherwise. - - - - Determines whether a value can be assigned to the field or property identified by - the . - - True for updateable fields and properties, false otherwise. - - - - Determines whether the given is invokable. - - True for methods and constructors, false otherwise. - - - - Determines whether the given is a static member. - - True for static fields, properties and methods and false for instance fields, - properties and methods. Throws an exception for all other . - - - - Determines whether the given is an instance member. - - True for instance fields, properties and methods and false for static fields, - properties and methods. Throws an exception for all other . - - - - Determines whether the given has the given . - The comparison uses OrdinalIgnoreCase and allows for a leading underscore in either name - to be ignored. - - True if the name is considered identical, false otherwise. If either parameter - is null an exception will be thrown. - - - - Extension methods for locating, inspecting and invoking constructors. - - - - - Invokes a constructor whose parameter types are inferred from - on the given with being the arguments. - Leave empty if the constructor has no argument. - - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes a constructor having parameter types specified by - on the the given with being the arguments. - - - - - Invokes a constructor whose parameter types are inferred from and - matching on the given - with being the arguments. - Leave empty if the constructor has no argument. - - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes a constructor whose parameter types are and - matching on the given - with being the arguments. - - - - - Creates a delegate which can invoke the constructor whose parameter types are - on the given . Leave empty if the constructor - has no argument. - - - - - Creates a delegate which can invoke the constructor whose parameter types are - and matching on the given . - Leave empty if the constructor has no argument. - - - - - Finds all types implementing a specific interface or base class in the - given and invokes the default constructor on each to return a list of - instances. Any type that is not a class or does not have a default constructor is ignored. - - The interface or base class type to look for in the given assembly. - The assembly in which to look for types derived from the type parameter. - A list containing one instance for every unique type implementing T. This will never be null. - - - - Gets the constructor corresponding to the supplied on the - given . - - The type to reflect on. - The types of the constructor parameters in order. - The matching constructor or null if no match was found. - - - - Gets the constructor matching the given and corresponding to the - supplied on the given . - - The type to reflect on. - The search criteria to use when reflecting. - The types of the constructor parameters in order. - The matching constructor or null if no match was found. - - - - Gets all public and non-public constructors (that are not abstract) on the given . - - The type to reflect on. - A list of matching constructors. This value will never be null. - - - - Gets all constructors matching the given (and that are not abstract) - on the given . - - The type to reflect on. - The search criteria to use when reflecting. - A list of matching constructors. This value will never be null. - - - - Extension methods for inspecting and working with method parameters. - - - - - Determines whether null can be assigned to the given . - - True if null can be assigned, false otherwise. - - - - Determines whether the given has the given . - The comparison uses OrdinalIgnoreCase and allows for a leading underscore in either name - to be ignored. - - True if the name is considered identical, false otherwise. If either parameter - is null an exception will be thrown. - - - - Determines whether the given has an associated default value as - supplied by an . This method does not read the value of - the attribute. It also does not support C# 4.0 default parameter specifications. - - True if the attribute was detected, false otherwise. - - - - Gets the default value associated with the given . The value is - obtained from the if present on the parameter. This method - does not support C# 4.0 default parameter specifications. - - The default value if one could be obtained and converted into the type of the parameter, - and null otherwise. - - - - Collects methods into a pool and allows invocation of the best match given a set of parameters. - - - - - Add a method to the list of available methods for this method dispatcher. - - The method to add to the pool of invocation candidates. - - - - Invoke the best available match for the supplied parameters. - If no method can be called using the supplied parameters, an exception is thrown. - - The object on which to invoke a method. - Specifies whether all supplied parameters must be used in the - invocation. Unless you know what you are doing you should pass true for this parameter. - The object whose public properties will be used as parameters. - The return value of the invocation. - - - - Invoke the best available match for the supplied parameters. - If no method can be called using the supplied parameters, an exception is thrown. - - The object on which to invoke a method. - Specifies whether all supplied parameters must be used in the - invocation. Unless you know what you are doing you should pass true for this parameter. - A dictionary of parameter name/value pairs. - The return value of the invocation. - - - - Extension methods for locating and accessing properties. - - - - - Sets the property specified by on the given to the - specified . - - . - - - - Gets the value of the property specified by on the given . - - - - - Sets the property specified by matching - on the given to the specified . - - . - - - - Gets the value of the property specified by matching - on the given . - - - - - Sets the property specified by on the given to the - specified . - - . - - - - Gets the value of the property specified by on the given . - - - - - Creates a delegate which can set the value of the property specified by - on the given . - - - - - Creates a delegate which can get the value of the property specified by - on the given . - - - - - Creates a delegate which can set the value of the property specified by - matching on the given . - - - - - Creates a delegate which can get the value of the property specified by - matching on the given . - - - - - Sets the value of the indexer of the given - - The object whose indexer is to be set. - The list of the indexer parameters plus the value to be set to the indexer. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Sets the value of the indexer of the given - - The object whose indexer is to be set. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - The list of the indexer parameters plus the value to be set to the indexer. - This list must match with the list. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Gets the value of the indexer of the given - - The object whose indexer is to be retrieved. - The list of the indexer parameters. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The value returned by the indexer. - - - - Gets the value of the indexer of the given - - The object whose indexer is to be retrieved. - The types of the indexer parameters (must be in the right order). - The list of the indexer parameters. - The value returned by the indexer. - - - - Sets the value of the indexer matching of the given - - The object whose indexer is to be set. - The binding flags used to lookup the indexer. - The list of the indexer parameters plus the value to be set to the indexer. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Sets the value of the indexer matching of the given - - The object whose indexer is to be set. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - The binding flags used to lookup the indexer. - The list of the indexer parameters plus the value to be set to the indexer. - This list must match with the list. - The object whose indexer is to be set. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - obj.SetIndexer(new Type[]{typeof(int), typeof(string)}, new object[]{1, "a"}); - - - - - - Gets the value of the indexer matching of the given - - The object whose indexer is to be retrieved. - The binding flags used to lookup the indexer. - The list of the indexer parameters. - The parameter types are determined from these parameters, therefore no parameter can be null. - If any parameter is null (or you can't be sure of that, i.e. receive from a variable), - use a different overload of this method. - The value returned by the indexer. - - - - Gets the value of the indexer matching of the given - - The object whose indexer is to be retrieved. - The types of the indexer parameters (must be in the right order). - The binding flags used to lookup the indexer. - The list of the indexer parameters. - The value returned by the indexer. - - - - Creates a delegate which can set an indexer - - The type which the indexer belongs to. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - A delegate which can set an indexer. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - MethodInvoker invoker = type.DelegateForSetIndexer(new Type[]{typeof(int), typeof(string)}); - - - - - - Creates a delegate which can get the value of an indexer. - - The type which the indexer belongs to. - The types of the indexer parameters (must be in the right order). - The delegate which can get the value of an indexer. - - - - Creates a delegate which can set an indexer matching . - - The type which the indexer belongs to. - The binding flags used to lookup the indexer. - The types of the indexer parameters (must be in the right order), plus - the type of the indexer. - A delegate which can set an indexer. - - If the indexer is of type string and accepts one parameter of type int, this - method should be invoked as follow: - - MethodInvoker invoker = type.DelegateForSetIndexer(new Type[]{typeof(int), typeof(string)}); - - - - - - Creates a delegate which can get the value of an indexer matching . - - The type which the indexer belongs to. - The binding flags used to lookup the indexer. - The types of the indexer parameters (must be in the right order). - The delegate which can get the value of an indexer. - - - - Gets the property identified by on the given . This method - searches for public and non-public instance properties on both the type itself and all parent classes. - - A single PropertyInfo instance of the first found match or null if no match was found. - - - - Gets the property identified by on the given . - Use the parameter to define the scope of the search. - - A single PropertyInfo instance of the first found match or null if no match was found. - - - - Gets all public and non-public instance properties on the given , - including properties defined on base types. The result can optionally be filtered by specifying - a list of property names to include using the parameter. - - A list of matching instance properties on the type. - The type whose public properties are to be retrieved. - A list of names of properties to be retrieved. If this is null, - all properties are returned. - A list of all public properties on the type filted by . - This value will never be null. - - - - Gets all properties on the given that match the specified , - including properties defined on base types. - - A list of all matching properties on the type. This value will never be null. - - - - Gets the first (public or non-public) instance property with the given on the given - object. Returns the value of the property if a match was found and null otherwise. - - - When using this method it is not possible to distinguish between a missing property and a property whose value is null. - - The source object on which to find the property - The name of the property whose value should be retrieved - The value of the property or null if no property was found - - - - Gets the first property with the given on the given object. - Returns the value of the property if a match was found and null otherwise. - Use the parameter to limit the scope of the search. - - - When using this method it is not possible to distinguish between a missing property and a property whose value is null. - - The source object on which to find the property - The name of the property whose value should be retrieved - A combination of Flags that define the scope of the search - The value of the property or null if no property was found - - - - Sets the first (public or non-public) instance property with the given on the - given object to the supplied . Returns true - if a value was assigned to a property and false otherwise. - - The source object on which to find the property - The name of the property whose value should be retrieved - The value that should be assigned to the property - True if the value was assigned to a property and false otherwise - - - - Sets the first property with the given on the given object - to the supplied . Returns true if a value was assigned to a property and false otherwise. - Use the parameter to limit the scope of the search. - - The source object on which to find the property - The name of the property whose value should be retrieved - The value that should be assigned to the property - A combination of Flags that define the scope of the search - True if the value was assigned to a property and false otherwise - - - - Extension methods for inspecting, invoking and working with constructors. - - - - - Invokes the constructor with as arguments. - Leave empty if the constructor has no argument. - - - - - Creates a delegate which can create instance based on the constructor . - - - - - Extension methods for inspecting assemblies. - - - - - Gets all types in the given matching the optional list - . - - The assembly in which to look for types. - An optional list of names against which to filter the result. If this is - null or left empty, all types are returned. - A list of all matching types. This method never returns null. - - - - Gets all types in the given matching the specified - and the optional list . - - The assembly in which to look for types. - The used to customize how results - are filters. If the option is specified any name - comparisons will use instead of . - An optional list of names against which to filter the result. If this is - null or left empty, all types are returned. - A list of all matching types. This method never returns null. - - - - Gets all types in the given that implement the given . - - The interface types should implement. - The assembly in which to look for types. - A list of all matching types. This method never returns null. - - - - Gets all types in the given that are decorated with an - of the given . - - A list of all matching types. This value will never be null. - - - - Gets all types in the given that are decorated with an - of the given type . - - A list of all matching types. This value will never be null. - - - - Extension methods for locating, inspecting and invoking methods. - - - - - Invokes the method specified by on the given - using as arguments. - Leave empty if the method has no arguments. - - The return value of the method. - If the method has no return type, null is returned. - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes the method specified by on the given - using as arguments. - Method parameter types are specified by . - - The return value of the method. - If the method has no return type, null is returned. - - - - Invokes the method specified by on the given - matching using as arguments. - Leave empty if the method has no argument. - - The return value of the method. - If the method has no return type, null is returned. - - All elements of must not be null. Otherwise, - is thrown. If you are not sure as to whether - any element is null or not, use the overload that accepts paramTypes array. - - - - - - Invokes the method specified by on the given - matching using as arguments. - Method parameter types are specified by . - - The return value of the method. - If the method has no return type, null is returned. - - - - Creates a delegate which can invoke the method with arguments matching - on the given . - Leave empty if the method has no arguments. - - - - - Creates a delegate which can invoke the method with arguments matching - and matching on the given . - Leave empty if the method has no arguments. - - - - - Gets the public or non-public instance method with the given on the - given . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. Pass - to include explicitly implemented interface members, to locate - by substring, and to ignore case. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets the public or non-public instance method with the given on the - given where the parameter types correspond in order with the - supplied . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. - If this parameter is not null then only methods with the same - parameter signature will be included in the result. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets the method with the given and matching - on the given . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. Pass - to include explicitly implemented interface members, to locate - by substring, and to ignore case. - The or combination used to define - the search behavior and result filtering. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets the method with the given and matching - on the given where the parameter types correspond in order with the - supplied . - - The type on which to reflect. - The name of the method to search for. This argument must be supplied. The - default behavior is to check for an exact, case-sensitive match. Pass - to include explicitly implemented interface members, to locate - by substring, and to ignore case. - If this parameter is supplied then only methods with the same parameter signature - will be included in the result. The default behavior is to check only for assignment compatibility, - but this can be changed to exact matching by passing . - The or combination used to define - the search behavior and result filtering. - The specified method or null if no method was found. If there are multiple matches - due to method overloading the first found match will be returned. - - - - Gets all public and non-public instance methods on the given that match the - given . - - The type on which to reflect. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching methods. This value will never be null. - - - - Gets all public and non-public instance methods on the given that match the - given . - - The type on which to reflect. - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching methods. This value will never be null. - - - - Gets all public and non-public instance methods on the given that match the given - . - - The type on which to reflect. - If this parameter is supplied then only methods with the same parameter - signature will be included in the result. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. - A list of all matching methods. This value will never be null. - - - - Gets all methods on the given that match the given lookup criteria and values. - - The type on which to reflect. - If this parameter is supplied then only methods with the same parameter signature - will be included in the result. The default behavior is to check only for assignment compatibility, - but this can be changed to exact matching by passing . - The or combination used to define - the search behavior and result filtering. - The optional list of names against which to filter the result. If this parameter is - null or empty no name filtering will be applied. The default behavior is to check for an exact, - case-sensitive match. Pass to exclude explicitly implemented - interface members, to locate by substring, and - to ignore case. - A list of all matching methods. This value will never be null. - - - - Extension methods for inspecting, invoking and working with methods. - - - - - Invokes the static method identified by with - as arguments. Leave empty if the method has no argument. - - The return value of the method. - If the method has no return type, null is returned. - - - - Invokes the instance method identified by on the object - with as arguments. - Leave empty if the method has no argument. - - The return value of the method. - If the method has no return type, null is returned. - - - - Creates a delegate which can invoke the instance method identified by . - - - - - Gets all parameters for the given . - - The list of parameters for the method. This value will never be null. - - - - A wrapper for value type. Must be used in order for Fasterflect to - work with value type such as struct. - - - - - Creates a wrapper for value type. The wrapper - can then be used with Fasterflect. - - The value type to be wrapped. - Must be a derivative of ValueType. - - - - The actual struct wrapped by this instance. - - - - - Extension methods for deep cloning of objects. - - - - - Produces a deep clone of the object. Reference integrity is maintained and - every unique object in the graph is cloned only once. - A current limitation of this method is that all objects in the graph must have a default constructor. - - The type of the object to clone. - The object to clone. - A deep clone of the source object. - - - - Sets the member on the target to the given value. Returns true if the value was - actually written to the underlying member. - - - - - Gets the member on the target and assigns it to the result parameter. Returns - true if a value other than null was found and false otherwise. - - - - - Invokes the method specified and assigns the result to the result parameter. Returns - true if a method to invoke was found and false otherwise. - - - - - Gets all member names from the underlying instance. - - - - - A delegate to retrieve the value of an instance field or property of an object. - - The object whose field's or property's value is to be retrieved. - The value of the instance field or property. - - - - A delegate to set the value of an instance field or property of an object. - - The object whose field's or property's value is to be set. - The value to be set to the field or property. - - - - A delegate to set an element of an array. - - The array whose element is to be set. - The index of the element to be set. - The value to set to the element. - - - - A delegate to retrieve an element of an array. - - The array whose element is to be retrieved - The index of the element to be retrieved - The element at - - - - A delegate to invoke an instance method or indexer of an object. - - The object whose method or indexer is to be invoked on. - The properly-ordered parameter list of the method/indexer. - For indexer-set operation, the parameter array include parameters for the indexer plus - the value to be set to the indexer. - The return value of the method or indexer. Null is returned if the method has no - return type or if it's a indexer-set operation. - - - - A delegate to invoke the constructor of a type. - - The properly-ordered parameter list of the constructor. - An instance of type whose constructor is invoked. - - - - A delegate to copy values of instance members (fields, properties, or both) from one object to another. - - The object whose instance members' values will be read. - The object whose instance members' values will be written. - - - - A wrapper around the class. - - ILGenerator Class - - - - Initializes a new instance of the class - with the specified . - - The to use. - - - - Converts the supplied to a . - - The . - An ILGenerator. - - - - Begins a catch block. - - The Type object that represents the exception. - ILGenerator.BeginCatchBlock Method - - - - Begins an exception block for a filtered exception. - - ILGenerator.BeginCatchBlock Method - - - - Begins an exception block for a non-filtered exception. - - The label for the end of the block. - - - - Begins an exception fault block in the Microsoft intermediate language (MSIL) stream. - - Current instance of the . - - - - Begins a finally block in the Microsoft intermediate language (MSIL) instruction stream. - - Current instance of the . - - - - Begins a lexical scope. - - Current instance of the . - - - - Declares a local variable. - - The Type of the local variable. - The declared local variable. - - - - Declares a local variable, optionally pinning the object referred to by the variable. - - The Type of the local variable. - true to pin the object in memory; otherwise, false. - The declared local variable. - - - - Declares a new label. - - Returns a new label that can be used as a token for branching. - - - - Ends an exception block. - - Current instance of the . - - - - Ends a lexical scope. - - Current instance of the . - - - - Marks the Microsoft intermediate language (MSIL) stream's current position - with the given label. - - The label for which to set an index. - Current instance of the . - - - - Marks a sequence point in the Microsoft intermediate language (MSIL) stream. - - The document for which the sequence point is being defined. - The line where the sequence point begins. - The column in the line where the sequence point begins. - The line where the sequence point ends. - The column in the line where the sequence point ends. - Current instance of the . - - - - Emits an instruction to throw an exception. - - The class of the type of exception to throw. - Current instance of the . - - - - Specifies the namespace to be used in evaluating locals and watches for - the current active lexical scope. - - The namespace to be used in evaluating locals and watches for the current active lexical scope. - Current instance of the . - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if two values are equal. - - The label to branch from this location. - OpCodes.Beq - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if two values are equal. - - The label to branch from this location. - OpCodes.Beq_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is greater than or equal to the second value. - - The label to branch from this location. - OpCodes.Bge - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) - if the first value is greater than or equal to the second value. - - The label to branch from this location. - OpCodes.Bge_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the the first value is greather than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bge_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if if the the first value is greather than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bge_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is greater than the second value. - - The label to branch from this location. - OpCodes.Bgt - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is greater than the second value. - - The label to branch from this location. - OpCodes.Bgt_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is greater than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bgt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is greater than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Bgt_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than or equal to the second value. - - The label to branch from this location. - OpCodes.Ble - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than or equal to the second value. - - The label to branch from this location. - OpCodes.Ble_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than or equal to the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Ble_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than or equal to the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Ble_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than the second value. - - The label to branch from this location. - OpCodes.Blt - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than the second value. - - The label to branch from this location. - OpCodes.Blt_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if the first value is less than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Blt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if the first value is less than the second value, - when comparing unsigned integer values or unordered float values. - - The label to branch from this location. - OpCodes.Blt_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction when two unsigned integer values or unordered float values are not equal. - - The label to branch from this location. - OpCodes.Bne_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) - when two unsigned integer values or unordered float values are not equal. - - The label to branch from this location. - OpCodes.Bne_Un_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts a value type to an object reference. - - A Type - OpCodes.Box - ILGenerator.Emit - - - - Converts a value type to an object reference if the value is a value type. - - A Type - OpCodes.Box - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - unconditionally transfers control to a target instruction. - - The label to branch from this location. - OpCodes.Br - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if value is false, a null reference (Nothing in Visual Basic), or zero. - - The label to branch from this location. - OpCodes.Brfalse - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if value is false, a null reference, or zero. - - The label to branch from this location. - OpCodes.Brfalse_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction if value is true, not null, or non-zero. - - The label to branch from this location. - OpCodes.Brtrue - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - transfers control to a target instruction (short form) if value is true, not null, or non-zero. - - The label to branch from this location. - OpCodes.Brtrue_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - unconditionally transfers control to a target instruction (short form). - - The label to branch from this location. - OpCodes.Br_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - calls the method indicated by the passed method descriptor. - - The method to be called. - OpCodes.Call - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, constructorInfo) that - calls the method indicated by the passed method descriptor. - - The constructor to be called. - OpCodes.Call - ILGenerator.Emit - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls the method indicated by the passed method descriptor. - - The method to be called. - The types of the optional arguments if the method is a varargs method. - OpCodes.Call - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls the method indicated by the passed method descriptor. - - A Type - The name of the method to be called. - The types of the optional arguments if the method is a varargs method. - OpCodes.Call - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls the method indicated by the passed method descriptor. - - A Type - The name of the method to be called. - A bitmask comprised of one or more - that specify how the search is conducted. - The types of the optional arguments if the method is a varargs method. - OpCodes.Call - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCalli(, , Type, Type[]) that - calls the method indicated on the evaluation stack (as a pointer to an entry point) - with arguments described by a calling convention using an unmanaged calling convention. - - The unmanaged calling convention to be used. - The Type of the result. - The types of the required arguments to the instruction. - OpCodes.Calli - ILGenerator.EmitCalli - - - - Calls ILGenerator.EmitCalli(, , Type, Type[], Type[]) that - calls the method indicated on the evaluation stack (as a pointer to an entry point) - with arguments described by a calling convention using a managed calling convention. - - The managed calling convention to be used. - The Type of the result. - The types of the required arguments to the instruction. - The types of the optional arguments for vararg calls. - OpCodes.Calli - ILGenerator.EmitCalli - - - - Calls ILGenerator.Emit(, methodInfo) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - OpCodes.Callvirt - ILGenerator.Emit - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The types of the optional arguments if the method is a varargs method. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The declaring type of the method. - The types of the optional arguments if the method is a varargs method. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The declaring type of the method. - A bitmask comprised of one or more - that specify how the search is conducted. - The types of the optional arguments if the method is a varargs method. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.EmitCall(, methodInfo, optionalParameterTypes) that - calls a late-bound method on an object, pushing the return value onto the evaluation stack. - - The method to be called. - The declaring type of the method. - A bitmask comprised of one or more - that specify how the search is conducted. - OpCodes.Callvirt - ILGenerator.EmitCall - - - - Calls ILGenerator.Emit(, type) that - attempts to cast an object passed by reference to the specified class. - - A Type - OpCodes.Castclass - ILGenerator.Emit - - - - Attempts to cast an object passed by reference to the specified class - or to unbox if the type is a value type. - - A Type - - - - Calls ILGenerator.Emit() that - constrains the type on which a virtual method call is made. - - A Type - OpCodes.Constrained - ILGenerator.Emit - - - - Converts the value on top of the evaluation stack to the specified type. - - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - copies the value type located at the address of an object (type &, * or natural int) - to the address of the destination object (type &, * or natural int). - - A Type - OpCodes.Cpobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - initializes all the fields of the object at a specific address to a null reference or - a 0 of the appropriate primitive type. - - A Type - OpCodes.Initobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - tests whether an object reference (type O) is an instance of a particular class. - - A Type - OpCodes.Isinst - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - exits current method and jumps to specified method. - - The method to be jumped. - OpCodes.Jmp - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - loads an argument (referenced by a specified index value) onto the stack. - - Index of the argument that is pushed onto the stack. - OpCodes.Ldarg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) or - ILGenerator.Emit(, byte) that - loads an argument (referenced by a specified index value) onto the stack. - - Index of the argument that is pushed onto the stack. - OpCodes.Ldarg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - load an argument address onto the evaluation stack. - - Index of the address addr of the argument that is pushed onto the stack. - OpCodes.Ldarga - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - load an argument address, in short form, onto the evaluation stack. - - Index of the address addr of the argument that is pushed onto the stack. - OpCodes.Ldarga_S - ILGenerator.Emit - - - - Load an argument address onto the evaluation stack. - - Index of the address addr of the argument that is pushed onto the stack. - - - - Calls ILGenerator.Emit(, byte) that - loads the argument (referenced by a specified short form index) onto the evaluation stack. - - Index of the argument value that is pushed onto the stack. - OpCodes.Ldarg_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit( or ) that - pushes a supplied value of type int32 onto the evaluation stack as an int32. - - The value pushed onto the stack. - OpCodes.Ldc_I4_0 - OpCodes.Ldc_I4_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, int) that - pushes a supplied value of type int32 onto the evaluation stack as an int32. - - The value pushed onto the stack. - OpCodes.Ldc_I4 - ILGenerator.Emit - - - - Calls the best form of ILGenerator.Emit(Ldc_I4_X) that - pushes the integer value of -1 onto the evaluation stack as an int32. - - - - - - Calls ILGenerator.Emit(, byte) that - pushes the supplied int8 value onto the evaluation stack as an int32, short form. - - The value pushed onto the stack. - OpCodes.Ldc_I4_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, long) that - pushes a supplied value of type int64 onto the evaluation stack as an int64. - - The value pushed onto the stack. - OpCodes.Ldc_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, float) that - pushes a supplied value of type float32 onto the evaluation stack as type F (float). - - The value pushed onto the stack. - OpCodes.Ldc_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, double) that - pushes a supplied value of type float64 onto the evaluation stack as type F (float). - - The value pushed onto the stack. - OpCodes.Ldc_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - loads the address of the array element at a specified array index onto the top of the evaluation stack - as type & (managed pointer). - - A Type - OpCodes.Ldelema - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - finds the value of a field in the object whose reference is currently on the evaluation stack. - - A representing a field. - OpCodes.Ldfld - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - finds the address of a field in the object whose reference is currently on the evaluation stack. - - A representing a field. - OpCodes.Ldflda - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - pushes an unmanaged pointer (type natural int) to the native code implementing a specific method - onto the evaluation stack. - - The method to be called. - OpCodes.Ldftn - ILGenerator.Emit - - - - Loads a value of the type from a supplied address. - - A Type. - - - - Calls ILGenerator.Emit(, short) that - load an argument address onto the evaluation stack. - - Index of the local variable value pushed onto the stack. - OpCodes.Ldloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - load an argument address onto the evaluation stack. - - Local variable builder. - OpCodes.Ldloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - loads the address of the local variable at a specific index onto the evaluation stack. - - Index of the local variable. - OpCodes.Ldloca - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - loads the address of the local variable at a specific index onto the evaluation stack, short form. - - Index of the local variable. - OpCodes.Ldloca_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - loads the address of the local variable at a specific index onto the evaluation stack. - - A representing the local variable. - OpCodes.Ldloca - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - loads the local variable at a specific index onto the evaluation stack, short form. - - Index of the local variable. - OpCodes.Ldloc_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - copies the value type object pointed to by an address to the top of the evaluation stack. - - A Type - OpCodes.Ldobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - pushes the value of a static field onto the evaluation stack. - - A representing a field. - OpCodes.Ldsfld - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - pushes the address of a static field onto the evaluation stack. - - A representing a field. - OpCodes.Ldsflda - ILGenerator.Emit - - - - Calls -or- , - if given string is a null reference. - - The String to be emitted. - - - - - - Calls ILGenerator.Emit(, string) that - pushes a new object reference to a string literal stored in the metadata. - - The String to be emitted. - OpCodes.Ldstr - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - converts a metadata token to its runtime representation, pushing it onto the evaluation stack. - - The method to be called. - OpCodes.Ldtoken - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - converts a metadata token to its runtime representation, - pushing it onto the evaluation stack. - - A representing a field. - OpCodes.Ldtoken - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts a metadata token to its runtime representation, pushing it onto the evaluation stack. - - A Type - OpCodes.Ldtoken - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, methodInfo) that - pushes an unmanaged pointer (type natural int) to the native code implementing a particular virtual method - associated with a specified object onto the evaluation stack. - - The method to be called. - OpCodes.Ldvirtftn - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - exits a protected region of code, unconditionally tranferring control to a specific target instruction. - - The label. - OpCodes.Leave - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - exits a protected region of code, unconditionally transferring control to a target instruction (short form). - - The label. - OpCodes.Leave_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - pushes a typed reference to an instance of a specific type onto the evaluation stack. - - A Type - OpCodes.Mkrefany - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - pushes an object reference to a new zero-based, one-dimensional array whose elements - are of a specific type onto the evaluation stack. - - A Type - OpCodes.Newarr - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - creates a new object or a new instance of a value type, - pushing an object reference (type O) onto the evaluation stack. - - A representing a constructor. - OpCodes.Newobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ConstructorInfo) that - creates a new object or a new instance of a value type, - pushing an object reference (type O) onto the evaluation stack. - - A type. - An array of System.Type objects representing - the number, order, and type of the parameters for the desired constructor. - -or- An empty array of System.Type objects, to get a constructor that takes - no parameters. Such an empty array is provided by the static field System.Type.EmptyTypes. - - - - Calls ILGenerator.Emit(, type) that - retrieves the address (type &) embedded in a typed reference. - - A Type - OpCodes.Refanyval - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - returns from the current method, pushing a return value (if present) - from the caller's evaluation stack onto the callee's evaluation stack. - - OpCodes.Ret - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - pushes the size, in bytes, of a supplied value type onto the evaluation stack. - - A Type - OpCodes.Sizeof - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - stores the value on top of the evaluation stack in the argument slot at a specified index. - - Slot index. - OpCodes.Starg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - stores the value on top of the evaluation stack in the argument slot at a specified index, - short form. - - Slot index. - OpCodes.Starg_S - ILGenerator.Emit - - - - Stores the value on top of the evaluation stack in the argument slot at a specified index. - - Slot index. - OpCodes.Starg - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - replaces the value stored in the field of an object reference or pointer with a new value. - - A representing a field. - OpCodes.Stfld - ILGenerator.Emit - - - - Stores a value of the type at a supplied address. - - A Type. - - - - Calls ILGenerator.Emit(, ) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at a specified index. - - A local variable. - OpCodes.Stloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, short) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at a specified index. - - A local variable index. - OpCodes.Stloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, ) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index (short form). - - A local variable. - OpCodes.Stloc_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, byte) that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index (short form). - - A local variable index. - OpCodes.Stloc_S - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - copies a value of a specified type from the evaluation stack into a supplied memory address. - - A Type - OpCodes.Stobj - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, fieldInfo) that - replaces the value of a static field with a value from the evaluation stack. - - A representing a field. - OpCodes.Stsfld - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label[]) that - implements a jump table. - - The array of label objects to which to branch from this location. - OpCodes.Switch - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, label) that - indicates that an address currently atop the evaluation stack might not be aligned - to the natural size of the immediately following ldind, stind, ldfld, stfld, ldobj, stobj, - initblk, or cpblk instruction. - - The label to branch from this location. - OpCodes.Unaligned - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, long) that - indicates that an address currently atop the evaluation stack might not be aligned - to the natural size of the immediately following ldind, stind, ldfld, stfld, ldobj, stobj, - initblk, or cpblk instruction. - - An address is pushed onto the stack. - OpCodes.Unaligned - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts the boxed representation of a value type to its unboxed form. - - A Type - OpCodes.Unbox - ILGenerator.Emit - - - - Calls ILGenerator.Emit(, type) that - converts the boxed representation of a value type to its unboxed form. - - A Type - OpCodes.Unbox_Any - ILGenerator.Emit - - - - Calls if given type is a value type. - - A Type - OpCodes.Unbox - ILGenerator.Emit - - - - Ends sequence of property calls. - - - - - Loads default value of given type onto the evaluation stack. - - A Type - - - - Loads supplied object value (if possible) onto the evaluation stack. - - Any object instance or null reference. - True is a value was loaded, otherwise false. - - - - Initialize local variable with some default value. - - A method local variable. - - - - Loads a type instance at runtime. - - A type - - - - Loads a field instance at runtime. - - A representing a field. - - - - Cast an object passed by reference to the specified type - or unbox a boxed value type. - - A type - - - - Increase max stack size by specified delta. - - Number of bytes to enlarge max stack size. - - - - Gets MSIL generator. - - - - - Calls ILGenerator.Emit() that - adds two values and pushes the result onto the evaluation stack. - - OpCodes.Add - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - adds two integers, performs an overflow check, and pushes the result onto the evaluation stack. - - OpCodes.Add_Ovf - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. - - OpCodes.Add_Ovf_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - computes the bitwise AND of two values and pushes the result onto the evalution stack. - - OpCodes.And - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - returns an unmanaged pointer to the argument list of the current method. - - OpCodes.Arglist - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - signals the Common Language Infrastructure (CLI) to inform the debugger that a break point has been tripped. - - OpCodes.Break - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two values. If they are equal, the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Ceq - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two values. If the first value is greater than the second, - the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Cgt - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two unsigned or unordered values. - If the first value is greater than the second, the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Cgt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - throws if value is not a finite number. - - OpCodes.Ckfinite - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares two values. If the first value is less than the second, - the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Clt - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compares the unsigned or unordered values value1 and value2. - If value1 is less than value2, then the integer value 1 (int32) is pushed onto the evaluation stack; - otherwise 0 (int32) is pushed onto the evaluation stack. - - OpCodes.Clt_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to natural int. - - OpCodes.Conv_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int8, then extends (pads) it to int32. - - OpCodes.Conv_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int16, then extends (pads) it to int32. - - OpCodes.Conv_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int32. - - OpCodes.Conv_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to int64. - - OpCodes.Conv_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I1_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed int16 and extending it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int16 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_I2_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation tack to signed int32, throwing on overflow. - - OpCodes.Conv_Ovf_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int32, throwing on overflow. - - OpCodes.Conv_Ovf_I4_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to signed int64, - throwing on overflow. - - OpCodes.Conv_Ovf_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed int64, throwing on overflow. - - OpCodes.Conv_Ovf_I8_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to signed natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_I_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_U - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int8 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U1_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned int16 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int16 and extends it to int32, - throwing on overflow. - - OpCodes.Conv_Ovf_U2_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - Converts the signed value on top of the evaluation stack to unsigned int32, throwing on overflow. - - OpCodes.Conv_Ovf_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int32, throwing on overflow. - - OpCodes.Conv_Ovf_U4_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the signed value on top of the evaluation stack to unsigned int64, throwing on overflow. - - OpCodes.Conv_Ovf_U8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned int64, throwing on overflow. - - OpCodes.Conv_Ovf_U8_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned value on top of the evaluation stack to unsigned natural int, - throwing on overflow. - - OpCodes.Conv_Ovf_U_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to float32. - - OpCodes.Conv_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to float64. - - OpCodes.Conv_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the unsigned integer value on top of the evaluation stack to float32. - - OpCodes.Conv_R_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned natural int, and extends it to natural int. - - OpCodes.Conv_U - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int8, and extends it to int32. - - OpCodes.Conv_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int16, and extends it to int32. - - OpCodes.Conv_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int32, and extends it to int32. - - OpCodes.Conv_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - converts the value on top of the evaluation stack to unsigned int64, and extends it to int64. - - OpCodes.Conv_U8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - copies a specified number bytes from a source address to a destination address. - - OpCodes.Cpblk - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two values and pushes the result as a floating-point (type F) or - quotient (type int32) onto the evaluation stack. - - OpCodes.Div - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two unsigned integer values and pushes the result (int32) onto the evaluation stack. - - OpCodes.Div_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - copies the current topmost value on the evaluation stack, and then pushes the copy onto the evaluation stack. - - OpCodes.Dup - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - transfers control from the filter clause of an exception back to - the Common Language Infrastructure (CLI) exception handler. - - OpCodes.Endfilter - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - transfers control from the fault or finally clause of an exception block back to - the Common Language Infrastructure (CLI) exception handler. - - OpCodes.Endfinally - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - initializes a specified block of memory at a specific address to a given size and initial value. - - OpCodes.Initblk - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 0 onto the evaluation stack. - - OpCodes.Ldarg_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 1 onto the evaluation stack. - - OpCodes.Ldarg_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 2 onto the evaluation stack. - - OpCodes.Ldarg_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the argument at index 3 onto the evaluation stack. - - OpCodes.Ldarg_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 0 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 1 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 2 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 3 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 4 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 5 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 6 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_6 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 7 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_7 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of 8 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the integer value of -1 onto the evaluation stack as an int32. - - OpCodes.Ldc_I4_M1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type natural int at a specified array index onto the top of the evaluation stack - as a natural int. - - OpCodes.Ldelem_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int8 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int16 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int32 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type int64 at a specified array index onto the top of the evaluation stack as an int64. - - OpCodes.Ldelem_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type float32 at a specified array index onto the top of the evaluation stack as type F (float). - - OpCodes.Ldelem_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type float64 at a specified array index onto the top of the evaluation stack as type F (float). - - OpCodes.Ldelem_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element containing an object reference at a specified array index - onto the top of the evaluation stack as type O (object reference). - - OpCodes.Ldelem_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type unsigned int8 at a specified array index onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type unsigned int16 at a specified array index - onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the element with type unsigned int32 at a specified array index - onto the top of the evaluation stack as an int32. - - OpCodes.Ldelem_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type natural int as a natural int onto the evaluation stack indirectly. - - OpCodes.Ldind_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int8 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int16 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int32 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type int64 as an int64 onto the evaluation stack indirectly. - - OpCodes.Ldind_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type float32 as a type F (float) onto the evaluation stack indirectly. - - OpCodes.Ldind_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type float64 as a type F (float) onto the evaluation stack indirectly. - - OpCodes.Ldind_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads an object reference as a type O (object reference) onto the evaluation stack indirectly. - - OpCodes.Ldind_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type unsigned int8 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_U1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type unsigned int16 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_U2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads a value of type unsigned int32 as an int32 onto the evaluation stack indirectly. - - OpCodes.Ldind_U4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes the number of elements of a zero-based, one-dimensional array onto the evaluation stack. - - OpCodes.Ldlen - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 0 onto the evaluation stack. - - OpCodes.Ldloc_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 1 onto the evaluation stack. - - OpCodes.Ldloc_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 2 onto the evaluation stack. - - OpCodes.Ldloc_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - loads the local variable at index 3 onto the evaluation stack. - - OpCodes.Ldloc_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pushes a null reference (type O) onto the evaluation stack. - - OpCodes.Ldnull - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - allocates a certain number of bytes from the local dynamic memory pool and pushes the address - (a transient pointer, type *) of the first allocated byte onto the evaluation stack. - - OpCodes.Localloc - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - multiplies two values and pushes the result on the evaluation stack. - (a transient pointer, type *) of the first allocated byte onto the evaluation stack. - - OpCodes.Mul - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - multiplies two integer values, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Mul_Ovf - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - multiplies two unsigned integer values, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Mul_Ovf_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - negates a value and pushes the result onto the evaluation stack. - - OpCodes.Neg - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - fills space if opcodes are patched. No meaningful operation is performed although - a processing cycle can be consumed. - - OpCodes.Nop - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - computes the bitwise complement of the integer value on top of the stack - and pushes the result onto the evaluation stack as the same type. - - OpCodes.Not - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - compute the bitwise complement of the two integer values on top of the stack and - pushes the result onto the evaluation stack. - - OpCodes.Or - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - removes the value currently on top of the evaluation stack. - - OpCodes.Pop - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - specifies that the subsequent array address operation performs - no type check at run time, and that it returns a managed pointer - whose mutability is restricted. - - OpCodes.Refanytype - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - retrieves the type token embedded in a typed reference. - - OpCodes.Refanytype - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two values and pushes the remainder onto the evaluation stack. - - OpCodes.Rem - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - divides two unsigned values and pushes the remainder onto the evaluation stack. - - OpCodes.Rem_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - rethrows the current exception. - - OpCodes.Rethrow - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - shifts an integer value to the left (in zeroes) by a specified number of bits, - pushing the result onto the evaluation stack. - - OpCodes.Shl - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - shifts an integer value (in sign) to the right by a specified number of bits, - pushing the result onto the evaluation stack. - - OpCodes.Shr - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - shifts an unsigned integer value (in zeroes) to the right by a specified number of bits, - pushing the result onto the evaluation stack. - - OpCodes.Shr_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the natural int value - on the evaluation stack. - - OpCodes.Stelem_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int8 value on the evaluation stack. - - OpCodes.Stelem_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int16 value on the evaluation stack. - - OpCodes.Stelem_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int32 value on the evaluation stack. - - OpCodes.Stelem_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the int64 value on the evaluation stack. - - OpCodes.Stelem_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the float32 value on the evaluation stack. - - OpCodes.Stelem_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the float64 value on the evaluation stack. - - OpCodes.Stelem_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - replaces the array element at a given index with the object ref value (type O) - on the evaluation stack. - - OpCodes.Stelem_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type natural int at a supplied address. - - OpCodes.Stind_I - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int8 at a supplied address. - - OpCodes.Stind_I1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int16 at a supplied address. - - OpCodes.Stind_I2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int32 at a supplied address. - - OpCodes.Stind_I4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type int64 at a supplied address. - - OpCodes.Stind_I8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type float32 at a supplied address. - - OpCodes.Stind_R4 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores a value of type float64 at a supplied address. - - OpCodes.Stind_R8 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - stores an object reference value at a supplied address. - - OpCodes.Stind_Ref - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 0. - - OpCodes.Stloc_0 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 1. - - OpCodes.Stloc_1 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 2. - - OpCodes.Stloc_2 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - pops the current value from the top of the evaluation stack and stores it - in the local variable list at index 3. - - OpCodes.Stloc_3 - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - subtracts one value from another and pushes the result onto the evaluation stack. - - OpCodes.Sub - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - subtracts one integer value from another, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Sub_Ovf - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - subtracts one unsigned integer value from another, performs an overflow check, - and pushes the result onto the evaluation stack. - - OpCodes.Sub_Ovf_Un - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - performs a postfixed method call instruction such that the current method's stack frame - is removed before the actual call instruction is executed. - - OpCodes.Tailcall - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - throws the exception object currently on the evaluation stack. - - OpCodes.Throw - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - specifies that an address currently atop the evaluation stack might be volatile, - and the results of reading that location cannot be cached or that multiple stores - to that location cannot be suppressed. - - OpCodes.Volatile - ILGenerator.Emit - - - - Calls ILGenerator.Emit() that - computes the bitwise XOR of the top two values on the evaluation stack, - pushing the result onto the evaluation stack. - - OpCodes.Xor - ILGenerator.Emit - - - diff --git a/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net40/Fasterflect.dll b/src/gcDynamicDuckLib/packages/fasterflect.2.0.1/lib/net40/Fasterflect.dll deleted file mode 100644 index 7b8672c7f792ff080df499f4b199a1ab975b90f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96768 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 - - - - \ No newline at end of file