JsonSchema.Net Handles `additionalItems`. The JSON name of the keyword. The schema by which to evaluate additional items. Creates a new . The keyword's schema. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `additionalProperties`. The JSON name of the keyword. The schema by which to evaluate additional properties. Creates a new . The keyword's schema. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `allOf`. The JSON name of the keyword. The keywords schema collection. Creates a new . The set of schemas. Creates a new . The set of schemas. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `$anchor`. The JSON name of the keyword. The value of the anchor. Creates a new . The anchor value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `anyOf`. The JSON name of the keyword. The keywords schema collection. Creates a new . The set of schemas. Creates a new . The set of schemas. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `$comment`. The JSON name of the keyword. The comment value. Creates a new . The comment value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Defines some commonly used JSON Pointer constructs. These should be used whenever possible instead of allocating new instances. Defines an array containing only a single empty JSON Pointer. A set of predefined single-segment JSON Pointers that contain numeric indices. Handles `const`. The JSON name of the keyword. The constant value. Creates a new . The constant value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Manages error messages returned by built-in keywords. Default messages are provided by culture-specific resource files. Many messages support tokens in the format `[[foo]]`. Each message will specify the tokens it supports. Gets or sets the error message for . Available tokens are: - [[value]] - the value in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[value]] - the value in the schema Gets or sets the error message for when there are too few matching items. Available tokens are: - [[received]] - the number of matching items provided in the JSON instance - [[minimum]] - the lower limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the number of matching items provided in the JSON instance - [[minimum]] - the lower limit specified in the schema Gets or sets the error message for when there are too many matching items. Available tokens are: - [[received]] - the number of matching items provided in the JSON instance - [[maximum]] - the upper limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the number of matching items provided in the JSON instance - [[maximum]] - the upper limit specified in the schema Gets or sets the error message for . Available tokens are: - [[missing]] - the value in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[missing]] - the value in the schema Gets or sets the error message for . Available tokens are: - [[value]] - the value in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[value]] - the value in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the value provided in the JSON instance - [[values]] - the available values in the schema The default messages are static and do not use these tokens as enum values may be any JSON type and could be quite large. They are provided to support custom messages. Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the value provided in the JSON instance - [[values]] - the available values in the schema The default messages are static and do not use these tokens as enum values may be any JSON type and could be quite large. They are provided to support custom messages. Gets or sets a culture to use for error messages. Default is . Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. A JsonTypeInfo that matches . The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Replaces tokens in the form of `[[token]]` with a specified value, serialized as JSON. The message template. The token name (without brackets) The value. The detokenized string. Gets or sets the error message for . Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the upper limit in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the upper limit in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the lower limit in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the lower limit in the schema Gets or sets the error message for an unknown format. Available tokens are: - [[format]] - the format key Gets the error message for an unknown format. The culture to retrieve. Available tokens are: - [[format]] - the format key Gets or sets the error message for the . Available tokens are: - [[format]] - the format key Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[format]] - the format key Gets or sets the error message for the with additional information from the format validation. Available tokens are: - [[format]] - the format key - [[detail]] - the detail Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[format]] - the format key - [[detail]] - the detail Gets or sets the error message for the "false" schema. No tokens are supported. Gets or sets the error message for . Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the upper limit in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the upper limit in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the number of items provided in the JSON instance - [[limit]] - the upper limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the number of items provided in the JSON instance - [[limit]] - the upper limit specified in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the length of the JSON string - [[limit]] - the upper limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the length of the JSON string - [[limit]] - the upper limit specified in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the number of properties provided in the JSON instance - [[limit]] - the upper limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the number of properties provided in the JSON instance - [[limit]] - the upper limit specified in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the lower limit in the schema Gets the error message for for a specific culture. Available tokens are: - [[received]] - the value provided in the JSON instance - [[limit]] - the lower limit in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the number of items provided in the JSON instance - [[limit]] - the lower limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the number of items provided in the JSON instance - [[limit]] - the lower limit specified in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the length of the JSON string - [[limit]] - the lower limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the length of the JSON string - [[limit]] - the lower limit specified in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the number of properties provided in the JSON instance - [[limit]] - the lower limit specified in the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the number of properties provided in the JSON instance - [[limit]] - the lower limit specified in the schema Gets or sets the error message for . Available tokens are: - [[received]] - the value provided in the JSON instance - [[divisor]] - the required divisor Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the value provided in the JSON instance - [[divisor]] - the required divisor Gets or sets the error message for . Available tokens are: - [[count]] - the number of subschemas that passed validation Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[count]] - the number of subschemas that passed validation Gets or sets the error message for . Available tokens are: - [[pattern]] - the regular expression Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[pattern]] - the regular expression Gets or sets the error message for . Available tokens are: - [[missing]] - the properties missing from the JSON instance Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[missing]] - the properties missing from the JSON instance Gets or sets the error message for when the schema cannot be validated against the meta-schema. Available tokens are: - [[uri]] - the URI of the meta-schema Gets or sets the error message for when the schema cannot be validated against the meta-schema. The culture to retrieve. Available tokens are: - [[uri]] - the URI of the meta-schema Gets or sets the error message for . Available tokens are: - [[received]] - the type of value provided in the JSON instance - [[expected]] - the type(s) required by the schema Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[received]] - the type of value provided in the JSON instance - [[expected]] - the type(s) required by the schema Gets or sets the error message for . Available tokens are: - [[duplicates]] - the indices of duplicate pairs as a comma-delimited list of "(x, y)" items Gets the error message for for a specific culture. The culture to retrieve. Available tokens are: - [[duplicates]] - the indices of duplicate pairs as a comma-delimited list of "(x, y)" items Gets or sets the error message for when a vocabulary is unknown but required. Available tokens are: - [[vocabs]] - the URI IDs of the missing vocabularies as a comma-delimited list Gets or sets the error message for when a vocabulary is unknown but required. The culture to retrieve. Available tokens are: - [[vocabs]] - the URI IDs of the missing vocabularies as a comma-delimited list Handles `contains`. The JSON name of the keyword. The schema to match. Creates a new . The schema to match. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `contentMediaEncoding`. The JSON name of the keyword. The encoding value. Creates a new . The encoding value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `contentMediaType`. The JSON name of the keyword. The media type. Creates a new . The media type. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `contentSchema`. The JSON name of the keyword. The schema against which to evaluate the content. Creates a new . The schema against which to evaluate the content. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `default`. The JSON name of the keyword. The value to use as the default. Creates a new . The value to use as the default. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `definitions`. The JSON name of the keyword. The collection of schema definitions. Creates a new . The collection of schema definitions. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `$defs`. The JSON name of the keyword. The collection of schema definitions. Creates a new . The collection of schema definitions. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `dependencies`. The JSON name of the keyword. The collection of dependencies. Creates a new . The collection of dependencies. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. A holder for either a schema dependency or a requirements dependency. The schema dependency. The property dependency. Creates a schema dependency. The schema dependency. Creates a property dependency. The property dependency. Implicitly creates a from a . Implicitly creates a from a list of strings. Implicitly creates a from an array of strings. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `dependentRequired`. The JSON name of the keyword. The collection of "required"-type dependencies. Creates a new . The collection of "required"-type dependencies. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `dependentSchemas`. The JSON name of the keyword. The collection of "schema"-type dependencies. Creates a new . The collection of "schema"-type dependencies. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Indicates a keyword from which the decorated keyword requires annotations. Apply this attribute to your schema keyword to indicate a dependency on another keyword. The dependent type. Creates a new instance. The dependent type. Indicates a keyword from which the decorated keyword requires annotations. Apply this attribute to your schema keyword to indicate a dependency on another keyword. **Warning**: Generic attributes are not supported in .Net Framework. If your target includes .Net Framework, use the non-generic form of this attribute. Creates a new instance. Handles `deprecated`. The JSON name of the keyword. Whether the schema is deprecated. Creates a new . Whether the schema is deprecated. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `description`. The JSON name of the keyword. The description. Creates a new . The description. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Represents an ISO 8601 ABNF duration value. The number of years. The number of months. The number of weeks. Incompatible with , , and . The number of days. The number of hours. The number of minutes. The number of seconds. Parses a from a string. The source string. A duration. does not contains a valid duration string. Parses a from a string. The source string. The resulting duration. `true` if the parse was successful; `false` otherwise. Handles `$dynamicAnchor`. The JSON name of the keyword. Gets the anchor value. Creates a new . The anchor value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `$dynamicRef`. The JSON name of the keyword. The URI reference. Creates a new . Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Tracks the dynamic scope during schema evaluation. Dynamic scope is the collection of URIs (defined by `$id`) represented by the evaluation path. Gets the local scope, or the most recent schema URI encountered. Returns an enumerator that iterates through the collection. An enumerator that can be used to iterate through the collection. Indicates whether the current object is equal to another object of the same type. An object to compare with this object. true if the current object is equal to the other parameter; otherwise, false. Determines whether the specified object is equal to the current object. The object to compare with the current object. true if the specified object is equal to the current object; otherwise, false. Serves as the default hash function. A hash code for the current object. Handles `else`. The JSON name of the keyword. The schema to match. Creates a new . The schema to match. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. More extensions on . Determines contents-based equality: each element appears equally in each set. The first collection. The second collection. The element type. `true` if the collections contain the same number of the same elements; `false` otherwise. Determines contents-based equality: each element appears equally in each set. The first collection. The second collection. A custom equality comparer. The element type. `true` if the collections contain the same number of the same elements; `false` otherwise. Gets a string-dictionary-oriented hash code by combining the hash codes of its elements. The type of element. The collection of elements. A singular integer value that represents the collection. This can be used to correctly compare the contents of string dictionaries where key ordering is not important. Gets a string-dictionary-oriented hash code by combining the hash codes of its elements. The type of element. The collection of elements. A singular integer value that represents the collection. This can be used to correctly compare the contents of string dictionaries where key ordering is not important. Gets a collection-oriented hash code by combining the hash codes of its elements. The type of element. The collection of elements. A singular integer value that represents the collection. This can be used to correctly compare the contents of collections. Handles `enum`. The JSON name of the keyword. Gets or sets whether the keyword will check for unique values when deserializing. The specification states that values SHOULD be unique. As this is not a "MUST" requirement, implementations need to support multiple values. This setting allows enforcement of unique values. It is recommended, but off by default for specification compliance. The collection of enum values. Enum values aren't necessarily strings; they can be of any JSON value. Creates a new . The collection of enum values. Creates a new . The collection of enum values. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Provides contextual data for generating constraints and performing evaluations. Gets the evaluation options. This may be different per run, so it's important this not be captured by constraints. Gets the dynamic scope. The dynamic scope is the collection of URIs that evaluation has passed through to get to the current location. This is important when processing references. Gets the spec version that the schema is currently being evaluated under. This property is informed by the `$schema` keyword and , taking `$schema` as priority. Convenience extensions for building constraints and processing evaluations. Gets an evaluation from a keyword with the given type. The keyword type. The source evaluation. The keyword evaluation, if it exists. Gets a constraint from a keyword with the given type. The keyword type. The set of constraints. The keyword evaluation, if it exists. Allows configuration of the evaluation process. The default settings. Indicates which specification version to process as. This will filter the keywords of a schema based on their support. Indicates whether the schema should be validated against its `$schema` value. this is not typically necessary. Specifies the output format. The local schema registry. If a schema is not found here, it will automatically check the global registry as well. Specifies whether the `format` keyword should be required to provide validation results. Default is false, which just produces annotations for drafts 2019-09 and prior or follows the behavior set forth by the format-annotation vocabulary requirement in the `$vocabulary` keyword in a meta-schema declaring draft 2020-12. Specifies whether the `format` keyword should fail validations for unknown formats. Default is false. This option is applied whether `format` is using annotation or assertion behavior. Specifies whether custom keywords that aren't defined in vocabularies should be processed. Default is false. Custom keywords are those which have associated implementations. Unrecognized keywords, for which annotations should be collected, are not considered "custom." If enabled, annotations that are dropped as a result of a failing subschema will be reported in a `droppedAnnotations` property in the output. Outputs an annotation that lists any unknown keywords. Can be useful for catching typos. Gets the set of keyword types from which annotations will be ignored. Gets or sets the culture for error messages. Overrides . Gets or sets whether `$ref` is permitted to navigate into unknown keywords where subschemas aren't expected. Default is true. Create a new instance of the class. Creates a deep copy of the options. The source options. A new options instance with the same settings. Ignores annotations from the specified keyword. The keyword type which should not have annotations. Ignores annotations from all keywords. Clears ignored annotations. Restores annotation collection for the specified keyword. The results object for evaluations. Indicates whether the validation passed or failed. The schema location that generated this node. The instance location that was processed. The absolute schema location. If the schema did not have an absolute `$id`, a generated base URI will be used. The collection of nested results. Gets whether there are nested results. Because is lazily loaded, this property allows the check without the side effect of allocating a list object. The collection of annotations from this node. Gets whether this node has annotations. The collection of error from this node. Gets whether this node has errors. Gets the parent result. Transforms the results to the `basic` format. Transforms the results to the `flag` format. Sets an annotation. The annotation key. Typically the name of the keyword. The annotation value. Tries to get an annotation. The annotation key. The annotation or null. Gets all annotations of a particular data type for the current evaluation level. The key under which the annotation is stored. Typically a keyword. The set of all annotations for the current evaluation level. Marks the result as invalid. For better support for customization, consider using the overload that takes parameters. Marks the result as invalid. The keyword that failed validation. An error message. For better support for customization, consider using the overload that takes parameters. Default converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Produces output formats specified by 2019-09 and 2020-12. Holder for an annotation value. Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `examples`. The JSON name of the keyword. The collection of example values. Creates a new . The collection of example values. Creates a new . The collection of example values. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `exclusiveMaximum`. The JSON name of the keyword. The maximum value. Creates a new . The maximum value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `exclusiveMinimum`. The JSON name of the keyword. The minimum value. Creates a new . The minimum value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Represents a format. The format key. Creates a new . The format key. Validates an instance against a format and provides an error message. The node to validate. An error message. `true`. Override to return another value. Handles `format`. The JSON name of the keyword. The format. Creates a new . The format. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. The formats supported by JSON Schema base specifications. Defines the `date` format. Defines the `date-time` format. Defines the `duration` format. Defines the `email` format. Defines the `hostname` format. Defines the `idn-email` format. Defines the `idn-hostname` format. Defines the `ipv4` format. Defines the `ipv6` format. Defines the `iri` format. Defines the `iri-reference` format. Defines the `json-pointer` format. Defines the `regex` format. Defines the `relative-json-pointer` format. Defines the `time` format. Defines the `uri` format. Defines the `uri-reference` format. Defines the `uri-template` format. This is currently the same check as `uri`. The infrastructure to check URI templates [does not yet exist in .Net Standard/Core](https://github.com/dotnet/runtime/issues/41587). Defines the `uuid` format. Gets a format by its key. The key. The specified format, if known; otherwise null. Registers a new format. The format. Creates an unknown format. The format key. A instance. Represents an identifiable or locatable base document that may be or contain a JSON Schema. Gets the base URI that applies to this schema. This may be defined by a parent schema. This property is initialized to a generated random value that matches `https://json-everything.net/{random}` where `random` is 10 hex characters. It may change after the initial evaluation based on whether the schema contains an `$id` keyword or is a child of another schema. Finds a schema within the document. A JSON Pointer to the location of the schema within the document. Evaluation options. This is needed for internal processing. A JSON Schema, if found. Indicates that the keyword contains subschemas in such a way that does not fit with , , or . The subschemas. Gets the indicated subschema. If found, the schema and the number of segments followed to find the subschema; `(null, 0)` otherwise. Handles `$id`. The JSON name of the keyword. Defines the URI ID. Creates a new . The ID. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `if`. The JSON name of the keyword. The schema to match. Creates a new . The schema to match. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Allows definition of a custom schema identifier keyword. WARNING - Foot-gun mode: use only if you know what you're doing. Defines the URI ID. Defines basic functionality for schema keywords. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. Indicates that the keyword contains a named collection of schemas. The subschemas. Indicates that the keyword contains a collection of schemas. The subschemas. Indicates that the keyword contains a single schema. A subschema. Handles `items`. The JSON name of the keyword. The schema for the "single schema" form. The collection of schemas for the "schema array" form. Creates a new . The schema for the "single schema" form. Creates a new . The collection of schemas for the "schema array" form. Using the `params` constructor to build an array-form `items` keyword with a single schema will confuse the compiler. To achieve this, you'll need to explicitly specify the array. Creates a new . The collection of schemas for the "schema array" form. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Provides a general implementation for a . Gets the base URI that applies to this schema. This may be defined by a parent schema. This property is initialized to a generated random value that matches `https://json-everything.net/{random}` where `random` is 10 hex characters. It may change after the initial evaluation based on whether the schema contains an `$id` keyword or is a child of another schema. Creates a new . The JsonNode. The identifying base URI. Finds a schema within the document. A JSON Pointer to the location of the schema within the document. Evaluation options. This is needed for internal processing. A JSON Schema, if found. Provides some schema-related functionality for . Provides the JSON Schema type of a node. The node. The of the node. Represents a JSON Schema. The empty schema `{}`. Functionally equivalent to . The `true` schema. Passes all instances. The `false` schema. Fails all instances. Gets the keywords contained in the schema. Only populated for non-boolean schemas. Gets the keyword class by keyword name. The keyword name. The keyword implementation if it exists in the schema. For boolean schemas, gets the value. Null if the schema isn't a boolean schema. Gets the base URI that applies to this schema. This may be defined by a parent schema. This property is initialized to a generated random value that matches `https://json-everything.net/{random}` where `random` is 10 hex characters. It may change after the initial evaluation based on whether the schema contains an `$id` keyword or is a child of another schema. Gets whether the schema defines a new schema resource. This will only be true if it contains an `$id` keyword. Gets the specification version as determined by analyzing the `$schema` keyword, if it exists. Loads text from a file and deserializes a . The filename to load, URL-decoded. Serializer options. A new . Could not deserialize a portion of the schema. The filename needs to not be URL-encoded as attempts to encode it. Loads text from a file and deserializes a . The filename to load, URL-decoded. A new . Could not deserialize a portion of the schema. The filename needs to not be URL-encoded as attempts to encode it. Deserializes a from text. The text to parse. Serializer options. A new . Could not deserialize a portion of the schema. Deserializes a from text. The text to parse. A new . Could not deserialize a portion of the schema. Deserializes a from a stream. A stream. Serializer options. A new . Deserializes a from a stream. A stream. A new . Evaluates an instance by automatically determining the schema to use by examining the instance's `$schema` key. The root instance. The options to use for this evaluation. A that provides the outcome of the evaluation. Throw when the instance doesn't have a `$schema` key, when the value under `$schema` is not an absolute URI, or when the URI is not associated with a registered schema. Gets a specified keyword if it exists. The type of the keyword to get. The keyword if it exists; otherwise null. Gets a specified keyword if it exists. The keyword if it exists; otherwise null. The type of the keyword to get. true if the keyword exists; otherwise false. Gets a specified keyword if it exists. The type of the keyword to get. The name of the keyword. The keyword if it exists; otherwise null. true if the keyword exists; otherwise false. Evaluates an instance against this schema. The root instance. The options to use for this evaluation. A that provides the outcome of the evaluation. Builds a constraint for the schema. The relative evaluation path in JSON Pointer form. Generally this will be a keyword name, but may have other segments, such as in the case of `properties` which also has the property name. The base location within the instance that is being evaluated. The location relative to within the instance that is being evaluated. The evaluation context. A schema constraint. The constraint returned by this method is cached by the object. Different evaluation paths to this schema object may result in different constraints, so a new constraint is saved for each dynamic scope. Implicitly converts a boolean value into one of the boolean schemas. The boolean value. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. A fluent-style builder for . Adds a new keyword. The keyword to add. Gets a keyword if one has been added. the keyword type. The keyword, if it exists; `null` otherwise. Creates a new . A JSON Schema that simply refers back to the root schema. Creates a new . A JSON Schema that simply refers back to the recursive root schema. Builds the schema. A . For convenience, implicitly calls . A . Provides a fluent interface for . Add an `additionalItems` keyword. The builder. The schema for `additionalItems`. The builder. Add an `additionalProperties` keyword. The builder. The schema for `additionalProperties`. The builder. Add an `allOf` keyword. The builder. The schemas for `allOf`. The builder. Add an `allOf` keyword. The builder. The schemas for `allOf`. The builder. Add an `$anchor` keyword. The builder. The anchor reference. The builder. Add an `anyOf` keyword. The builder. The schemas for `anyOf`. The builder. Add an `anyOf` keyword. The builder. The schemas for `anyOf`. The builder. Add a `$comment` keyword. The builder. The comment. The builder. Add a `const` keyword. The builder. The constant value. The builder. Add an `contains` keyword. The builder. The schema for `contains`. The builder. Add a `default` keyword. The builder. The value. The builder. Add a `definitions` keyword. The builder. The schema definition map. The builder. Add a `definitions` keyword. The builder. The schema definition map. The builder. Add a `$defs` keyword. The builder. The schema definition map. The builder. Add a `$defs` keyword. The builder. The schema definition map. The builder. Add a `dependencies` keyword. The builder. The dependencies. The builder. Add a `dependencies` keyword. The builder. The dependencies. The builder. Add a `dependentRequired` keyword. The builder. The dependencies. The builder. Add a `dependentRequired` keyword. The builder. The dependencies. The builder. Add a `dependentSchemas` keyword. The builder. The dependencies. The builder. Add a `dependentSchemas` keyword. The builder. The dependencies. The builder. Add a `deprecated` keyword. The builder. Whether the schema is deprecated. The builder. Add a `description` keyword. The builder. The description. The builder. Add an `$dynamicAnchor` keyword. The builder. The anchor reference. The builder. Add a `$dynamicRef` keyword. The builder. The URI reference. The builder. Add a `$dynamicRef` keyword. The builder. The URI reference. The builder. Add an `else` keyword. The builder. The schema for `else`. The builder. Add an `enum` keyword. The builder. The values for the enum. The builder. Add an `enum` keyword. The builder. The values for the enum. The builder. Add an `enum` keyword. The builder. The values for the enum. The builder. This overload is provided as a convenience as string-only enums are most common. Add an `examples` keyword. The builder. The example values. The builder. Add an `examples` keyword. The builder. The example values. The builder. Add an `exclusiveMaximum` keyword. The builder. The max value. The builder. Add an `exclusiveMinimum` keyword. The builder. The min value. The builder. Add a `format` keyword. The builder. The format. The builder. Add a `format` keyword. The builder. The format. The builder. Add an `$id` keyword. The builder. The ID. The builder. Add an `$id` keyword. The builder. The ID. The builder. Add an `if` keyword. The builder. The schema for `if`. The builder. Add a single-schema `items` keyword. The builder. The schema for `items`. The builder. Add a schema-array `items` keyword. The builder. The schemas for `items`. The builder. Add a `maxContains` keyword. The builder. The max number of expected matches. The builder. Add a `maximum` keyword. The builder. The max value. The builder. Add a `maxItems` keyword. The builder. The max number of expected items. The builder. Add a `maxLength` keyword. The builder. The max string length. The builder. Add a `maxProperties` keyword. The builder. The max number of expected properties. The builder. Add a `minContains` keyword. The builder. The min number of expected matches. The builder. Add a `minimum` keyword. The builder. The min value. The builder. Add a `minItems` keyword. The builder. The min number of expected items. The builder. Add a `minLength` keyword. The builder. The min string length. The builder. Add a `minProperties` keyword. The builder. The min number of expected properties. The builder. Add a `multipleOf` keyword. The builder. The divisor. The builder. Add a `not` keyword. The builder. The schema for `not`. The builder. Add a `oneOf` keyword. The builder. The schema for `oneOf`. The builder. Add a `oneOf` keyword. The builder. The schemas for `oneOf`. The builder. Add a `pattern` keyword. The builder. The Regex instance to match. The builder. Add a `pattern` keyword. The builder. The pattern to match. The builder. Add a `patternProperties` keyword. The builder. The property schemas. The builder. Add a `patternProperties` keyword. The builder. The property schemas. The builder. Add a `patternProperties` keyword. The builder. The property schemas. The builder. Add a `patternProperties` keyword. The builder. The property schemas. The builder. Add a `prefixItems` keyword. The builder. The schemas for `prefixItems`. The builder. Add a `prefixItems` keyword. The builder. The schemas for `prefixItems`. The builder. Add a `properties` keyword. The builder. The property schemas. The builder. Add a `properties` keyword. The builder. The property schemas. The builder. Adds a `propertyDependencies` keyword. The builder. The property dependency schemas. The builder. Adds a `propertyDependencies` keyword. The builder. The property dependency schemas. The builder. Add a `propertyNames` keyword. The builder. The schema for `propertyNames`. The builder. Add a `readOnly` keyword. The builder. Whether the instance is read-only. The builder. Add a `$recursiveAnchor` keyword. The builder. The value. The builder. Per Draft 2019-09, the value must always be `true`. This is implied for this method. Add a `$recursiveRef` keyword. The builder. The URI reference. The builder. Add a `$recursiveRef` keyword. The builder. The URI reference. The builder. Add a `$ref` keyword. The builder. The URI reference. The builder. Add a `$ref` keyword. The builder. The URI reference. The builder. Add a `required` keyword. The builder. The required property collections. The builder. Add a `required` keyword. The builder. The required property collections. The builder. Add a `$schema` keyword. The builder. The uri of the meta-schema. The builder. Add a `$schema` keyword. The builder. The uri of the meta-schema. The builder. Add a `then` keyword. The builder. The schema for `then`. The builder. Add a `title` keyword. The builder. The title. The builder. Add a `type` keyword. The builder. The type. Can be combined with the bit-wise OR operator `|`. The builder. Add a `type` keyword. The builder. The types. The builder. Add a `type` keyword. The builder. The types. The builder. Add an `unevaluatedItems` keyword. The builder. The schema for `unevaluatedItems`. The builder. Add an `unevaluatedProperties` keyword. The builder. The schema for `unevaluatedProperties`. The builder. Add a `uniqueItems` keyword. The builder. Whether to expect a unique item set. The builder. Adds a keyword that's not recognized by any vocabulary - extra data - to the schema. The builder. The keyword name. The value. The builder. Add an `$vocabulary` keyword. The builder. The vocabulary callouts. The builder. Add an `$vocabulary` keyword. The builder. The vocabulary callouts. The builder. Add an `$vocabulary` keyword. The builder. The vocabulary callouts. The builder. Add an `$vocabulary` keyword. The builder. The vocabulary callouts. The builder. Add a `writeOnly` keyword. The builder. Whether the instance is write-only. The builder. Convenience method that builds and evaluates with a single call. The builder. The root instance. The options to use for this evaluation. A that provides the outcome of the evaluation. Thrown when a schema is invalid or cannot be processed with the current configuration. Creates a new instance of the type. The message that describes the error. Some extensions for Some extensions for Extends to take . The schema. Instance to be evaluated. The options to use for this evaluation. A that provides the outcome of the evaluation. Extends to take . The schema. Instance to be evaluated. The options to use for this evaluation. A that provides the outcome of the evaluation. Generates a bundle schema that contains all of the externally referenced schemas in a single document. The root schema. Options (used for the schema registry) A JSON Schema with all referenced schemas. Thrown if a reference cannot be resolved. Thrown if a reference resolves to a non-JSON-Schema document. Gets the schema for `additionalItems` if the keyword exists. Gets the schema for `additionalProperties` if the keyword exists. Gets the schemas in `allOf` if the keyword exists. Gets the value of `$anchor` if the keyword exists. Gets the schemas in `anyOf` if the keyword exists. Gets the value of `$comment` if the keyword exists. Gets the value of `const` if the keyword exists. Gets the schema for `contains` if the keyword exists. Gets the value of `contentEncoding` if the keyword exists. Gets the value of `contentMediaType` if the keyword exists. Gets the schema for `contentSchema` if the keyword exists. Gets the value of `default` if the keyword exists. Gets the schemas in `definitions` if the keyword exists. Gets the schemas in `$defs` if the keyword exists. Gets the requirements in `dependencies` if the keyword exists. Gets the requirements in `dependentRequired` if the keyword exists. Gets the schemas in `dependentSchemas` if the keyword exists. Gets the value of `deprecated` if the keyword exists. Gets the value of `description` if the keyword exists. Gets the value of `$dynamicAnchor` if the keyword exists. Gets the value of `$dynamicRef` if the keyword exists. Gets the schema for `else` if the keyword exists. Gets the values in `enum` if the keyword exists. Gets the values in `examples` if the keyword exists. Gets the value of `exclusiveMaximum` if the keyword exists. Gets the value of `exclusiveMinimum` if the keyword exists. Gets the value of `format` if the keyword exists. Gets the value of `$id` if the keyword exists. Gets the schema for `if` if the keyword exists. Gets the schema for `items` if the keyword exists and is a single schema. Gets the schemas in `items` if the keyword exists and is an array of schemas. Gets the value of `maxContains` if the keyword exists. Gets the value of `maximum` if the keyword exists. Gets the value of `maxItems` if the keyword exists. Gets the value of `maxLength` if the keyword exists. Gets the value of `maxProperties` if the keyword exists. Gets the value of `minContains` if the keyword exists. Gets the value of `minimum` if the keyword exists. Gets the value of `minItems` if the keyword exists. Gets the value of `minLength` if the keyword exists. Gets the value of `minProperties` if the keyword exists. Gets the value of `multipleOf` if the keyword exists. Gets the schema for `not` if the keyword exists. Gets the schemas in `oneOf` if the keyword exists. Gets the Regex of `pattern` if the keyword exists. Gets the value of `pattern` if the keyword exists. Gets the schemas in `patternProperties` if the keyword exists. Gets the schemas in `patternProperties` if the keyword exists. Gets the schemas in `prefixItems` if the keyword exists. Gets the schemas in `properties` if the keyword exists. Gets the schemas for `propertyDependencies` if the keyword exists. Gets the schema for `propertyNames` if the keyword exists. Gets the value of `readOnly` if the keyword exists. Gets the value of `$recursiveAnchor` if the keyword exists. Gets the value of `$recursiveRef` if the keyword exists. Gets the value of `$ref` if the keyword exists. Gets the values in `required` if the keyword exists. Gets the value of `$schema` if the keyword exists. Gets the schema for `then` if the keyword exists. Gets the value of `title` if the keyword exists. Gets the value of `type` if the keyword exists. Gets the schema for `unevaluatedItems` if the keyword exists. Gets the schema for `unevaluatedProperties` if the keyword exists. Gets the value of `uniqueItems` if the keyword exists. Gets the values in `$vocabulary` if the keyword exists. Gets the value of `writeOnly` if the keyword exists. A serializer context for this library. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. Defines the source generated JSON serialization contract metadata for a given type. The default associated with a default instance. The source-generated options associated with this context. Extension methods for . Describes the constraint applied by a single keyword. This represents any work that can be performed as part of static analysis of the schema. Gets a no-op constraint. Use for keywords that have no assertion or annotation behavior, e.g. `$defs`. The keyword name. A method that used to apply the actual constraint behavior. This method takes a which contains the local instance being evaluated and the local results object. Gets or sets the collection of keyword constraints (i.e. sibling keywords) that this keyword is dependent upon. The evaluations of these constraints will be available when this keyword is evaluated. Gets or sets the collection of schema constraints (i.e. subschemas) that this keyword is dependent upon. The evaluations of these constraints will be available when this keyword is evaluated. Creates a new keyword constraint. The keyword name. A method that used to apply the actual constraint behavior. Creates a keyword constraint that simply applies an annotation. The keyword name. The annotation value. A new keyword constraint. Represents any evaluation-time work (i.e. any work that requires the instance) for keywords. Gets the local instance to be evaluated. Gets the local results object. Gets any sibling evaluations for this keyword. These evaluations are sourced from the associated constraint's . Gets any child evaluations for this keyword. These evaluations are sourced from the associated constraint's . This property is publicly settable as some keywords cannot define child constraints until the instance is available. Indicates that the evaluation should be skipped and no work is to be done, e.g. `then` is skipped when `if` fails validation. Handles `maxContains`. The JSON name of the keyword. The maximum expected matching items. Creates a new . The maximum expected matching items. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `maximum`. The JSON name of the keyword. The maximum expected value. Creates a new . The maximum expected value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `maxItems`. The JSON name of the keyword. The expected maximum number of items. Creates a new . The expected maximum number of items. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `maxLength`. The JSON name of the keyword. The maximum expected string length. Creates a new . The maximum expected string length. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `maxProperties`. The JSON name of the keyword. The maximum expected number of properties. Creates a new . The maximum expected number of properties. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Exposes the meta-schemas for the supported drafts. The Draft 2019-09 meta-schema ID. The Draft 2019-09 Core meta-schema ID. The Draft 2019-09 Applicator meta-schema ID. The Draft 2019-09 Validation meta-schema ID. The Draft 2019-09 Metadata meta-schema ID. The Draft 2019-09 Format meta-schema ID. The Draft 2019-09 Content meta-schema ID. The Draft 2019-09 meta-schema. The Draft 2019-09 Core meta-schema. The Draft 2019-09 Applicator meta-schema. The Draft 2019-09 Validation meta-schema. The Draft 2019-09 Metadata meta-schema. The Draft 2019-09 Format meta-schema. The Draft 2019-09 Content meta-schema. The Draft 2020-12 meta-schema ID. The Draft 2020-12 Core meta-schema ID. The Draft 2020-12 Unevaluated meta-schema ID. The Draft 2020-12 Applicator meta-schema ID. The Draft 2020-12 Validation meta-schema ID. The Draft 2020-12 Metadata meta-schema ID. The Draft 2020-12 Format-Annotation meta-schema ID. The Draft 2020-12 Format-Assertion meta-schema ID. The Draft 2020-12 Content meta-schema ID. The Draft 2020-12 meta-schema. The Draft 2020-12 Core meta-schema. The Draft 2020-12 Unevaluated meta-schema. The Draft 2020-12 Applicator meta-schema. The Draft 2020-12 Validation meta-schema. The Draft 2020-12 Metadata meta-schema. The Draft 2020-12 Format-Annotation meta-schema. The Draft 2020-12 Format-Assertion meta-schema. The Draft 2020-12 Content meta-schema. The Draft 6 Core meta-schema ID. The Draft 6 Core meta-schema. The Draft 7 Core meta-schema ID. The Draft 7 Core meta-schema. The Draft 2020-12 meta-schema ID. The Draft 2020-12 Core meta-schema ID. The Draft 2020-12 Unevaluated meta-schema ID. The Draft 2020-12 Applicator meta-schema ID. The Draft 2020-12 Validation meta-schema ID. The Draft 2020-12 Metadata meta-schema ID. The Draft 2020-12 Format-Annotation meta-schema ID. The Draft 2020-12 Format-Assertion meta-schema ID. The Draft 2020-12 Content meta-schema ID. The Draft 2020-12 meta-schema. The Draft 2020-12 Core meta-schema. The Draft 2020-12 Unevaluated meta-schema. The Draft 2020-12 Applicator meta-schema. The Draft 2020-12 Validation meta-schema. The Draft 2020-12 Metadata meta-schema. The Draft 2020-12 Format-Annotation meta-schema. The Draft 2020-12 Format-Assertion meta-schema. The Draft 2020-12 Content meta-schema. Handles `minContains`. The JSON name of the keyword. The minimum expected matching items. Creates a new . The minimum expected matching items. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `minimum`. The JSON name of the keyword. The minimum expected value. Creates a new . The minimum expected value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `minItems`. The JSON name of the keyword. The expected minimum number of items. Create a new . The expected minimum number of items. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `minLength`. The JSON name of the keyword. The minimum expected string length. Creates a new . The minimum expected string length. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `minProperties`. The JSON name of the keyword. The minimum expected number of properties. Creates a new . The minimum expected number of properties. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `multipleOf`. The JSON name of the keyword. The expected divisor of a value. Creates a new . The expected divisor of a value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `not`. The JSON name of the keyword. The schema to not match. Creates a new . The schema to not match. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `oneOf`. The JSON name of the keyword. The keywords schema collection. Creates a new . The keywords schema collection. Creates a new . The keywords schema collection. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Enumerates the available output formats. Indicates that only a single pass/fail node will be returned. Indicates that all nodes will be listed as children of the top node. Indicates that nodes will match the structure of the schema. Handles `pattern`. The JSON name of the keyword. The regular expression. Returns the Regex Value of the keyword. (obsolete) All validations will fail if this is populated. Creates a new based on a regular expression instance. Creates a new based on a regular expression pattern. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `patternProperties`. The JSON name of the keyword. The pattern values of this PatternPropertiesKeyword The regex patterns of this PatternPropertiesKeyword (obsolete) All validations will fail if this is populated. Creates a new . The pattern-keyed schemas. Creates a new . The pattern-keyed schemas. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. A that uses a predicate for evaluation. A predicate that also supplies an `out` error message parameter. The element to validate. An error message. `true`. Override to return another value. Creates a new . The format key. The predicate. Creates a new . The format key. The predicate. Validates an instance against a format and provides an error message. The element to validate. `true`. Override to return another value. Handles `items`. The JSON name of the keyword. The collection of schemas for the "schema array" form. Creates a new . The collection of schemas for the "schema array" form. Using the `params` constructor to build an array-form `items` keyword with a single schema will confuse the compiler. To achieve this, you'll need to explicitly specify the array. Creates a new . The collection of schemas for the "schema array" form. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `properties`. The JSON name of the keyword. The property schemas. Creates a new . The property schemas. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles the `propertyDependencies` keyword. The JSON name of the keyword. Gets the collection of dependencies. Creates a new instance of the . The collection of dependencies. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Represents a single entry in the `propertyDependencies` keyword. Gets the collection of value-dependent schemas for this property. Creates a new instance of . The collection of value-dependent schemas for this property Creates a new instance of . The collection of value-dependent schemas for this property Indicates whether the current object is equal to another object of the same type. An object to compare with this object. true if the current object is equal to the other parameter; otherwise, false. Determines whether the specified object is equal to the current object. The object to compare with the current object. true if the specified object is equal to the current object; otherwise, false. Serves as the default hash function. A hash code for the current object. Implicitly converts a keyed collection of to a property dependency. Implicitly converts a keyed collection of to a property dependency. Implicitly converts a keyed collection of to a property dependency. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `propertyNames`. The JSON name of the keyword. The schema to match. Creates a new . The schema to match. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `readOnly`. The JSON name of the keyword. Whether the instance is read-only. Creates a new . Whether the instance is read-only. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `$recursiveAnchor`. The JSON name of the keyword. Gets the value. Creates a new . The value. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `$recursiveRef`. The JSON name of the keyword. The URI reference. Creates a new . The URI. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `$ref`. The JSON name of the keyword. The URI reference. Creates a new . The URI reference. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Thrown when a reference cannot be resolved. Gets the base URI of the reference. Gets an anchor, if one exists. If this property is null while is true, then the failure was with a `$recursiveRef`. Gets whether the anchor (if one exists) is dynamic. If this property is true while is null, then the failure was with a `$recursiveRef`. Gets a JSON Pointer, if one exists. Creates a new instance. The base URI of the reference. (optional) - The anchor. Default is null. (optional) - Whether the reference was dynamic. Creates a new instance. The base URI of the reference. The JSON Pointer location. A regular-expression-based format. Creates a new . The format key. The regular expression. Creates a new . The format key. The regular expression. Validates an instance against a format and provides an error message. The node to validate. An error message. `true` if the value is a match for the regular expression; `false` otherwise. Handles `requires`. The JSON name of the keyword. The required properties. Creates a new . The required properties. Creates a new . The required properties. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Describes the set of constraints a schema object will apply to any instance. This represents any work that can be performed as part of static analysis of the schema. Gets the schema's base URI. Gets the base location within the instance that is being evaluated. Gets the location relative to within the instance that is being evaluated. Gets the set of keyword constraints. Defines a method to identify relative instance locations at evaluation time. When the relative instance location cannot be determined through static analysis, e.g. `additionalProperties`, this function can be used to dynamically provide JSON Pointers to those locations at evaluation time. Gets the local . Builds an evaluation object. The local instance being evaluated. The full instance location. The evaluation path. Any evaluation options. This will be passed via the evaluation context. A schema evaluation object. Represents any evaluation-time work (i.e. any work that requires the instance) for schemas. Gets the local instance. Gets the relative instance location. (The base location can be found in . Gets the local evaluation results. Processes the evaluation. The evaluation context. Handles `$schema`. The JSON name of the keyword. The meta-schema ID. Creates a new . The meta-schema ID. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Indicates the keyword as it appears in a schema. The keyword name. Creates a new . Manages which keywords are known by the system. Because the deserialization process relies on keywords being registered, this class cannot be an instance class like the other registries in this library. Therefore keywords are registered for all schemas. Registers a new keyword type. The keyword type. Registers a new keyword type. The keyword type. JsonTypeInfo for the keyword type Unregisters a keyword type. The keyword type. Gets the implementation for a given keyword name. The keyword name. The keyword type, if registered; otherwise null. Registers a null-value for a keyword. This is important for keywords that accept null, like `default` and `const`. Without this step, the serializer will skip keywords that have nulls. Gets the keyword string. The keyword type. The keyword string. is null. The keyword does not carry the . Gets the keyword string. The keyword. The keyword string. is null. The keyword does not carry the . Gets the keyword priority. The keyword. The priority. Determines if a keyword is declared by a given version of the JSON Schema specification. The keyword. The queried version. true if the keyword is supported by the version; false otherwise Thrown if is null. Thrown if the keyword has no declarations. Gets the specification versions supported by a keyword. The keyword. The specification versions as a single flags value. Thrown if is null. Thrown if the keyword has no declarations. A registry for schemas. The global registry. Gets or sets a method to enable automatic download of schemas by `$id` URI. Registers a schema by URI. The schema. Registers a schema by URI. The URI ID of the schema.. The schema. Registers a new meta-schema URI and establishes a new recognized value for the enumeration. The meta-schema URI. The value of the enum to associate with the meta-schema. **WARNING** There be dragons here. Use only if you know what you're doing. Gets a schema by URI ID and/or anchor. The URI ID. The schema, if registered in either this or the global registry;4 otherwise null. Sets base URI and spec version for a schema. Generally not needed as this happens automatically on registration and evaluation. The base URI for the schema. The schema Indicates which JSON Schema specification versions are supported by a keyword. The supported version. Creates a new . The supported version. Enumerates the schema value types. This is a flags-enabled enumeration, so values that support multiple types can be bit-wise OR'd `|` together. Indicates the value should be an object. Indicates the value should be an array. Indicates the value should be a boolean. Indicates the value should be a string. Indicates the value should be a number. Indicates the value should be an integer. Indicates the value should be null. Identifies a to use when deserializing a type. Identifies a to use when deserializing a type. The type declaring the schema. The property or field name for the schema. This member must be public and static. Thrown when the member cannot be found or is not public and static. Adds schema validation for types decorated with the . Specifies the output format. Specifies whether the `format` keyword should be required to provide validation results. Default is false, which just produces annotations for drafts 2019-09 and prior or follows the behavior set forth by the format-annotation vocabulary requirement in the `$vocabulary` keyword in a meta-schema declaring draft 2020-12. Adds an explicit type/schema mapping for types external types which cannot be decorated with . When overridden in a derived class, determines whether the converter instance can convert the specified object type. The type of the object to check whether it can be converted by this converter instance. if the instance can convert the specified object type; otherwise, . Creates a converter for a specified type. The type handled by the converter. The serialization options to use. An instance of a where `T` is compatible with . If is returned, a will be thrown. Enumerates the supported JSON Schema specification versions. The specification version to use should be determined by the collection of keywords. JSON Schema Draft 6. JSON Schema Draft 7. JSON Schema Draft 2019-09. JSON Schema Draft 2020-12. JSON Schema Draft Next. All versions. Handles `then`. The JSON name of the keyword. The schema to match. Creates a new . The schema to match. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `title`. The JSON name of the keyword. The title. Creates a new . The title. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `type`. The JSON name of the keyword. The expected type. Creates a new . The expected type. Creates a new . The expected types. Creates a new . The expected types. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `unevaluatedItems`. The JSON name of the keyword. The schema by which to evaluate unevaluated items. Creates a new . The schema by which to evaluate unevaluated items. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `unevaluatedProperties`. The JSON name of the keyword. The schema by which to evaluate additional properties. Creates a new . Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Handles `uniqueItems`. The JSON name of the keyword. Whether items should be unique. Creates a new . Whether items should be unique. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Represents an unknown format. Creates a new instance. The key. Validates an instance against a format and provides an error message. The node to validate. An error message. `true`. Override to return another value. Handles unrecognized keywords. The name or key of the keyword. The value of the keyword. Creates a new . The name of the keyword. The value of the keyword. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Provides extensions on the type. Gets the Uri to the parent object. The of a resource, for which the parent Uri should be retrieved. The parent . is null. has no parent, it refers to a root resource. Declares the vocabularies of the supported drafts. The Draft 2019-09 Core vocabulary ID. The Draft 2019-09 Applicator vocabulary ID. The Draft 2019-09 Validation vocabulary ID. The Draft 2019-09 Metadata vocabulary ID. The Draft 2019-09 Format vocabulary ID. The Draft 2019-09 Content vocabulary ID. The Draft 2019-09 Core vocabulary. The Draft 2019-09 Applicator vocabulary. The Draft 2019-09 Validation vocabulary. The Draft 2019-09 Metadata vocabulary. The Draft 2019-09 Format vocabulary. The Draft 2019-09 Content vocabulary. The Draft 2020-12 Core vocabulary ID. The Draft 2020-12 Unevaluated vocabulary ID. The Draft 2020-12 Applicator vocabulary ID. The Draft 2020-12 Validation vocabulary ID. The Draft 2020-12 Metadata vocabulary ID. The Draft 2020-12 Format vocabulary ID. The Draft 2020-12 Format vocabulary ID. The Draft 2020-12 Content vocabulary ID. The Draft 2020-12 Core vocabulary. The Draft 2020-12 Unevaluated vocabulary. The Draft 2020-12 Applicator vocabulary. The Draft 2020-12 Validation vocabulary. The Draft 2020-12 Metadata vocabulary. The Draft 2020-12 Format-Annotation vocabulary. The Draft 2020-12 Format-Assertion vocabulary. The Draft 2020-12 Content vocabulary. The Draft 2020-12 Core vocabulary ID. The Draft 2020-12 Unevaluated vocabulary ID. The Draft 2020-12 Applicator vocabulary ID. The Draft 2020-12 Validation vocabulary ID. The Draft 2020-12 Metadata vocabulary ID. The Draft 2020-12 Format vocabulary ID. The Draft 2020-12 Format vocabulary ID. The Draft 2020-12 Content vocabulary ID. The Draft 2020-12 Core vocabulary. The Draft 2020-12 Unevaluated vocabulary. The Draft 2020-12 Applicator vocabulary. The Draft 2020-12 Validation vocabulary. The Draft 2020-12 Metadata vocabulary. The Draft 2020-12 Format-Annotation vocabulary. The Draft 2020-12 Format-Assertion vocabulary. The Draft 2020-12 Content vocabulary. Represents a Draft 2019-09 and later vocabulary. The vocabulary ID. The types of the keywords that are defined by the vocabulary. Creates a new . The vocabulary ID. The types of the keywords that are defined by the vocabulary. Creates a new . The vocabulary ID. The types of the keywords that are defined by the vocabulary. Indicates the ID of the vocabulary a keyword belongs to. The vocabulary ID. Creates a new . The vocabulary ID. Handles `$vocabulary`. The JSON name of the keyword. The collection of vocabulary requirements. Creates a new . The collection of vocabulary requirements. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. A registry for vocabularies. Registers a vocabulary. This does not register the vocabulary's keywords. This must be done separately. Removes a vocabulary from the registry. Indicates whether a vocabulary is known by URI ID and/or anchor. The URI ID. `true`, if registered in either this or the global registry; `false` otherwise. Retrieves the vocabulary associated with the URI ID, if known. The URI ID. The vocabulary, if known; otherwise null. Handles `writeOnly`. The JSON name of the keyword. Whether the instance is read-only. Creates a new . Whether the instance is read-only. Builds a constraint object for a keyword. The for the schema object that houses this keyword. The set of other s that have been processed prior to this one. Will contain the constraints for keyword dependencies. The . A constraint object. JSON converter for . Reads and converts the JSON to type . The reader. The type to convert. An object that specifies serialization options to use. The converted value. Writes a specified value as JSON. The writer to write to. The value to convert to JSON. An object that specifies serialization options to use. Specifies that null is allowed as an input even if the corresponding type disallows it. Indicates that the specified method parameter expects a constant. This can be used to inform tooling that a constant should be used as an argument for the annotated parameter. Indicates the minimum bound of the expected constant, inclusive. Indicates the maximum bound of the expected constant, inclusive. Specifies that null is disallowed as an input even if the corresponding type allows it. Applied to a method that will never return under any circumstance. Specifies that the method will not return if the associated Boolean parameter is passed the specified value. Initializes the attribute with the specified parameter value. The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to the associated parameter matches this value. Gets the condition parameter value. Indicates that an API is experimental and it may change in the future. This attribute allows call sites to be flagged with a diagnostic that indicates that an experimental feature is used. Authors can use this attribute to ship preview features in their assemblies. Initializes a new instance of the class, specifying the ID that the compiler will use when reporting a use of the API the attribute applies to. The ID that the compiler will use when reporting a use of the API the attribute applies to. Gets the ID that the compiler will use when reporting a use of the API the attribute applies to. The unique diagnostic ID. The diagnostic ID is shown in build output for warnings and errors. This property represents the unique ID that can be used to suppress the warnings or errors, if needed. Gets or sets the URL for corresponding documentation. The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID. The format string that represents a URL to corresponding documentation. An example format string is https://contoso.com/obsoletion-warnings/{0}. Specifies that an output may be null even if the corresponding type disallows it. Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. Initializes the attribute with the specified return value condition. The return value condition. If the method returns this value, the associated parameter may be null. Gets the return value condition. Specifies that the method or property will ensure that the listed field and property members have not-null values. Initializes the attribute with a field or property member. The field or property member that is promised to be not-null. Initializes the attribute with the list of field and property members. The list of field and property members that are promised to be not-null. Gets field or property member names. Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition. Initializes the attribute with the specified return value condition and a field or property member. The return value condition. If the method returns this value, the associated parameter will not be null. The field or property member that is promised to be not-null. Initializes the attribute with the specified return value condition and list of field and property members. The return value condition. If the method returns this value, the associated parameter will not be null. The list of field and property members that are promised to be not-null. Gets the return value condition. Gets field or property member names. Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. Specifies that the output will be non-null if the named parameter is non-null. Initializes the attribute with the associated parameter name. The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. Gets the associated parameter name. Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. Initializes the attribute with the specified return value condition. The return value condition. If the method returns this value, the associated parameter will not be null. Gets the return value condition. Specifies that this constructor sets all required members for the current type, and callers do not need to set any required members themselves. Specifies the syntax used in a string. Initializes the with the identifier of the syntax used. The syntax identifier. Initializes the with the identifier of the syntax used. The syntax identifier. Optional arguments associated with the specific syntax employed. Gets the identifier of the syntax used. Optional arguments associated with the specific syntax employed. The syntax identifier for strings containing composite formats for string formatting. The syntax identifier for strings containing date format specifiers. The syntax identifier for strings containing date and time format specifiers. The syntax identifier for strings containing format specifiers. The syntax identifier for strings containing format specifiers. The syntax identifier for strings containing JavaScript Object Notation (JSON). The syntax identifier for strings containing numeric format specifiers. The syntax identifier for strings containing regular expressions. The syntax identifier for strings containing time format specifiers. The syntax identifier for strings containing format specifiers. The syntax identifier for strings containing URIs. The syntax identifier for strings containing XML. Used to indicate a byref escapes and is not scoped. There are several cases where the C# compiler treats a as implicitly - where the compiler does not allow the to escape the method. For example: for instance methods. parameters that refer to types. parameters. This attribute is used in those instances where the should be allowed to escape. Applying this attribute, in any form, has impact on consumers of the applicable API. It is necessary for API authors to understand the lifetime implications of applying this attribute and how it may impact their users. Indicates that certain members on a specified are accessed dynamically, for example through . This allows tools to understand which members are being accessed during the execution of a program. This attribute is valid on members whose type is or . When this attribute is applied to a location of type , the assumption is that the string represents a fully qualified type name. When this attribute is applied to a class, interface, or struct, the members specified can be accessed dynamically on instances returned from calling on instances of that class, interface, or struct. If the attribute is applied to a method it's treated as a special case and it implies the attribute should be applied to the "this" parameter of the method. As such the attribute should only be used on instance methods of types assignable to System.Type (or string, but no methods will use it there). Initializes a new instance of the class with the specified member types. The types of members dynamically accessed. Gets the which specifies the type of members dynamically accessed. Specifies the types of members that are dynamically accessed. This enumeration has a attribute that allows a bitwise combination of its member values. Specifies no members. Specifies the default, parameterless public constructor. Specifies all public constructors. Specifies all non-public constructors. Specifies all public methods. Specifies all non-public methods. Specifies all public fields. Specifies all non-public fields. Specifies all public nested types. Specifies all non-public nested types. Specifies all public properties. Specifies all non-public properties. Specifies all public events. Specifies all non-public events. Specifies all interfaces implemented by the type. Specifies all members. States a dependency that one member has on another. This can be used to inform tooling of a dependency that is otherwise not evident purely from metadata and IL, for example a member relied on via reflection. Initializes a new instance of the class with the specified signature of a member on the same type as the consumer. The signature of the member depended on. Initializes a new instance of the class with the specified signature of a member on a . The signature of the member depended on. The containing . Initializes a new instance of the class with the specified signature of a member on a type in an assembly. The signature of the member depended on. The full name of the type containing the specified member. The assembly name of the type containing the specified member. Initializes a new instance of the class with the specified types of members on a . The types of members depended on. The containing the specified members. Initializes a new instance of the class with the specified types of members on a type in an assembly. The types of members depended on. The full name of the type containing the specified members. The assembly name of the type containing the specified members. Gets the signature of the member depended on. Either must be a valid string or must not equal , but not both. Gets the which specifies the type of members depended on. Either must be a valid string or must not equal , but not both. Gets the containing the specified member. If neither nor are specified, the type of the consumer is assumed. Gets the full name of the type containing the specified member. If neither nor are specified, the type of the consumer is assumed. Gets the assembly name of the specified type. is only valid when is specified. Gets or sets the condition in which the dependency is applicable, e.g. "DEBUG". Indicates that the specified public static boolean get-only property guards access to the specified feature. Analyzers can use this to prevent warnings on calls to code that is annotated as requiring that feature, when the callsite is guarded by a call to the property. Initializes a new instance of the class with the specified feature type. The type that represents the feature guarded by the property. The type that represents the feature guarded by the property. Indicates that the specified public static boolean get-only property corresponds to the feature switch specified by name. IL rewriters and compilers can use this to substitute the return value of the specified property with the value of the feature switch. Initializes a new instance of the class with the specified feature switch name. The name of the feature switch that provides the value for the specified property. The name of the feature switch that provides the value for the specified property. Indicates that the specified member requires assembly files to be on disk. Initializes a new instance of the class. Initializes a new instance of the class. A message that contains information about the need for assembly files to be on disk. Gets an optional message that contains information about the need for assembly files to be on disk. Gets or sets an optional URL that contains more information about the member, why it requires assembly files to be on disk, and what options a consumer has to deal with it. Indicates that the specified method requires the ability to generate new code at runtime, for example through . This allows tools to understand which methods are unsafe to call when compiling ahead of time. Initializes a new instance of the class with the specified message. A message that contains information about the usage of dynamic code. Gets a message that contains information about the usage of dynamic code. Gets or sets an optional URL that contains more information about the method, why it requires dynamic code, and what options a consumer has to deal with it. Indicates that the specified method requires dynamic access to code that is not referenced statically, for example through . This allows tools to understand which methods are unsafe to call when removing unreferenced code from an application. Initializes a new instance of the class with the specified message. A message that contains information about the usage of unreferenced code. Gets a message that contains information about the usage of unreferenced code. Gets or sets an optional URL that contains more information about the method, why it requires unreferenced code, and what options a consumer has to deal with it. Suppresses reporting of a specific rule violation, allowing multiple suppressions on a single code artifact. is different than in that it doesn't have a . So it is always preserved in the compiled assembly. Initializes a new instance of the class, specifying the category of the tool and the identifier for an analysis rule. The category for the attribute. The identifier of the analysis rule the attribute applies to. Gets the category identifying the classification of the attribute. The property describes the tool or tool analysis category for which a message suppression attribute applies. Gets the identifier of the analysis tool rule to be suppressed. Concatenated together, the and properties form a unique check identifier. Gets or sets the scope of the code that is relevant for the attribute. The Scope property is an optional argument that specifies the metadata scope for which the attribute is relevant. Gets or sets a fully qualified path that represents the target of the attribute. The property is an optional argument identifying the analysis target of the attribute. An example value is "System.IO.Stream.ctor():System.Void". Because it is fully qualified, it can be long, particularly for targets such as parameters. The analysis tool user interface should be capable of automatically formatting the parameter. Gets or sets an optional argument expanding on exclusion criteria. The property is an optional argument that specifies additional exclusion where the literal metadata target is not sufficiently precise. For example, the cannot be applied within a method, and it may be desirable to suppress a violation against a statement in the method that will give a rule violation, but not against all statements in the method. Gets or sets the justification for suppressing the code analysis message. If a .NET Debugger is attached which supports the Debugger.BreakForUserUnhandledException(Exception) API, this attribute will prevent the debugger from breaking on user-unhandled exceptions when the exception is caught by a method with this attribute, unless BreakForUserUnhandledException is called. Types and Methods attributed with StackTraceHidden will be omitted from the stack trace text shown in StackTrace.ToString() and Exception.StackTrace Initializes a new instance of the class. Represent a type can be used to index a collection either from the start or the end. Index is used by the C# compiler to support the new index syntax int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ; int lastElement = someArray[^1]; // lastElement = 5 Construct an Index using a value and indicating if the index is from the start or from the end. The index value. it has to be zero or positive number. Indicating if the index is from the start or from the end. If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element. Create an Index pointing at first element. Create an Index pointing at beyond last element. Create an Index from the start at the position indicated by the value. The index value from the start. Create an Index from the end at the position indicated by the value. The index value from the end. Returns the index value. Indicates whether the index is from the start or the end. Calculate the offset from the start using the giving collection length. The length of the collection that the Index will be used with. length has to be a positive value For performance reason, we don't validate the input length parameter and the returned offset value against negative values. we don't validate either the returned offset is greater than the input length. It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and then used to index a collection will get out of range exception which will be same affect as the validation. Indicates whether the current Index object is equal to another object of the same type. An object to compare with this object Indicates whether the current Index object is equal to another Index object. An object to compare with this object Returns the hash code for this instance. Converts integer number to an Index. Converts the value of the current Index object to its equivalent string representation. Represent a range has start and end indexes. Range is used by the C# compiler to support the range syntax. int[] someArray = new int[5] { 1, 2, 3, 4, 5 }; int[] subArray1 = someArray[0..2]; // { 1, 2 } int[] subArray2 = someArray[1..^0]; // { 2, 3, 4, 5 } Represent the inclusive start index of the Range. Represent the exclusive end index of the Range. Construct a Range object using the start and end indexes. Represent the inclusive start index of the range. Represent the exclusive end index of the range. Indicates whether the current Range object is equal to another object of the same type. An object to compare with this object Indicates whether the current Range object is equal to another Range object. An object to compare with this object Returns the hash code for this instance. Converts the value of the current Range object to its equivalent string representation. Create a Range object starting from start index to the end of the collection. Create a Range object starting from first element in the collection to the end Index. Create a Range object starting from first element to the end. Calculate the start offset and length of range object using a collection length. The length of the collection that the range will be used with. length has to be a positive value. For performance reason, we don't validate the input length parameter against negative values. It is expected Range will be used with collections which always have non negative length/count. We validate the range is inside the length scope though. An attribute that allows parameters to receive the expression of other parameters. Initializes a new instance of the class. The condition parameter value. Gets the parameter name the expression is retrieved from. Initialize the attribute to refer to the method on the type. The type of the builder to use to construct the collection. The name of the method on the builder to use to construct the collection. must refer to a static method that accepts a single parameter of type and returns an instance of the collection being built containing a copy of the data from that span. In future releases of .NET, additional patterns may be supported. Gets the type of the builder to use to construct the collection. Gets the name of the method on the builder to use to construct the collection. This should match the metadata name of the target method. For example, this might be ".ctor" if targeting the type's constructor. Indicates that compiler support for a particular feature is required for the location where this attribute is applied. Creates a new instance of the type. The name of the feature to indicate. The name of the compiler feature. If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand . The used for the ref structs C# feature. The used for the required members C# feature. Indicates which arguments to a method involving an interpolated string handler should be passed to that handler. Initializes a new instance of the class. The name of the argument that should be passed to the handler. may be used as the name of the receiver in an instance method. Initializes a new instance of the class. The names of the arguments that should be passed to the handler. may be used as the name of the receiver in an instance method. Gets the names of the arguments that should be passed to the handler. may be used as the name of the receiver in an instance method. Indicates the attributed type is to be used as an interpolated string handler. Reserved to be used by the compiler for tracking metadata. This class should not be used by developers in source code. Used to indicate to the compiler that a method should be called in its containing module's initializer. When one or more valid methods with this attribute are found in a compilation, the compiler will emit a module initializer which calls each of the attributed methods. Certain requirements are imposed on any method targeted with this attribute: - The method must be `static`. - The method must be an ordinary member method, as opposed to a property accessor, constructor, local function, etc. - The method must be parameterless. - The method must return `void`. - The method must not be generic or be contained in a generic type. - The method's effective accessibility must be `internal` or `public`. The specification for module initializers in the .NET runtime can be found here: https://github.com/dotnet/runtime/blob/main/docs/design/specs/Ecma-335-Augments.md#module-initializer Specifies the priority of a member in overload resolution. When unspecified, the default priority is 0. Initializes a new instance of the class. The priority of the attributed member. Higher numbers are prioritized, lower numbers are deprioritized. 0 is the default if no attribute is present. The priority of the member. Indicates that a method will allow a variable number of arguments in its invocation. Specifies that a type has required members or that a member is required. Reserved for use by a compiler for tracking metadata. This attribute should not be used by developers in source code. Used to indicate to the compiler that the .locals init flag should not be set in method headers. Disables the built-in runtime managed/unmanaged marshalling subsystem for P/Invokes, Delegate types, and unmanaged function pointer invocations. The built-in marshalling subsystem has some behaviors that cannot be changed due to backward-compatibility requirements. This attribute allows disabling the built-in subsystem and instead uses the following rules for P/Invokes, Delegates, and unmanaged function pointer invocations: - All value types that do not contain reference type fields recursively (unmanaged in C#) are blittable - Value types that recursively have any fields that have [StructLayout(LayoutKind.Auto)] are disallowed from interop. - All reference types are disallowed from usage in interop scenarios. - SetLastError support in P/Invokes is disabled. - varargs support is disabled. - LCIDConversionAttribute support is disabled. Provides access to an inaccessible member of a specific type. This attribute may be applied to an extern static method. The implementation of the extern static method annotated with this attribute will be provided by the runtime based on the information in the attribute and the signature of the method that the attribute is applied to. The runtime will try to find the matching method or field and forward the call to it. If the matching method or field is not found, the body of the extern method will throw or . Only the specific type defined will be examined for inaccessible members. The type hierarchy is not walked looking for a match. For , , , and , the type of the first argument of the annotated extern method identifies the owning type. The value of the first argument is treated as this pointer for instance fields and methods. The first argument must be passed as ref for instance fields and methods on structs. The value of the first argument is not used by the implementation for static fields and methods. Return type is considered for the signature match. modreqs and modopts are initially not considered for the signature match. However, if an ambiguity exists ignoring modreqs and modopts, a precise match is attempted. If an ambiguity still exists is thrown. By default, the attributed method's name dictates the name of the method/field. This can cause confusion in some cases since language abstractions, like C# local functions, generate mangled IL names. The solution to this is to use the nameof mechanism and define the property. public void Method(Class c) { PrivateMethod(c); [UnsafeAccessor(UnsafeAccessorKind.Method, Name = nameof(PrivateMethod))] extern static void PrivateMethod(Class c); } Instantiates an providing access to a member of kind . The kind of the target to which access is provided. Gets the kind of member to which access is provided. Gets or sets the name of the member to which access is provided. The name defaults to the annotated method name if not specified. The name must be unset/null for . Specifies the kind of target to which an is providing access. Provide access to a constructor. Provide access to a method. Provide access to a static method. Provide access to a field. Provide access to a static field. Initializes a new instance of the class. Initializes a new instance of the class with the specified message. An optional message associated with this attribute instance. Returns the optional message associated with this attribute instance. Returns the optional URL associated with this attribute instance. Marks APIs that were obsoleted in a given operating system version. Primarily used by OS bindings to indicate APIs that should not be used anymore. Records the operating system (and minimum version) that supports an API. Multiple attributes can be applied to indicate support on multiple operating systems. Callers can apply a or use guards to prevent calls to APIs on unsupported operating systems. A given platform should only be specified once. Annotates a custom guard field, property or method with a supported platform name and optional version. Multiple attributes can be applied to indicate guard for multiple supported platforms. Callers can apply a to a field, property or method and use that field, property or method in a conditional or assert statements in order to safely call platform specific APIs. The type of the field or property should be boolean, the method return type should be boolean in order to be used as platform guard. Records the platform that the project targeted. Marks APIs that were removed in a given operating system version. Primarily used by OS bindings to indicate APIs that are only available in earlier versions. Annotates the custom guard field, property or method with an unsupported platform name and optional version. Multiple attributes can be applied to indicate guard for multiple unsupported platforms. Callers can apply a to a field, property or method and use that field, property or method in a conditional or assert statements as a guard to safely call APIs unsupported on those platforms. The type of the field or property should be boolean, the method return type should be boolean in order to be used as platform guard. Indicates that the instance's storage is sequentially replicated "length" times. This attribute can be used to annotate a type with a single field. The runtime will replicate that field in the actual type layout as many times as is specified. Here's an example of how an inline array type with 8 values can be declared: [InlineArray(8)] struct Float8InlineArray { private float _value; } Creates a new instance with the specified length. The number of sequential fields to replicate in the inline array type. Gets the number of sequential fields to replicate in the inline array type. An attribute used to indicate a GC transition should be skipped when making an unmanaged function call. Example of a valid use case. The Win32 `GetTickCount()` function is a small performance related function that reads some global memory and returns the value. In this case, the GC transition overhead is significantly more than the memory read. using System; using System.Runtime.InteropServices; class Program { [DllImport("Kernel32")] [SuppressGCTransition] static extern int GetTickCount(); static void Main() { Console.WriteLine($"{GetTickCount()}"); } } This attribute is ignored if applied to a method without the . Forgoing this transition can yield benefits when the cost of the transition is more than the execution time of the unmanaged function. However, avoiding this transition removes some of the guarantees the runtime provides through a normal P/Invoke. When exiting the managed runtime to enter an unmanaged function the GC must transition from Cooperative mode into Preemptive mode. Full details on these modes can be found at https://github.com/dotnet/runtime/blob/main/docs/coding-guidelines/clr-code-guide.md#2.1.8. Suppressing the GC transition is an advanced scenario and should not be done without fully understanding potential consequences. One of these consequences is an impact to Mixed-mode debugging (https://docs.microsoft.com/visualstudio/debugger/how-to-debug-in-mixed-mode). During Mixed-mode debugging, it is not possible to step into or set breakpoints in a P/Invoke that has been marked with this attribute. A workaround is to switch to native debugging and set a breakpoint in the native function. In general, usage of this attribute is not recommended if debugging the P/Invoke is important, for example stepping through the native code or diagnosing an exception thrown from the native code. The runtime may load the native library for method marked with this attribute in advance before the method is called for the first time. Usage of this attribute is not recommended for platform neutral libraries with conditional platform specific code. The P/Invoke method that this attribute is applied to must have all of the following properties: * Native function always executes for a trivial amount of time (less than 1 microsecond). * Native function does not perform a blocking syscall (e.g. any type of I/O). * Native function does not call back into the runtime (e.g. Reverse P/Invoke). * Native function does not throw exceptions. * Native function does not manipulate locks or other concurrency primitives. Consequences of invalid uses of this attribute: * GC starvation. * Immediate runtime termination. * Data corruption. Any method marked with can be directly called from native code. The function token can be loaded to a local variable using the address-of operator in C# and passed as a callback to a native method. Methods marked with this attribute have the following restrictions: * Method must be marked "static". * Must not be called from managed code. * Must only have blittable arguments. Optional. If omitted, the runtime will use the default platform calling convention. Supplied types must be from the official "System.Runtime.CompilerServices" namespace and be of the form "CallConvXXX". Optional. If omitted, no named export is emitted during compilation. Specifies that the P/Invoke marked with this attribute should be linked in as a WASM import. See https://webassembly.github.io/spec/core/syntax/modules.html#imports. Instance constructor.