From 4d39afbe0a50541e7907dfb4f0102bef3b87ecb9 Mon Sep 17 00:00:00 2001 From: punker76 Date: Sun, 29 Oct 2023 00:31:14 +0200 Subject: [PATCH 1/3] ci: update cake and cake script --- .config/dotnet-tools.json | 2 +- .editorconfig | 5 +- .../XAMLStyler.json => Settings.XAMLStyler | 4 +- XamlStyler/CommandLine.dll | Bin 58368 -> 0 bytes XamlStyler/CommandLine.xml | 1390 --- XamlStyler/Irony.dll | Bin 142848 -> 0 bytes XamlStyler/Irony.xml | 753 -- XamlStyler/Newtonsoft.Json.dll | Bin 522752 -> 0 bytes XamlStyler/Newtonsoft.Json.xml | 9112 ----------------- XamlStyler/Options/DefaultSettings.json | 41 - XamlStyler/Settings.XamlStyler | 41 - XamlStyler/XamlStyler.Core.dll | Bin 75776 -> 0 bytes XamlStyler/format_all_xaml.cmd | 2 - XamlStyler/xstyler.exe | Bin 16896 -> 0 bytes XamlStyler/xstyler.exe.config | 6 - appveyor.yml | 11 +- build.cake | 474 +- 17 files changed, 301 insertions(+), 11540 deletions(-) rename XamlStyler/Options/XAMLStyler.json => Settings.XAMLStyler (95%) delete mode 100644 XamlStyler/CommandLine.dll delete mode 100644 XamlStyler/CommandLine.xml delete mode 100644 XamlStyler/Irony.dll delete mode 100644 XamlStyler/Irony.xml delete mode 100644 XamlStyler/Newtonsoft.Json.dll delete mode 100644 XamlStyler/Newtonsoft.Json.xml delete mode 100644 XamlStyler/Options/DefaultSettings.json delete mode 100644 XamlStyler/Settings.XamlStyler delete mode 100644 XamlStyler/XamlStyler.Core.dll delete mode 100644 XamlStyler/format_all_xaml.cmd delete mode 100644 XamlStyler/xstyler.exe delete mode 100644 XamlStyler/xstyler.exe.config diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 4903ba5..8f3a438 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "cake.tool": { - "version": "1.3.0", + "version": "3.1.0", "commands": [ "dotnet-cake" ] diff --git a/.editorconfig b/.editorconfig index 7979ac9..42feba3 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,7 +9,7 @@ end_of_line = CRLF indent_style = space indent_size = 4 -[*.{md,yml}] +[*.{md,yml,json}] indent_style = space indent_size = 2 @@ -17,3 +17,6 @@ indent_size = 2 [*.cs] # WPF0011: Containing type should be used as registered owner. dotnet_diagnostic.WPF0011.severity = error + +# WPF0132: Use PART prefix. +dotnet_diagnostic.WPF0132.severity = suggestion \ No newline at end of file diff --git a/XamlStyler/Options/XAMLStyler.json b/Settings.XAMLStyler similarity index 95% rename from XamlStyler/Options/XAMLStyler.json rename to Settings.XAMLStyler index 34a04f7..63ce08e 100644 --- a/XamlStyler/Options/XAMLStyler.json +++ b/Settings.XAMLStyler @@ -2,9 +2,9 @@ "IndentSize": 4, "AttributesTolerance": 2, "KeepFirstAttributeOnSameLine": true, - "MaxAttributeCharatersPerLine": 0, + "MaxAttributeCharactersPerLine": 0, "MaxAttributesPerLine": 1, - "NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, MultiTrigger, DataTrigger, MultiDataTrigger, Condition, Setter, SolidColorBrush", + "NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, MultiTrigger, DataTrigger, MultiDataTrigger, Condition, Setter, SolidColorBrush, Pen", "SeparateByGroups": false, "AttributeIndentation": 0, "AttributeIndentationStyle": 1, diff --git a/XamlStyler/CommandLine.dll b/XamlStyler/CommandLine.dll deleted file mode 100644 index d5497ef2957ad975b8f5030a14285901e6dceac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58368 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 eVN8LaKmU85Iqidkx&xe0sIPgEc>C)Q( diff --git a/XamlStyler/CommandLine.xml b/XamlStyler/CommandLine.xml deleted file mode 100644 index 4620bee..0000000 --- a/XamlStyler/CommandLine.xml +++ /dev/null @@ -1,1390 +0,0 @@ - - - - CommandLine - - - - - Provides base properties for creating an attribute, used to define rules for command line parsing. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - Validating and . - - Short name of the option. - Long name of the option. - - - - Initializes a new instance of the class. Validating - and . This constructor accepts a as short name. - - Short name of the option. - Long name of the option. - - - - Gets a short name of this command line option. You can use only one character. - - - - - Gets long name of this command line option. This name is usually a single english word. - - - - - Gets or sets the option's mutually exclusive set. - - - - - Gets or sets a value indicating whether a command line option is required. - - - - - Gets or sets mapped property default value. - - - - - Gets or sets mapped property meta value. - - - - - Gets or sets a short description of this command line option. Usually a sentence summary. - - - - - Models an option specification. - - - - - Initializes a new instance of the class. - The default long name will be inferred from target property. - - - - - Initializes a new instance of the class. - - The short name of the option.. - - - - Initializes a new instance of the class. - - The long name of the option. - - - - Initializes a new instance of the class. - - The short name of the option. - The long name of the option or null if not used. - - - - Helper factory method for testing purpose. - - An instance. - - - - Models an option that can accept multiple values as separated arguments. - - - - - Initializes a new instance of the class. - The default long name will be inferred from target property. - - - - - Initializes a new instance of the class. - - The short name of the option. - - - - Initializes a new instance of the class. - - The long name of the option. - - - - Initializes a new instance of the class. - - The short name of the option. - The long name of the option or null if not used. - - - - Indicates the instance method that must be invoked when it becomes necessary show your help screen. - The method signature is an instance method with no parameters and - return value. - - - - - Initializes a new instance of the class. - Although it is possible, it is strongly discouraged redefine the long name for this option - not to disorient your users. It is also recommended not to define a short one. - - - - - Initializes a new instance of the class - with the specified short name. Use parameter less constructor instead. - - The short name of the option. - - It's highly not recommended change the way users invoke help. It may create confusion. - - - - - Initializes a new instance of the class - with the specified long name. Use parameter less constructor instead. - - The long name of the option or null if not used. - - It's highly not recommended change the way users invoke help. It may create confusion. - - - - - Initializes a new instance of the class. - Allows you to define short and long option names. - - The short name of the option. - The long name of the option or null if not used. - - It's highly not recommended change the way users invoke help. It may create confusion. - - - - - Returns always false for this kind of option. - This behaviour can't be changed by design; if you try set - an will be thrown. - - - - - Models an option that can accept multiple values. - Must be applied to a field compatible with an interface - of instances. - - - - - Initializes a new instance of the class. - The default long name will be inferred from target property. - - - - - Initializes a new instance of the class. - - The short name of the option. - - - - Initializes a new instance of the class. - - The long name of the option or null if not used. - - - - Initializes a new instance of the class. - - The short name of the option. - The long name of the option or null if not used. - - - - Initializes a new instance of the class. - - The short name of the option or null if not used. - The long name of the option or null if not used. - Values separator character. - - - - Gets or sets the values separator character. - - - - - Indicates that the property can receive an instance of type . - - - - - Models a list of command line arguments that are not options. - Must be applied to a field compatible with an interface - of instances. - - To map individual values use instead . - - - - Initializes a new instance of the class. - - A type that implements . - Thrown if is null. - - - - Gets or sets the maximum element allow for the list managed by type. - If lesser than 0, no upper bound is fixed. - If equal to 0, no elements are allowed. - - - - - Gets the concrete type specified during initialization. - - - - - Maps a single unnamed option to the target property. Values will be mapped in order of Index. - This attribute takes precedence over with which - can coexist. - - It can handle only scalar values. Do not apply to arrays or lists. - - - - Initializes a new instance of the class. - - The _index of the option. - - - - Gets the position this option has on the command line. - - - - - Utility extension methods for System.Char. - - - - - Encapsulates property writing primitives. - - - - - Utility extension methods for System.String. - - - - - Gets or sets the assembly from which to pull information. Setter provided for testing purpose. - - - - - Utility extension methods for query target capabilities. - - - - - Maps unnamed options to property using and . - - - - - Helper method for testing purpose. - - An argument enumerator instance. - The next input value. - - - - Initializes a new instance of the class. Used for unit testing purpose. - - Option short name. - Option long name. - - - - Initializes a new instance of the class. - It is internal rather than private for unit testing purpose. - - Initial internal capacity. - Parser settings instance. - - - - Provides means to format an help screen. - You can assign it in place of a instance. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - specifying the sentence builder. - - - A instance. - - - - - Initializes a new instance of the class - specifying heading string. - - An heading string or an instance of . - Thrown when parameter is null or empty string. - - - - Initializes a new instance of the class - specifying the sentence builder and heading string. - - A instance. - A string with heading or an instance of . - - - - Initializes a new instance of the class - specifying heading and copyright strings. - - A string with heading or an instance of . - A string with copyright or an instance of . - Thrown when one or more parameters are null or empty strings. - - - - Initializes a new instance of the class - specifying heading and copyright strings. - - A instance. - A string with heading or an instance of . - A string with copyright or an instance of . - Thrown when one or more parameters are null or empty strings. - - - - Initializes a new instance of the class - specifying heading and copyright strings. - - A string with heading or an instance of . - A string with copyright or an instance of . - The instance that collected command line arguments parsed with class. - Thrown when one or more parameters are null or empty strings. - - - - Initializes a new instance of the class - specifying heading and copyright strings. - - A instance. - A string with heading or an instance of . - A string with copyright or an instance of . - The instance that collected command line arguments parsed with class. - Thrown when one or more parameters are null or empty strings. - - - - Creates a new instance of the class using common defaults. - - - An instance of class. - - The instance that collected command line arguments parsed with class. - - - - Creates a new instance of the class using common defaults. - - - An instance of class. - - The instance that collected command line arguments parsed with class. - A delegate used to customize the text block for reporting parsing errors. - If true the output style is consistent with verb commands (no dashes), otherwise it outputs options. - - - - Creates a new instance of the class using common defaults, - for verb commands scenario. - - - An instance of class. - - The instance that collected command line arguments parsed with class. - The verb command invoked. - - - - Supplies a default parsing error handler implementation. - - The instance that collects parsed arguments parsed and associates - to a property of type . - The instance. - - - - Converts the help instance to a . - - This instance. - The that contains the help screen. - - - - Adds a text line after copyright and before options usage strings. - - A instance. - Thrown when parameter is null or empty string. - - - - Adds a text line at the bottom, after options usage string. - - A instance. - Thrown when parameter is null or empty string. - - - - Adds a text block with options usage string. - - The instance that collected command line arguments parsed with class. - Thrown when parameter is null. - - - - Adds a text block with options usage string. - - The instance that collected command line arguments parsed with the class. - The word to use when the option is required. - Thrown when parameter is null. - Thrown when parameter is null or empty string. - - - - Adds a text block with options usage string. - - The instance that collected command line arguments parsed with the class. - The word to use when the option is required. - The maximum length of the help documentation. - Thrown when parameter is null. - Thrown when parameter is null or empty string. - - - - Builds a string that contains a parsing error message. - - An options target instance that collects parsed arguments parsed with the - associated to a property of type . - Number of spaces used to indent text. - The that contains the parsing error message. - - - - Returns the help screen as a . - - The that contains the help screen. - - - - The OnFormatOptionHelpText method also allows derived classes to handle the event without attaching a delegate. - This is the preferred technique for handling the event in a derived class. - - Data for the event. - - - - Occurs when an option help text is formatted. - - - - - Gets or sets the heading string. - You can directly assign a instance. - - - - - Gets or sets the copyright string. - You can directly assign a instance. - - - - - Gets or sets the maximum width of the display. This determines word wrap when displaying the text. - - The maximum width of the display. - - - - Gets or sets a value indicating whether the format of options should contain dashes. - It modifies behavior of method. - - - - - Gets or sets a value indicating whether to add an additional line after the description of the option. - - - - - Gets the instance specified in constructor. - - - - - Models an abstract sentence builder. - - - - - Creates the built in sentence builder. - - The built in sentence builder. - - - - Gets a string containing word 'option'. - - The word 'option'. - - - - Gets a string containing the word 'and'. - - The word 'and'. - - - - Gets a string containing the sentence 'required option missing'. - - The sentence 'required option missing'. - - - - Gets a string containing the sentence 'violates format'. - - The sentence 'violates format'. - - - - Gets a string containing the sentence 'violates mutual exclusiveness'. - - The sentence 'violates mutual exclusiveness'. - - - - Gets a string containing the error heading text. - - The error heading text. - - - - Models an english sentence builder, currently the default one. - - - - - Gets a string containing word 'option' in english. - - The word 'option' in english. - - - - Gets a string containing the word 'and' in english. - - The word 'and' in english. - - - - Gets a string containing the sentence 'required option missing' in english. - - The sentence 'required option missing' in english. - - - - Gets a string containing the sentence 'violates format' in english. - - The sentence 'violates format' in english. - - - - Gets a string containing the sentence 'violates mutual exclusiveness' in english. - - The sentence 'violates mutual exclusiveness' in english. - - - - Gets a string containing the error heading text in english. - - The error heading text in english. - - - - Models the copyright part of an help text. - You can assign it where you assign any instance. - - - - - Initializes a new instance of the class - specifying author and year. - - The company or person holding the copyright. - The year of coverage of copyright. - Thrown when parameter is null or empty string. - - - - Initializes a new instance of the class - specifying author and copyrightYears. - - The company or person holding the copyright. - The copyrightYears of coverage of copyright. - Thrown when parameter is null or empty string. - Thrown when parameter is not supplied. - - - - Initializes a new instance of the class - specifying symbol case, author and copyrightYears. - - The case of the copyright symbol. - The company or person holding the copyright. - The copyrightYears of coverage of copyright. - Thrown when parameter is null or empty string. - Thrown when parameter is not supplied. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with an assembly attribute, this overrides all formatting. - - The attribute which text to use. - - - - Converts the copyright instance to a . - - This instance. - The that contains the copyright. - - - - Returns the copyright as a . - - The that contains the copyright. - - - - When overridden in a derived class, allows to specify a new algorithm to render copyright copyrightYears - as a instance. - - A array of copyrightYears. - A instance with copyright copyrightYears. - - - - Gets the default copyright information. - Retrieved from , if it exists, - otherwise it uses as copyright holder with the current year. - If neither exists it throws an . - - - - - Gets a different copyright word when overridden in a derived class. - - - - - Models the heading part of an help text. - You can assign it where you assign any instance. - - - - - Initializes a new instance of the class - specifying program name. - - The name of the program. - Thrown when parameter is null or empty string. - - - - Initializes a new instance of the class - specifying program name and version. - - The name of the program. - The version of the program. - Thrown when parameter is null or empty string. - - - - Converts the heading to a . - - This instance. - The that contains the heading. - - - - Returns the heading as a . - - The that contains the heading. - - - - Writes out a string and a new line using the program name specified in the constructor - and parameter. - - The message to write. - The target derived type. - Thrown when parameter is null or empty string. - Thrown when parameter is null. - - - - Writes out a string and a new line using the program name specified in the constructor - and parameter to standard output stream. - - The message to write. - Thrown when parameter is null or empty string. - - - - Writes out a string and a new line using the program name specified in the constructor - and parameter to standard error stream. - - The message to write. - Thrown when parameter is null or empty string. - - - - Gets the default heading instance. - The title is retrieved from , - or the assembly short name if its not defined. - The version is retrieved from , - or the assembly version if its not defined. - - - - - Provides base properties for creating an attribute, used to define multiple lines of text. - - - - - Initializes a new instance of the class. Used in derived type - using one line of text. - - The first line of text. - - - - Initializes a new instance of the class. Used in type - using two lines of text. - - The first line of text. - The second line of text. - - - - Initializes a new instance of the class. Used in type - using three lines of text. - - The first line of text. - The second line of text. - The third line of text. - - - - Initializes a new instance of the class. Used in type - using four lines of text. - - The first line of text. - The second line of text. - The third line of text. - The fourth line of text. - - - - Initializes a new instance of the class. Used in type - using five lines of text. - - The first line of text. - The second line of text. - The third line of text. - The fourth line of text. - The fifth line of text. - - - - Returns the last line with text. Preserves blank lines if user intended by skipping a line. - - The last index of line of the non-blank line. - - The string array to process. - - - - Gets the all non-blank lines as string. - - A string of all non-blank lines. - - - - Gets the first line of text. - - - - - Gets the second line of text. - - - - - Gets third line of text. - - - - - Gets the fourth line of text. - - - - - Gets the fifth line of text. - - - - - Models a multiline assembly license text. - - - - - Initializes a new instance of the class - with one line of text. - - First line of license text. - - - - Initializes a new instance of the class - with two lines of text. - - First line of license text. - Second line of license text. - - - - Initializes a new instance of the class - with three lines of text. - - First line of license text. - Second line of license text. - Third line of license text. - - - - Initializes a new instance of the class - with four lines of text. - - First line of license text. - Second line of license text. - Third line of license text. - Fourth line of license text. - - - - Initializes a new instance of the class - with five lines of text. - - First line of license text. - Second line of license text. - Third line of license text. - Fourth line of license text. - Fifth line of license text. - - - - Models a multiline assembly usage text. - - - - - Initializes a new instance of the class - with one line of text. - - First line of usage text. - - - - Initializes a new instance of the class - with two lines of text. - - First line of usage text. - Second line of usage text. - - - - Initializes a new instance of the class - with three lines of text. - - First line of usage text. - Second line of usage text. - Third line of usage text. - - - - Initializes a new instance of the class - with four lines of text. - - First line of usage text. - Second line of usage text. - Third line of usage text. - Fourth line of usage text. - - - - Initializes a new instance of the class - with five lines of text. - - First line of usage text. - Second line of usage text. - Third line of usage text. - Fourth line of usage text. - Fifth line of usage text. - - - - Provides data for the FormatOptionHelpText event. - - - - - Initializes a new instance of the class. - - Option to format. - - - - Gets the option to format. - - - - - Indicates the instance method that must be invoked when it becomes necessary show your help screen. - The method signature is an instance method with that accepts and returns a . - - - - - Initializes a new instance of the class. - Although it is possible, it is strongly discouraged redefine the long name for this option - not to disorient your users. - - - - - Initializes a new instance of the class - with the specified long name. Use parameter less constructor instead. - - Help verb option alternative name. - - It's highly not recommended change the way users invoke help. It may create confusion. - - - - - Help verb command do not support short name by design. - - - - - Help verb command like ordinary help option cannot be mandatory by design. - - - - - Models a verb command specification. - - - - - Initializes a new instance of the class. - - The long name of the verb command. - - - - Verb commands do not support short name by design. - - - - - Verb commands cannot be mandatory since are mutually exclusive by design. - - - - - Models a bad parsed option. - - - - - Gets the short name of the option. - - Returns the short name of the option. - - - - Gets the long name of the option. - - Returns the long name of the option. - - - - Provides methods to parse command line arguments. - - - - - Default exit code (1) used by - and overloads. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - configurable with a object. - - The object is used to configure - aspects and behaviors of the parser. - - - - Initializes a new instance of the class, - configurable with using a delegate. - - The delegate used to configure - aspects and behaviors of the parser. - - - - Finalizes an instance of the class. - - - - - Parses a array of command line arguments, setting values in - parameter instance's public fields decorated with appropriate attributes. - - A array of command line arguments. - An instance used to receive values. - Parsing rules are defined using derived types. - True if parsing process succeed. - Thrown if is null. - Thrown if is null. - - - - Parses a array of command line arguments with verb commands, setting values in - parameter instance's public fields decorated with appropriate attributes. - This overload supports verb commands. - - A array of command line arguments. - An instance used to receive values. - Parsing rules are defined using derived types. - Delegate executed to capture verb command name and instance. - True if parsing process succeed. - Thrown if is null. - Thrown if is null. - Thrown if is null. - - - - Parses a array of command line arguments, setting values in - parameter instance's public fields decorated with appropriate attributes. If parsing fails, the method invokes - the delegate, if null exits with . - - A array of command line arguments. - An object's instance used to receive values. - Parsing rules are defined using derived types. - The delegate executed when parsing fails. - True if parsing process succeed. - Thrown if is null. - Thrown if is null. - - - - Parses a array of command line arguments with verb commands, setting values in - parameter instance's public fields decorated with appropriate attributes. If parsing fails, the method invokes - the delegate, if null exits with . - This overload supports verb commands. - - A array of command line arguments. - An instance used to receive values. - Parsing rules are defined using derived types. - Delegate executed to capture verb command name and instance. - The delegate executed when parsing fails. - True if parsing process succeed. - Thrown if is null. - Thrown if is null. - Thrown if is null. - - - - Frees resources owned by the instance. - - - - - Gets the singleton instance created with basic defaults. - - - - - Gets the instance that implements in use. - - - - - This exception is thrown when a generic parsing error occurs. - - - - - Initializes a new instance of the class. The exception is thrown - when something unexpected occurs during the parsing process. - - - - - Initializes a new instance of the class. The exception is thrown - when something unexpected occurs during the parsing process. - - Error message string. - - - - Initializes a new instance of the class. The exception is thrown - when something unexpected occurs during the parsing process. - - Error message string. - Inner exception reference. - - - - Initializes a new instance of the class. The exception is thrown - when something unexpected occurs during the parsing process. - - The object that holds the serialized object data. - The contextual information about the source or destination. - - - - Provides settings for . Once consumed cannot be reused. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class, - setting the case comparison behavior. - - If set to true, parsing will be case sensitive. - - - - Initializes a new instance of the class, - setting the used for help method output. - - Any instance derived from , - default . Setting this argument to null, will disable help screen. - - - - Initializes a new instance of the class, - setting case comparison and help output options. - - If set to true, parsing will be case sensitive. - Any instance derived from , - default . Setting this argument to null, will disable help screen. - - - - Initializes a new instance of the class, - setting case comparison and mutually exclusive behaviors. - - If set to true, parsing will be case sensitive. - If set to true, enable mutually exclusive behavior. - - - - Initializes a new instance of the class, - setting case comparison, mutually exclusive behavior and help output option. - - If set to true, parsing will be case sensitive. - If set to true, enable mutually exclusive behavior. - Any instance derived from , - default . Setting this argument to null, will disable help screen. - - - - Initializes a new instance of the class, - setting case comparison, mutually exclusive behavior and help output option. - - If set to true, parsing will be case sensitive. - If set to true, enable mutually exclusive behavior. - If set to true, allow the parser to skip unknown argument, otherwise return a parse failure - Any instance derived from , - default . Setting this argument to null, will disable help screen. - - - - Finalizes an instance of the class. - - - - - Frees resources owned by the instance. - - - - - Gets or sets a value indicating whether perform case sensitive comparisons. - - - - - Gets or sets a value indicating whether set a mutually exclusive behavior. - Default is set to false. - - - - - Gets or sets the used for help method output. - Setting this property to null, will disable help screen. - - - - - Gets or sets a value indicating whether the parser shall move on to the next argument and ignore the given argument if it - encounter an unknown arguments - - - true to allow parsing the arguments with different class options that do not have all the arguments. - - - This allows fragmented version class parsing, useful for project with add-on where add-ons also requires command line arguments but - when these are unknown by the main program at build time. - - - - - Gets or sets the culture used when parsing arguments to typed properties. - - - Default is CurrentCulture of . - - - - - Represents the parser state. - - - - - Gets errors occurred during parsing. - - - - - Models a type that records the parser state after parsing. - - - - - Gets a list of parsing errors. - - - Parsing errors. - - - - - Models a parsing error. - - - - - Gets or a the bad parsed option. - - - The bad option. - - - - - Gets or sets a value indicating whether this violates required. - - - true if violates required; otherwise, false. - - - - - Gets or sets a value indicating whether this violates format. - - - true if violates format; otherwise, false. - - - - - Gets or sets a value indicating whether this violates mutual exclusiveness. - - - true if violates mutual exclusiveness; otherwise, false. - - - - diff --git a/XamlStyler/Irony.dll b/XamlStyler/Irony.dll deleted file mode 100644 index 7069c05c8ae432902f9741e2e0d2138601280f09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142848 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

x9&9b|%-dAq;cKcH(1ij7VUt{tk0`k<2SYve~ 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 |Zs|Et3mdssMRYcvyf%a%xsIOvf{T&exk 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 UrXybciC&}O`oI7E|BeFxH`2D@>Hq)$ diff --git a/XamlStyler/Irony.xml b/XamlStyler/Irony.xml deleted file mode 100644 index 30a4544..0000000 --- a/XamlStyler/Irony.xml +++ /dev/null @@ -1,753 +0,0 @@ - - - - Irony - - - -

A hint to use precedence. - - Not used directly in grammars; injected automatically by system in states having conflicts on operator symbols. - The purpose of the hint is make handling precedence similar to other conflict resolution methods - through hints - activated during parser construction. The hint code analyzes the conflict and resolves it by adding custom or general action - for a conflicting input. - - - - Base class for more specific reduce actions. - - - Factory method for creating a proper type of reduce parser action. - A Production to reduce. - Reduce action. - - - Reduces non-terminal marked as Transient by MarkTransient method. - - - Reduces list created by MakePlusRule or MakeListRule methods. - - - - Interface for Terminals to access the source stream and produce tokens. - - - - - Returns the source text - - - - - Gets or sets the start location (position, row, column) of the new token - - - - - Gets or sets the current position in the source file. When reading the value, returns Location.Position value. - When a new value is assigned, the Location is modified accordingly. - - - - - Gets or sets the current preview position in the source file. Must be greater or equal to Location.Position - - - - - Gets a char at preview position - - - - - Gets the char at position next after the PrevewPosition - - - - - Creates a new token based on current preview position. - - A terminal associated with the token. - New token. - - - - Creates a new token based on current preview position and sets its Value field. - - A terminal associated with the token. - The value associated with the token. - New token. - - - Tries to match the symbol with the text at current preview position. - A symbol to match - True if there is a match; otherwise, false. - - - Returns true if the node is punctuation or it is transient with empty child list. - True if parser can safely ignore this node. - - - Source line number, 0-based. - - - Source column number, 0-based. - - - Gives a chance to a custom code in hint to interfere in parser automaton construction. - The LanguageData instance. - The LRItem that "owns" the hint. - - The most common purpose of this method (it's overrides) is to resolve the conflicts - by adding specific actions into State.Actions dictionary. - The owner parameter represents the position in the grammar expression where the hint - is found. The parser state is available through owner.State property. - - - - - Gets case sensitivity of the grammar. Read-only, true by default. - Can be set to false only through a parameter to grammar constructor. - - - - - The main root entry for the grammar. - - - - - Alternative roots for parsing code snippets. - - - - - Override this method to help scanner select a terminal to create token when there are more than one candidates - for an input char. context.CurrentTerminals contains candidate terminals; leave a single terminal in this list - as the one to use. - - - - Skips whitespace characters in the input stream. - Override this method if your language has non-standard whitespace characters. - Source stream. - - - Returns true if a character is whitespace or delimiter. Used in quick-scanning versions of some terminals. - The character to check. - True if a character is whitespace or delimiter; otherwise, false. - Does not have to be completely accurate, should recognize most common characters that are special chars by themselves - and may never be part of other multi-character tokens. - - - - Creates a terminal reporting group, so all terminals in the group will be reported as a single "alias" in syntex error messages like - "Syntax error, expected: [list of terms]" - - An alias for all terminals in the group. - Symbols to be included into the group. - - - - Creates a terminal reporting group, so all terminals in the group will be reported as a single "alias" in syntex error messages like - "Syntax error, expected: [list of terms]" - - An alias for all terminals in the group. - Terminals to be included into the group. - - - - Adds symbols to a group with no-report type, so symbols will not be shown in expected lists in syntax error messages. - - Symbols to exclude. - - - - Adds symbols to a group with no-report type, so symbols will not be shown in expected lists in syntax error messages. - - Symbols to exclude. - - - - Adds a group and an alias for all operator symbols used in the grammar. - - An alias for operator symbols. - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Nn. - - - - - Looks up a localized string similar to Yy. - - - - - Looks up a localized string similar to Ambiguous grammar, unresolvable reduce-reduce conflicts. State {0}, lookaheads [{1}]. - - - - - Looks up a localized string similar to Ambiguous grammar, unresolvable shift-reduce conflicts. State {0}, lookaheads [{1}]. - - - - - Looks up a localized string similar to Argument list not found in the stack. Expected: ValueList, found: {0}.. - - - - - Looks up a localized string similar to Invalid operation, attempt to assign to a constant or literal value.. - - - - - Looks up a localized string similar to Invalid length of char literal - should be a single character.. - - - - - Looks up a localized string similar to Mal-formed string literal - cannot find termination symbol.. - - - - - Looks up a localized string similar to Invalid unicode escape ({0}), expected {1} hex digits.. - - - - - Looks up a localized string similar to Invalid \x escape, at least one digit expected.. - - - - - Looks up a localized string similar to Cannot convert value from type {0} to type {1}, type converter not defined.. - - - - - Looks up a localized string similar to Cannot convert literal {0} to type {1}.. - - - - - Looks up a localized string similar to Fatal error in parser: attempt to move back in the source.. - - - - - Looks up a localized string similar to {0} State {1} on inputs: {2}. - - - - - Looks up a localized string similar to Fatal error:. - - - - - Looks up a localized string similar to Construct '{0}' is not supported (yet) by language implementation.. - - - - - Looks up a localized string similar to Could not find a closing quote for quoted value.. - - - - - Looks up a localized string similar to Duplicate switch '{0}' for regular expression.. - - - - - Looks up a localized string similar to Duplicate start symbol {0} in string literal [{1}].. - - - - - Looks up a localized string similar to Failed to create AST node for non-terminal [{0}], error: {1}. - - - - - Looks up a localized string similar to Failed to find the ending tag '{0}' for a text literal. . - - - - - Looks up a localized string similar to ImpliedSymbolTerminal cannot be used in grammar with DisableScannerParserLink flag set. - - - - - Looks up a localized string similar to Interpreter error, DataStack.Pop() operation failed - stack is empty.. - - - - - Looks up a localized string similar to Interpreter is busy.. - - - - - Looks up a localized string similar to Invalid arguments for IncDecNode AST node: either first or second argument should be '--' or '++'.. - - - - - Looks up a localized string similar to Invalid AstMode value in call to Evaluate method. Node: {0}, mode: {1}.. - - - - - Looks up a localized string similar to Invalid character: '{0}'.. - - - - - Looks up a localized string similar to Invalid embedded expression. . - - - - - Looks up a localized string similar to Invalid dedent level, no previous matching indent found.. - - - - - Looks up a localized string similar to Invalid escape sequence: \{0}.. - - - - - Looks up a localized string similar to Invalid escape sequence.. - - - - - Looks up a localized string similar to Invalid escape symbol, expected 'u' or 'U' only.. - - - - - Looks up a localized string similar to Invalid number.. - - - - - Looks up a localized string similar to Invalid switch '{0}' for regular expression. - - - - - Looks up a localized string similar to Error in string literal [{0}]: No start/end symbols specified.. - - - - - Looks up a localized string similar to The last term of production containing SyntaxError must be a terminal. NonTerminal: {0}. - - - - - Looks up a localized string similar to List non-terminals cannot be marked transient; list: ({0}). - - - - - Looks up a localized string similar to Expected new line symbol.. - - - - - Looks up a localized string similar to No closing pair for opening symbol {0}. - - - - - Looks up a localized string similar to AstNodeType or AstNodeCreator is not set on non-terminals: {0}. Either set Term.AstConfig.NodeType, or provide default values in AstContext.. - - - - - Looks up a localized string similar to No end symbol for regex literal.. - - - - - Looks up a localized string similar to No ending tag '{0}' found in embedded expression.. - - - - - Looks up a localized string similar to UnExprNode: no implementation for unary operator '{0}'.. - - - - - Looks up a localized string similar to Number cannot be followed by a letter.. - - - - - Looks up a localized string similar to ParserDataBuilder error: inadequate state {0}, reduce item '{1}' has no lookaheads.. - - - - - Looks up a localized string similar to Non-terminal {0} has uninitialized Rule property.. - - - - - Looks up a localized string similar to Attempt to evaluate NULL AST node. The AST node for term '{0}' was not created during parsing.. - - - - - Looks up a localized string similar to Operator '{0}' is not defined for types {1}.. - - - - - Looks up a localized string similar to Operator '{0}' is not defined for types {1} and {2}.. - - - - - Looks up a localized string similar to Operator '{0} not imlemented.. - - - - - Looks up a localized string similar to {0}: {1}. - - - - - Looks up a localized string similar to CodeOutlineFilter: line continuation symbol '{0}' should be added to Grammar.NonGrammarTerminals list.. - - - - - Looks up a localized string similar to Syntax error, unexpected input.. - - - - - Looks up a localized string similar to Parsed tree is null, cannot evaluate.. - - - - - Looks up a localized string similar to Parse tree root is null, cannot evaluate.. - - - - - Looks up a localized string similar to Root AST node is null, cannot evaluate.. - - - - - Looks up a localized string similar to Root AST node does not implement IInterpretedAstNode interface, cannot evaluate.. - - - - - Looks up a localized string similar to ({0}) term passed as 'root' paramater to parserr is not Root or snippet root of the grammar. Add it to SnippetRoots set in grammar constructor.. - - - - - Looks up a localized string similar to Root property of the grammar is not set.. - - - - - Looks up a localized string similar to Reduce-reduce conflict. State {0}, lookaheads: {1}. Selected reduce on first production in conflict set.. - - - - - Looks up a localized string similar to Rule for NonTerminal {0} contains null as an operand in position {1} in one of productions.. - - - - - Looks up a localized string similar to Shift-reduce conflict. State {0}, lookaheads [{1}]. Selected shift as preferred action.. - - - - - Looks up a localized string similar to Syntax error, expected: {0}. - - - - - Looks up a localized string similar to Syntax error.. - - - - - Looks up a localized string similar to Expression root non-terminal in template settings (AstNodeConfig property) in templated string literal [{0}] is not added to Roots set. Add it to SnippetRoots in grammar constructor.. - - - - - Looks up a localized string similar to Expression root is not specified in template settings (AstNodeConfig property) in templated string literal [{0}]. . - - - - - Looks up a localized string similar to Error in string literal [{0}]: IsTemplate flag is set, but TemplateSettings is not provided in AstNodeConfig property.. - - - - - Looks up a localized string similar to A terminal {0} has empty prefix.. - - - - - Looks up a localized string similar to Transient non-terminal must have zero or one non-punctuation child nodes; non-terminals: {0}.. - - - - - Looks up a localized string similar to Unclosed comment block. - - - - - Looks up a localized string similar to Unexpected end of file.. - - - - - Looks up a localized string similar to Unexpected indentation.. - - - - - Looks up a localized string similar to Unmatched closing brace '{0}'.. - - - - - Looks up a localized string similar to Variable {0} is not a callable function.. - - - - - Looks up a localized string similar to Variable {0} not defined.. - - - - - Looks up a localized string similar to Invalid number of arguments. Expected {0}, found {1}.. - - - - - Looks up a localized string similar to ({0}:{1}). - - - - - Looks up a localized string similar to Accept. - - - - - Looks up a localized string similar to Operator, shift to {0}/reduce on {1}.. - - - - - Looks up a localized string similar to Reduce on {0}. - - - - - Looks up a localized string similar to Shift to {0}. - - - - - Looks up a localized string similar to (Unknown action type). - - - - - Looks up a localized string similar to (EOF). - - - - - Looks up a localized string similar to [end-of-statement]. - - - - - Looks up a localized string similar to (INITIAL STATE). - - - - - Looks up a localized string similar to (Key symbol). - - - - - Looks up a localized string similar to (Keyword). - - - - - Looks up a localized string similar to [line break]. - - - - - Looks up a localized string similar to Location:. - - - - - Looks up a localized string similar to None. - - - - - Looks up a localized string similar to .... - - - - - Looks up a localized string similar to (unnamed). - - - - - Looks up a localized string similar to Abort script(y/n)?. - - - - - Looks up a localized string similar to {0} Console.\r\nPress Ctrl-C to exit the program.\r\n. - - - - - Looks up a localized string similar to Console. - - - - - Looks up a localized string similar to Custom action did not execute: parser state or input did not change.. - - - - - Looks up a localized string similar to Exit console (y/n)?. - - - - - Looks up a localized string similar to NLALR transform: Add WrapTail() in '.' position to [{0}].. - - - - - Looks up a localized string similar to Press any key to end the program.. - - - - - Looks up a localized string similar to "[{0}], at {1}. - - - - - Looks up a localized string similar to Parsing conflict resolved in code.. - - - - - Looks up a localized string similar to Executing custom action. - - - - - Looks up a localized string similar to Operator - resolved to {0}. - - - - - Looks up a localized string similar to Popped state from stack, pushing {0}. - - - - - Looks up a localized string similar to RECOVERING: {0}. - - - - - Looks up a localized string similar to FAILED TO RECOVER. - - - - - Looks up a localized string similar to RECOVERING: Found state with shift on error : {0}. - - - - - Looks up a localized string similar to RECOVERING: popping stack, looking for state with error shift. - - - - - Looks up a localized string similar to RECOVERING: Reached end of error production, reducing.. - - - - - Looks up a localized string similar to RECOVERING: Shifting Error term, {0}. - - - - - Looks up a localized string similar to RECOVERING: shifting until the end of error production.. - - - - - Looks up a localized string similar to RECOVERED. - - - - diff --git a/XamlStyler/Newtonsoft.Json.dll b/XamlStyler/Newtonsoft.Json.dll deleted file mode 100644 index b7ef414f3092e49732ed8e74e214a54d533dce01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522752 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

gT0l&S8^JF|+ms(vVEh`&28#*6k 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 - - - Newtonsoft.Json - - - -

- Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an Entity Framework EntityKey to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an ExpandoObject to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - true if the written enum text will be camel case; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string. - Serialization will happen on a new thread. - - The object to serialize. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting. - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting and a collection of . - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Asynchronously populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous populate operation. - - - - - Serializes the XML node to a JSON string. - - The node to serialize. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting. - - The node to serialize. - Indicates how the output is formatted. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XmlNode. - - - - Deserializes the XmlNode from a JSON string. - - The JSON string. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XmlNode - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - Gets the of the JSON produced by the JsonConverter. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The of the JSON produced by the JsonConverter. - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Represents a collection of . - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the Common Language Runtime (CLR) type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a []. - - - A [] or a null reference if the next JSON token is null. - - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the list changes or an item in the list changes. - - - - - Occurs before an item is added to the collection. - - - - - Occurs when the items list of the collection has changed, or the collection is reset. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Occurs when a property value is changing. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the properties for this instance of a component. - - - A that represents the properties for this component instance. - - - - - Returns the properties for this instance of a component using the attribute array as a filter. - - An array of type that is used as a filter. - - A that represents the filtered properties for this component instance. - - - - - Returns a collection of custom attributes for this instance of a component. - - - An containing the attributes for this object. - - - - - Returns the class name of this instance of a component. - - - The class name of the object, or null if the class does not have a name. - - - - - Returns the name of this instance of a component. - - - The name of the object, or null if the object does not have a name. - - - - - Returns a type converter for this instance of a component. - - - A that is the converter for this object, or null if there is no for this object. - - - - - Returns the default event for this instance of a component. - - - An that represents the default event for this object, or null if this object does not have events. - - - - - Returns the default property for this instance of a component. - - - A that represents the default property for this object, or null if this object does not have properties. - - - - - Returns an editor of the specified type for this instance of a component. - - A that represents the editor for this object. - - An of the specified type that is the editor for this object, or null if the editor cannot be found. - - - - - Returns the events for this instance of a component using the specified attribute array as a filter. - - An array of type that is used as a filter. - - An that represents the filtered events for this component instance. - - - - - Returns the events for this instance of a component. - - - An that represents the events for this component instance. - - - - - Returns an object that contains the property described by the specified property descriptor. - - A that represents the property whose owner is to be found. - - An that represents the owner of the specified property. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Gets or sets how how null value properties are merged. - - How null value properties are merged. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a view of a . - - - - - Initializes a new instance of the class. - - The name. - - - - When overridden in a derived class, returns whether resetting an object changes its value. - - - true if resetting the component changes its value; otherwise, false. - - The component to test for reset capability. - - - - - When overridden in a derived class, gets the current value of the property on a component. - - - The value of a property for a given component. - - The component with the property for which to retrieve the value. - - - - - When overridden in a derived class, resets the value for this property of the component to the default value. - - The component with the property value that is to be reset to the default value. - - - - - When overridden in a derived class, sets the value of the component to a different value. - - The component with the property value that is to be set. - The new value. - - - - - When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. - - - true if the property should be persisted; otherwise, false. - - The component with the property to be examined for persistence. - - - - - When overridden in a derived class, gets the type of the component this property is bound to. - - - A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. - - - - - When overridden in a derived class, gets a value indicating whether this property is read-only. - - - true if the property is read-only; otherwise, false. - - - - - When overridden in a derived class, gets the type of the property. - - - A that represents the type of the property. - - - - - Gets the hash code for the name of the member. - - - - The hash code for the name of the member. - - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a undefined value. - - A undefined value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies how null value properties are merged. - - - - - The content's null value properties will be ignored during merging. - - - - - The content's null value properties will be merged. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisble by. - - A number that the value should be divisble by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - A flag indicating whether the value can not equal the number defined by the "minimum" attribute. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - A flag indicating whether the value can not equal the number defined by the "maximum" attribute. - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallow types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains schema JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Parses the specified json. - - The json. - The resolver. - A populated from the string that contains JSON. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details. - - - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - - - true if the interface will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. - - - true if the attribute will be ignored when serializing and deserializing types; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Represents a trace writer that writes to the application's instances. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets the object's properties. - - The object's properties. - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the ISerializable object constructor. - - The ISerializable object constructor. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer{TSource}. - - The type of the elements of source. - A sequence in which to locate a value. - The object to locate in the sequence - An equality comparer to compare values. - The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic that returns a result - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Returns a Restrictions object which includes our current restrictions merged - with a restriction limiting our type - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - diff --git a/XamlStyler/Options/DefaultSettings.json b/XamlStyler/Options/DefaultSettings.json deleted file mode 100644 index d994b23..0000000 --- a/XamlStyler/Options/DefaultSettings.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "AttributesTolerance": 2, - "KeepFirstAttributeOnSameLine": false, - "MaxAttributeCharactersPerLine": 0, - "MaxAttributesPerLine": 1, - "NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransfom, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter", - "SeparateByGroups": false, - "AttributeIndentation": 0, - "AttributeIndentationStyle": 1, - "RemoveDesignTimeReferences": false, - "EnableAttributeReordering": true, - "AttributeOrderingRuleGroups": [ - "x:Class", - "xmlns, xmlns:x", - "xmlns:*", - "x:Key, Key, x:Name, Name, x:Uid, Uid, Title", - "Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom", - "Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight", - "Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex", - "*:*, *", - "PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint", - "mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText", - "Storyboard.*, From, To, Duration" - ], - "FirstLineAttributes": "", - "OrderAttributesByName": true, - "PutEndingBracketOnNewLine": false, - "RemoveEndingTagOfEmptyElement": true, - "SpaceBeforeClosingSlash": true, - "RootElementLineBreakRule": 0, - "ReorderVSM": 2, - "ReorderGridChildren": false, - "ReorderCanvasChildren": false, - "ReorderSetters": 0, - "FormatMarkupExtension": true, - "NoNewLineMarkupExtensions": "x:Bind, Binding", - "ThicknessSeparator": 2, - "ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin", - "FormatOnSave": true, - "CommentPadding": 2, -} \ No newline at end of file diff --git a/XamlStyler/Settings.XamlStyler b/XamlStyler/Settings.XamlStyler deleted file mode 100644 index e1ab06f..0000000 --- a/XamlStyler/Settings.XamlStyler +++ /dev/null @@ -1,41 +0,0 @@ -{ - "AttributesTolerance": 2, - "KeepFirstAttributeOnSameLine": true, - "MaxAttributeCharatersPerLine": 0, - "MaxAttributesPerLine": 1, - "NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransfom, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter", - "SeparateByGroups": false, - "AttributeIndentation": 0, - "AttributeIndentationStyle": 1, - "RemoveDesignTimeReferences": false, - "EnableAttributeReordering": true, - "AttributeOrderingRuleGroups": [ - "x:Class", - "xmlns, xmlns:x", - "xmlns:*", - "x:Key, Key, x:Name, Name, x:Uid, Uid, Title", - "Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom", - "Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight", - "Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex", - "*:*, *", - "PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint", - "options:Freeze, op:Freeze, o:Freeze, mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText", - "Storyboard.*, From, To, Duration" - ], - "FirstLineAttributes": "", // for Colors use: x:Key, Opacity, Color, options:Freeze, op:Freeze, o:Freeze - "OrderAttributesByName": true, - "PutEndingBracketOnNewLine": false, - "RemoveEndingTagOfEmptyElement": true, - "SpaceBeforeClosingSlash": true, - "RootElementLineBreakRule": 0, - "ReorderVSM": 2, - "ReorderGridChildren": false, - "ReorderCanvasChildren": false, - "ReorderSetters": 3, - "FormatMarkupExtension": true, - "NoNewLineMarkupExtensions": "x:Bind, Binding", - "ThicknessSeparator": 1, - "ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin", - "FormatOnSave": false, - "CommentPadding": 2, -} \ No newline at end of file diff --git a/XamlStyler/XamlStyler.Core.dll b/XamlStyler/XamlStyler.Core.dll deleted file mode 100644 index 066f8415ffeef8488447f9afcab59e04994718ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75776 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 VaNK7DYX7%z&HQ)&{{Mr({{aBxlEeT2 diff --git a/XamlStyler/format_all_xaml.cmd b/XamlStyler/format_all_xaml.cmd deleted file mode 100644 index ac3a03a..0000000 --- a/XamlStyler/format_all_xaml.cmd +++ /dev/null @@ -1,2 +0,0 @@ -xstyler.exe -r -d ..\src\MahApps.Metro.SimpleChildWindow\ -c .\Options\XAMLStyler.json -xstyler.exe -r -d ..\src\MahApps.Metro.SimpleChildWindow.Demo\ -c .\Options\XAMLStyler.json \ No newline at end of file diff --git a/XamlStyler/xstyler.exe b/XamlStyler/xstyler.exe deleted file mode 100644 index 1791509f8ad9af79ccd4f1b12d139975b3c09feb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16896 zcmeHOdwdktz5mU=lR!*Dh@zll@DWL}gqMH?SFIpgAD}#T&;9<+nc3YCX#3aw^baTO z@0{~HzwX(|#r4t(cw zeF;(gI0so=^b!pyZvU%wohVd98$$cMqINiKtVpAs8V-OysjDM5TJq8%RoJqvC|Xjs zC8!*a-)Z<2T~lC?uw}$e5K38l(aF5fQGB5}t+>tgS<@AUW%H1qes(I+rzf!OJfy*_ z-=9jmIX{nH3Up*a@v4kDAF(} zV0$q#*yugBUaK(?_<<3@(Bj6R)dRNme(NC=1FcGpQYD2s1197PNFhg@=&6GjN=FQ8 z^3XZZ6{fCKD3A9FsO7U^z|vCBO0Js&F|MJ?Q`D+Mum)ff8?jw_1xEWu&3ZQiUw)P6VPcXrF|l z{)8e*s~)U7}iAYy%4eVH{8D7zMz%Y)`{6a(vPN=&T3(m_5?rLWG2O|^GYDb$3%Ub>3y z!?v?-!EmoM_HmNj5%w5Xbb`08j^*%stPLQm^h>(qC0(W8dI`7_OsHMjSnjdjLQAoz z8R4xP0c@$qy4K@zSEC&6?3g-^j7D#Deb5uA3j$GAJ)o{0xPbw?0mYy|WxzyGmJUD} zX1vGx8Q6uS5GP0>cA&2zh<<5{VBJWNHCB6q(#_Jxp*n14rSSHB z#v68cPuoG&BZANw@yORT*N_)gZGq2;3f`WY0$z8euf&4%ji|-KmX#AdD-p2@AuB+@ z910;TKtNZ8kQE>hSPCI4KwwEIgscF81+EaXGTKu&iH$ND05LqR_55iX@2I%g5zEGg zo5Ew7#*Bi|*c)*!z-joExKE(`4%b`LRxH_Na~EO5co5PKpWjLkVi#uBho3vYWd_Qp z&~AX7!>7f~cBaLJAk{7&c6&()wiP;{jUfam&kpCx`z%aE*p>;)lOQ5NX2P10eM|=} zsT@B{DaXMsvUJ--fAT49*g#JP0<=oPGVjfSW9T4|0UG0d*&m>{B)nI`ZXaWG2`5Up zSmICe-USX>55sRu%;nxaz5x9xnDLj=OELi{MTg`Y>IB>kJ7Cj;elr>E9aPS1E5w)q%7FYD(62I%XcFQ)|ou5Uv5Nc_^!1yn_kX(J%HCNZDMv6;XmNV`?zQ4^%JLjqi%E+zaLU=0lm zm9X8^?4gP9xO;QwNYN1934bR|Qoa9>Aj8C*0K^%As*z5)lW#VORmhH68_y0*NrUt;ZzA*B)m|0T#Fyill-~>8D3wzFnRR@L62j-g497F(9Zj*2g;6j?J)do!}(YE=PQMJS`(n^EZ zP((W;^etKn&J}pYSQWS%58%Pj2I|q8LJ!j_?KZ4up5-yb@(uo1P#+iEf%)T8K`jg@6q-2e64+0mn+r z1iBRUNz@KFg}MOGlQgqHa|T_H9W;!X+^dCY5aj?*pkbac4X4up>uEgT7-|5`muNKL zbcw%!&OyCZ;=dwcl)ehgWpo{&O*ea6=-YI*FG4FZOAPfZeXC@B4eHPOej@AZQE&AB zLDn~-ezpG%S$_{ZNvo!5JXV(wy9w&pSpb(v*el_WC45xEof48qj*@VSgi9psmGH+B zJ}Ti(&(+KyT6`6j$9{-?0bvhI`~}6*5FQliaX-U#o_7H^_!xf0zZ-Ci=kM5IO0Yj_ zSnK>IREE2(hDh_HJ`nde4fnSo>c@ae!>YqRinUONdKI7twjPLjHK2zEgG$4WeGII7 z1^tx%hkU)f!sPoEB;soh-w0Jz!V%h~vV<`CYmBxOtCvTX(771R*Cef0Rt_60aq^ZR zsfe1j63n13=J_sKtd|cz)`|Dm>2wm3d%{DtSapP=i?XlBFBHS{UmPO(jWAS22*iqAp$J%LO z1Sm5ZUKmNlThl#p!wN4^bp-sZh@GAnv24R?O-Is4AZW2KGNKvFjx9Sv=Pa{pma)u;_n&XNne2>pWvmDr zrGNK~m<4;8R!_gKshPAnEfa&x7a5U`HnTa|K`r*2Ogui>b0P_YrkjaGB-t@5mNe*M3u4O}u$4;WUV+ zkaZ^_ro&%H3IU1dI8rW^k~-A|hShG`1}TLMYAN!pRP8Wt%dv;!q_ix53aVN%tPmI- zQ`2}?-oZQPoyHro>TD>Yz3agn`sAUp1Rv2_%#GVO~>;fdifS18ctkijtbT`-gn0uyWCS(UB?xxwXWGoShtEhB#5fzSZBkopU zL_R5XP-xP`vp_u6-ndz>$u=n5lB}&Z}y4I@>w5 z8WAhnt$agMtuE~PFwKgnAtQq37|YYV1$3sv=i8WFy-!NFSTTuE+dEeOQtmV&3EtKW zi`sCq=~Nv@kXj24nOug7%&8XLSES174unmV!n~Eb!q13Bu-Dt^Sk!h=uIq3QGAuLY zY>fT7RaE0npteyvA0b^hH?_@-g)K@sx(nXN4Gc~8I98lZ4D<0R@kK2xTAP}eW+L(Y zq(%3xqwR8GWp~dpn``2&}QdW08YqJA^G*gRP5~+AB8cWM*W*D83OdNyx&N9P{$}mu|rdEp+ zcUYFhfq>{*W>{%zGkHPNY;&10hmW#hV)wQX<_K^-Bge?3LXr=M9=qzAQ$CG6fo~};E;b(z%I+>KAB9aB3Mz0Q-l9Vy(1f343B&tKt8EEr(ojUq)q}J(>Hi)o1f_)2m+n9$=>N_rm*}95tJ**kBu$PjUEe1}>;@+|% zNqc|Nir0%6#7O}%o3Q-T@mR`+U@?+VgH506ql8X)$)njc>oDPTnvY32WYW|v%SLJh z?=J9RXK_yoy!!?dQ=8~9VKxpf3nMyE3zIf%CW0Z3KNW<`wP1Q0Rf;qcQ+G-E+2kxc zORWsRL0F1EWmdQfBW6lT5|AP-sn|txF-sbfF+6+(hjtP_TWZwbq5T}td*ji}T8JO^ zDI3HULoq3sH4LFzFl`hx21Hdxjbls~dU#c`saRdbM+Ya@z-+oS#_(E^5hEjl<1Yn# zzlb=gRZ>S03T>Dzf;o+1Bje3~8Te2=%foBZ1Yb6k;-q7YiN8MU{q$BT1JiI=u@noz zIf0QpTMtThG@Ud{j^!X^I$f5<4pz?Ob>D?KS-Qf!>`2~eI*O&G55DeeTfV4f#=3>i z)r2Np{5kn_O$&K-()_4YR&ukPfyb|VG;et@=&P#mc*=1MQ`NhsME81zl@G1z{TANP z%FBo1{Z%Uu46f?EMJor75Zaz{Ur?)RVQy6|6+wS!aMf(Byz;`qRr9s-avUmF_Wry) zplhD0-qk#Ey;dF~@38W6&{S4vnnayQC?3#GByXwW{{X0TAm?j?$S+y>biC1GPMnE& zA<58Vf+gTlwFtjUt0Gl6k;imF9imtEZp6E2)gll>GgP1+cX_pP4;qj*#>7L>H>}(r z^g=PI9Sd94``SPs8oO=V5^JdGayR2m6sXP*s6na{zk7CY}KPdAxzjY9N<-0wGk7^TVQ$f~{A< zu<|%a3-jx+Cd}r6DXW8Q2`~tuUsfP_WwoTPW(AkZ;Y)EcC40SfRF0p=hm)#mfU2b- z&B+6w$Vahlo|=oTND6OB`6sQmZp&P5YoKE_a5}G1*}|!_XX)zEfT;Hqje7SKp>!nK zBl@zKji(OXPG>q|rj9$VdQ5E4mv_ga-Fl~dCa`rmPCer2ctUkfx7C$?d251y?&I*WN zz#;j!3;nV6y3?bNZW@J*(HR<@GH&#Qv7JU_d}C*{sl9RRI3vcJ$tUeZoX~+T_nA_yt+7vok3+xD7Yq zQL52aW8slF9<sA7)!X>5Fb5x!8vb{dGv7l=NCC!F6p zcaAQ_K`%RzW1~3UaAd&o!jcu8eS|O3uo(to^85wrUO2#cmR!KcJwO!X8?9dB6;q`+ z&Ia^ow-LQe$6-R=2oZz__uJw58ur){oTaD}nt#l{E`O2}@5%GBQ${q_8G`}yMho}e zp<%-h;SDU#r#t<)&L45qqp7g-wpQ;R4e@d<(s7nNFJe>cCO@(3W+&=Vgtg7~>@Z;2 z_*pt1kTmGdOJalWn5;oZ)bR-iV{q(1mm~h4-t^(aybNx_FYcV3T;#s4gx#8Y)oRe) z!!^l@Ul=EInh<{t`gAeM<4rf5W;Dr^19cDeC3??GlunLt2ND^SzIvL{W6{Elqyc)LVo^ zRRzZ1`yv(oDuVm_^I_6Do0y@2xj>il;U{ zDgL%=H`+Oob!ZOdPyL`; z!2{rgOR*O3fAE2L;;E;^n>%+pNT-8&;-8v3C-#22Pi)$_Sv>vp)8fGApBK?Wj$PYD z_NG%s?#ELx|7;=dULbP!Mum9L61hjdA;gn63i0e+LcDyx5btf1JXr+34jecjHb1>Z zJh^#`_~_$(m{ZNq`tc>_&t}DQFT5Z&Z{93+{Y}~Mpz0RcLy+Z%UlQWmr;FTeXA5!X zY?1p#tH|BgF2rw5As)U$&A;_FA)aR$eksJh_rY1&FNX;}dVi1DxaleJ{Btj0!mMC> z^1SNGiN9gaO`A4}7oOWDm|pcAL^p)k_4iT+qh1Mt+xuX?I$Ap+V8-GW5`tkA@bsOv1#*@;_bKIapqM8#|7)X6~B)^ z+ADb0{J4+b7UJpwB71#}5I3DJ#D9%}{m&Bu^Jnjk2=SY4A%2$;;`b{>_OWY(_~Tk3 zHh)*-Hs2z|`!6|qC|y6@2meCHjqt-~`(RUu#!>p>%ddznn>LESytc!kSFy{ZvOhgv znno)-J|v(+79Ho+^u5u!(f{v|?OS1rU1 zLxuQGSmb^DhgS;m!g{cT9?TEC_a8hY zwr_h@Jh5rB*!})4vF-WirQQFs<5fw)fa5ZE5OI3rDMDOZC34pvC&af-5V>`y3Gv;L zh{cH__fz=bjtdbF6GfKe;@gnx<~kw%6Tk1Ain10q8z#i};jcrV<#}`Et(|Ye2b;w+ z+qQ{ayLO3ZAj`AQJ}cJ=+eBFbkZpK-v&i0luE^asO^6>&6WJf0gYs;V`w`Y5kx{^g}2d-o+W_7B{7k(48Q>tvDp<{-_E8Fs&@^aF3+OFui16VGhjD)*jU?_*zf=4AHr;x>L9i+_Ik zW%0!3O=2JRDyci5l!MnJ?r-AhABgPc?}_Z6ZV=+JYen{6!x4Wk>(Zb--#~yYzUosPL{Gr z(*E?oxVpKWhqqlkmo7gpk4gs_+&Pt*SPmr%^ElGDBjK2qufBasFV%AxWV5)Jvj({7 z%EDpLmzPUiC?_l>e9u>W@!5o~t5X9$QPAiT&{S~p!MQ5@_@5WF0C}dxfX#FfYAs0c z%|W{ba3<<}J>>f^$K%x(frXO)ZxLUd)X-$D0A@(s0vu;p;G=TUoE7679ABr%Q7VhZ z+1GeczDg3%y}lF}YcdPQiA&CU_2)E8(lp^rNd1kac0M1XPqhy)mUChW{BedijajHD z8C#rP<7}FZ)0GH*%Va%+I_C^+jLYC)n=^Pi_#B=uZUA;U(w#9JUaKs5Ay>&93&~&3 z26A4GbA~#gDHFFk_ga|C&F;BLVU>Di{o65`Q?<;s9nx{0lT)mm!gZ6#{Jj9{ zl0g1a@#Ew)&&XNQHYq2M=Oi-cCRq-ZzUCBk9HVqd!*Y&vO6JG2az>Ifr<^NgTdGo7 ztR4L-LCn+zjg^kBMr=uy&E!!m#d0|(OQG6q{RHM#mOL6)mF4Zgn0Cm*Uk)%|q-5at zP~PX9I!^*W2PONTFV3r~uMOB{e5N)4^lnVe0F{lo+17>ZuNvnj@QY){ozES=0OKui zP`O?nHwsdX#*a&m$q9147HL1GO+ub{k%TKS+O-irEdsw4Qt}1(f?dN01o%i&j^Li#&L)=O^`>#RebCdh*%6E6HOqdt7qYUG?a``JR4n^%mwl&$7EbFxoa zc2{?9DJvgM2c^6E9-~A0I9;Uq(bgs5D{}T}-*Jaqy1$)y%v4CvYb1dV$(myN1Lk}?_VH0-pS z;gj=$nXc!VwRGSsIDCZEM<&jq)apqj{U+DW?wOk6&!^;vk>N-xRXb8~NLv{@-IDAy z|3!I5*UE92+vX$}=5*S?SjN%}o!;De+@G{c{P$|RL8 zlV6i-BX&!288Sdtt)7WZjdI##a&0F*WiuS5B$JUxkj52#WFOfljm#SX1d~R(9y+_= b^Dk=uW)_%&d^kjkkNG!~>kD!IUo7x{)>w - - - - - \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 39e7056..2bd7338 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -21,7 +21,14 @@ skip_tags: true image: Visual Studio 2022 test: off -# install: +install: + # Appveyor uses git checkout -qf FETCH_HEAD but all GitVersion versions above 5.6.3 doesn't support this detached header + # This is a workaround for this issue + - ps: | + if ($env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT -ne "") + { + git checkout -qf $($env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT) + } # - ps: Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -OutFile 'dotnet-install.ps1' # - ps: ./dotnet-install.ps1 -Version 6.0.100 -InstallDir "C:\Program Files\dotnet" @@ -31,7 +38,7 @@ pull_requests: build_script: - ps: dotnet --list-sdks - ps: gitversion /version - - ps: .\build.ps1 --target=appveyor + - ps: .\build.ps1 --target=ci #--verbosity=diagnostic artifacts: - path: \Publish\*.* diff --git a/build.cake b/build.cake index 742e8bd..346acbb 100644 --- a/build.cake +++ b/build.cake @@ -2,12 +2,13 @@ // TOOLS / ADDINS /////////////////////////////////////////////////////////////////////////////// -#tool dotnet:?package=NuGetKeyVaultSignTool&version=1.2.28 -#tool dotnet:?package=AzureSignTool&version=3.0.0 -#tool dotnet:?package=GitReleaseManager.Tool&version=0.12.1 -#tool dotnet:?package=GitVersion.Tool&version=5.6.3 +#tool dotnet:?package=NuGetKeyVaultSignTool&version=3.2.3 +#tool dotnet:?package=AzureSignTool&version=4.0.1 +#tool dotnet:?package=GitReleaseManager.Tool&version=0.15.0 +#tool dotnet:?package=XamlStyler.Console&version=3.2206.4 + +#tool nuget:?package=GitVersion.CommandLine&version=5.12.0 -#tool vswhere&version=2.8.4 #addin nuget:?package=Cake.Figlet&version=2.0.1 /////////////////////////////////////////////////////////////////////////////// @@ -15,47 +16,56 @@ /////////////////////////////////////////////////////////////////////////////// var target = Argument("target", "Default"); -var configuration = Argument("configuration", "Release"); -var verbosity = Argument("verbosity", Verbosity.Minimal); /////////////////////////////////////////////////////////////////////////////// // PREPARATION /////////////////////////////////////////////////////////////////////////////// var repoName = "MahApps.Metro.SimpleChildWindow"; -var isLocal = BuildSystem.IsLocalBuild; - -// Set build version -if (isLocal == false || verbosity == Verbosity.Verbose) -{ - GitVersion(new GitVersionSettings { OutputType = GitVersionOutput.BuildServer }); -} -GitVersion gitVersion = GitVersion(new GitVersionSettings { OutputType = GitVersionOutput.Json }); +var baseDir = MakeAbsolute(Directory(".")).ToString(); +var srcDir = baseDir + "/src"; +var solution = srcDir + "/MahApps.Metro.SimpleChildWindow.sln"; +var publishDir = baseDir + "/Publish"; -var isPullRequest = AppVeyor.Environment.PullRequest.IsPullRequest; -var branchName = gitVersion.BranchName; -var isDevelopBranch = StringComparer.OrdinalIgnoreCase.Equals("develop", branchName); -var isReleaseBranch = StringComparer.OrdinalIgnoreCase.Equals("main", branchName); -var isTagged = AppVeyor.Environment.Repository.Tag.IsTag; +var styler = Context.Tools.Resolve("xstyler.exe"); +var stylerFile = baseDir + "/Settings.XAMLStyler"; -var latestInstallationPath = VSWhereLatest(new VSWhereLatestSettings { IncludePrerelease = true }); -var msBuildPath = latestInstallationPath.Combine("./MSBuild/Current/Bin"); -var msBuildPathExe = msBuildPath.CombineWithFilePath("./MSBuild.exe"); - -if (FileExists(msBuildPathExe) == false) +public class BuildData { - throw new NotImplementedException("You need at least Visual Studio 2019 to build this project."); -} + public string Configuration { get; } + public Verbosity Verbosity { get; } + public DotNetVerbosity DotNetVerbosity { get; } + public bool IsLocalBuild { get; set; } + public bool IsPullRequest { get; set; } + public bool IsDevelopBranch { get; set; } + public bool IsReleaseBranch { get; set; } + public GitVersion GitVersion { get; set; } + + public BuildData( + string configuration, + Verbosity verbosity, + DotNetVerbosity dotNetVerbosity + ) + { + Configuration = configuration; + Verbosity = verbosity; + DotNetVerbosity = dotNetVerbosity; + } -// Directories and Paths -var solution = "./src/MahApps.Metro.SimpleChildWindow.sln"; -var publishDir = "./Publish"; + public void SetGitVersion(GitVersion gitVersion) + { + GitVersion = gitVersion; + + IsDevelopBranch = StringComparer.OrdinalIgnoreCase.Equals("develop", GitVersion.BranchName); + IsReleaseBranch = StringComparer.OrdinalIgnoreCase.Equals("main", GitVersion.BranchName); + } +} /////////////////////////////////////////////////////////////////////////////// // SETUP / TEARDOWN /////////////////////////////////////////////////////////////////////////////// -Setup(ctx => +Setup(ctx => { if (!IsRunningOnWindows()) { @@ -64,15 +74,40 @@ Setup(ctx => Information(Figlet(repoName)); - Information("Informational Version: {0}", gitVersion.InformationalVersion); - Information("SemVer Version: {0}", gitVersion.SemVer); - Information("AssemblySemVer Version: {0}", gitVersion.AssemblySemVer); - Information("MajorMinorPatch Version: {0}", gitVersion.MajorMinorPatch); - Information("NuGet Version: {0}", gitVersion.NuGetVersion); - Information("IsLocalBuild : {0}", isLocal); - Information("Branch : {0}", branchName); - Information("Configuration : {0}", configuration); - Information("MSBuildPath : {0}", msBuildPath); + var gitVersionPath = Context.Tools.Resolve("gitversion.exe"); + + Information("GitVersion : {0}", gitVersionPath); + + var buildData = new BuildData( + configuration: Argument("configuration", "Release"), + verbosity: Argument("verbosity", Verbosity.Minimal), + dotNetVerbosity: Argument("dotNetVerbosity", DotNetVerbosity.Minimal) + ) + { + IsLocalBuild = BuildSystem.IsLocalBuild, + IsPullRequest = + (BuildSystem.GitHubActions.IsRunningOnGitHubActions && BuildSystem.GitHubActions.Environment.PullRequest.IsPullRequest) + || (BuildSystem.AppVeyor.IsRunningOnAppVeyor && BuildSystem.AppVeyor.Environment.PullRequest.IsPullRequest) + }; + + // Set build version for CI + if (buildData.IsLocalBuild == false || buildData.Verbosity == Verbosity.Verbose) + { + GitVersion(new GitVersionSettings { ToolPath = gitVersionPath, OutputType = GitVersionOutput.BuildServer }); + } + buildData.SetGitVersion(GitVersion(new GitVersionSettings { ToolPath = gitVersionPath, OutputType = GitVersionOutput.Json })); + + Information("Branch : {0}", buildData.GitVersion.BranchName); + Information("Configuration : {0}", buildData.Configuration); + Information("IsLocalBuild : {0}", buildData.IsLocalBuild); + Information("Informational Version: {0}", buildData.GitVersion.InformationalVersion); + Information("SemVer Version: {0}", buildData.GitVersion.SemVer); + Information("AssemblySemVer Version: {0}", buildData.GitVersion.AssemblySemVer); + Information("MajorMinorPatch Version: {0}", buildData.GitVersion.MajorMinorPatch); + Information("NuGet Version: {0}", buildData.GitVersion.NuGetVersion); + Information("Verbosity : {0}", buildData.Verbosity); + + return buildData; }); Teardown(ctx => @@ -87,66 +122,114 @@ Task("Clean") .ContinueOnError() .Does(() => { + var filesToDelete = GetFiles("**/*_wpftmp.csproj") + ; + DeleteFiles(filesToDelete); + var directoriesToDelete = GetDirectories("./**/obj") .Concat(GetDirectories("./**/bin")) - .Concat(GetDirectories("./**/Publish")); + .Concat(GetDirectories("./**/Publish")) + ; DeleteDirectories(directoriesToDelete, new DeleteDirectorySettings { Recursive = true, Force = true }); }); Task("Restore") - .Does(() => + .Does(data => { - NuGetRestore(solution, new NuGetRestoreSettings { MSBuildPath = msBuildPath.ToString() }); + DotNetRestore(solution); }); Task("Build") - .Does(() => + .Does(data => { - var msBuildSettings = new MSBuildSettings { - Verbosity = verbosity - , ToolPath = msBuildPathExe - , Configuration = configuration - , ArgumentCustomization = args => args.Append("/m").Append("/nr:false") // The /nr switch tells msbuild to quite once it’s done - , BinaryLogger = new MSBuildBinaryLogSettings() { Enabled = isLocal } + var msbuildSettings = new DotNetMSBuildSettings + { + MaxCpuCount = 0, + Version = data.IsReleaseBranch ? data.GitVersion.MajorMinorPatch : data.GitVersion.NuGetVersion, + AssemblyVersion = data.GitVersion.AssemblySemVer, + FileVersion = data.GitVersion.AssemblySemFileVer, + InformationalVersion = data.GitVersion.InformationalVersion, + ContinuousIntegrationBuild = data.IsReleaseBranch, + ArgumentCustomization = args => args.Append("/m").Append("/nr:false"), // The /nr switch tells msbuild to quite once it's done + BinaryLogger = new MSBuildBinaryLoggerSettings() { Enabled = data.IsLocalBuild } }; - MSBuild(solution, msBuildSettings - .SetMaxCpuCount(0) - .WithProperty("Version", isReleaseBranch ? gitVersion.MajorMinorPatch : gitVersion.NuGetVersion) - .WithProperty("AssemblyVersion", gitVersion.AssemblySemVer) - .WithProperty("FileVersion", gitVersion.AssemblySemFileVer) - .WithProperty("InformationalVersion", gitVersion.InformationalVersion) - .WithProperty("ContinuousIntegrationBuild", isReleaseBranch || isLocal ? "true" : "false") - ); + // msbuildSettings.FileLoggers.Add( + // new MSBuildFileLoggerSettings + // { + // LogFile = buildLogFile, + // AppendToLogFile = true, + // Verbosity = data.DotNetVerbosity + // } + // ); + + var settings = new DotNetBuildSettings + { + MSBuildSettings = msbuildSettings, + Configuration = data.Configuration, + Verbosity = data.DotNetVerbosity, + NoRestore = true + }; + + DotNetBuild(solution, settings); }); Task("Pack") .ContinueOnError() - .Does(() => + .Does(data => { EnsureDirectoryExists(Directory(publishDir)); - var msBuildSettings = new MSBuildSettings { - Verbosity = verbosity - , ToolPath = msBuildPathExe - , Configuration = configuration + var msbuildSettings = new DotNetMSBuildSettings + { + MaxCpuCount = 0, + Version = data.IsReleaseBranch ? data.GitVersion.MajorMinorPatch : data.GitVersion.NuGetVersion, + AssemblyVersion = data.GitVersion.AssemblySemVer, + FileVersion = data.GitVersion.AssemblySemFileVer, + InformationalVersion = data.GitVersion.InformationalVersion + } + .WithProperty("IncludeBuildOutput", "true") + .WithProperty("RepositoryBranch", data.GitVersion.BranchName) + .WithProperty("RepositoryCommit", data.GitVersion.Sha) + ; + // msbuildSettings.FileLoggers.Add( + // new MSBuildFileLoggerSettings + // { + // LogFile = buildLogFile, + // AppendToLogFile = true, + // Verbosity = DotNetVerbosity.Minimal + // } + // ); + + var settings = new DotNetPackSettings + { + Configuration = data.Configuration, + OutputDirectory = MakeAbsolute(Directory(publishDir)).FullPath, + MSBuildSettings = msbuildSettings, + NoBuild = true, + NoRestore = true }; var project = "./src/MahApps.Metro.SimpleChildWindow/MahApps.Metro.SimpleChildWindow.csproj"; - MSBuild(project, msBuildSettings - .WithTarget("pack") - .WithProperty("NoBuild", "true") - .WithProperty("IncludeBuildOutput", "true") - .WithProperty("PackageOutputPath", "../../" + publishDir) - .WithProperty("RepositoryBranch", branchName) - .WithProperty("RepositoryCommit", gitVersion.Sha) - .WithProperty("Version", isReleaseBranch ? gitVersion.MajorMinorPatch : gitVersion.NuGetVersion) - .WithProperty("AssemblyVersion", gitVersion.AssemblySemVer) - .WithProperty("FileVersion", gitVersion.AssemblySemFileVer) - .WithProperty("InformationalVersion", gitVersion.InformationalVersion) - ); + DotNetPack(project, settings); }); -void SignFiles(IEnumerable files, string description) +Task("Sign") + .WithCriteria((context, data) => !data.IsPullRequest) + .ContinueOnError() + .Does(() => +{ + var files = GetFiles("./src/MahApps.Metro.SimpleChildWindow/bin/**/*/MahApps.Metro.SimpleChildWindow.dll"); + SignFiles(files, "MahApps.Metro.SimpleChildWindow, a simple child window for MahApps.Metro."); + + files = GetFiles("./src/MahApps.Metro.SimpleChildWindow.Demo/**/bin/**/*.exe"); + SignFiles(files, "Demo application of MahApps.Metro.SimpleChildWindow, a simple child window for MahApps.Metro."); +}); + +Task("SignNuGet") + .WithCriteria((context, data) => !data.IsPullRequest) + .WithCriteria((context, data) => DirectoryExists(Directory(publishDir))) + .ContinueOnError() + .Does(() => { var vurl = EnvironmentVariable("azure-key-vault-url"); if(string.IsNullOrWhiteSpace(vurl)) { @@ -178,70 +261,75 @@ void SignFiles(IEnumerable files, string description) return; } - foreach(var file in files) + var nugetFiles = GetFiles(publishDir + "/*.nupkg"); + var signTool = Context.Tools.Resolve("NuGetKeyVaultSignTool.exe"); + + foreach(var file in nugetFiles) { Information($"Sign file: {file}"); - var processSettings = new ProcessSettings { - RedirectStandardOutput = true, - RedirectStandardError = true, - Arguments = new ProcessArgumentBuilder() - .Append("sign") - .Append(MakeAbsolute(file).FullPath) - .AppendSwitchQuoted("--file-digest", "sha256") - .AppendSwitchQuoted("--description", description) - .AppendSwitchQuoted("--description-url", "https://github.com/punker76/MahApps.Metro.SimpleChildWindow") - .Append("--no-page-hashing") - .AppendSwitchQuoted("--timestamp-rfc3161", "http://timestamp.digicert.com") - .AppendSwitchQuoted("--timestamp-digest", "sha256") - .AppendSwitchQuoted("--azure-key-vault-url", vurl) - .AppendSwitchQuotedSecret("--azure-key-vault-client-id", vcid) - .AppendSwitchQuotedSecret("--azure-key-vault-tenant-id", vctid) - .AppendSwitchQuotedSecret("--azure-key-vault-client-secret", vcs) - .AppendSwitchQuotedSecret("--azure-key-vault-certificate", vc) - }; - - using(var process = StartAndReturnProcess("tools/AzureSignTool", processSettings)) - { - process.WaitForExit(); - - if (process.GetStandardOutput().Any()) - { - Information($"Output:{Environment.NewLine}{string.Join(Environment.NewLine, process.GetStandardOutput())}"); - } - - if (process.GetStandardError().Any()) - { - Information($"Errors occurred:{Environment.NewLine}{string.Join(Environment.NewLine, process.GetStandardError())}"); - } - - // This should output 0 as valid arguments supplied - Information("Exit code: {0}", process.GetExitCode()); - } + + ExecuteProcess(signTool, + new ProcessArgumentBuilder() + .Append("sign") + .Append(MakeAbsolute(file).FullPath) + .Append("--force") + .AppendSwitchQuoted("--file-digest", "sha256") + .AppendSwitchQuoted("--timestamp-rfc3161", "http://timestamp.digicert.com") + .AppendSwitchQuoted("--timestamp-digest", "sha256") + .AppendSwitchQuoted("--azure-key-vault-url", vurl) + .AppendSwitchQuotedSecret("--azure-key-vault-client-id", vcid) + .AppendSwitchQuotedSecret("--azure-key-vault-tenant-id", vctid) + .AppendSwitchQuotedSecret("--azure-key-vault-client-secret", vcs) + .AppendSwitchQuotedSecret("--azure-key-vault-certificate", vc) + ); } -} +}); -Task("Sign") - .WithCriteria(() => !isPullRequest) - .ContinueOnError() - .Does(() => +Task("Zip") + .Does(data => { - var files = GetFiles("./src/MahApps.Metro.SimpleChildWindow/bin/**/*/MahApps.Metro.SimpleChildWindow.dll"); - SignFiles(files, "MahApps.Metro.SimpleChildWindow, a simple child window for MahApps.Metro."); + EnsureDirectoryExists(Directory(publishDir)); - files = GetFiles("./src/MahApps.Metro.SimpleChildWindow.Demo/**/bin/**/*.exe"); - SignFiles(files, "Demo application of MahApps.Metro.SimpleChildWindow, a simple child window for MahApps.Metro."); + Zip("./src/MahApps.Metro.SimpleChildWindow.Demo/bin/" + data.Configuration, publishDir + "/MahApps.Metro.SimpleChildWindow-v" + data.GitVersion.NuGetVersion + ".zip"); }); -Task("SignNuGet") - .WithCriteria(() => !isPullRequest) - .ContinueOnError() +Task("StyleXaml") + .Description("Ensures XAML Formatting is Clean") .Does(() => { - if (!DirectoryExists(Directory(publishDir))) + Func exclude_Dir = + fileSystemInfo => !fileSystemInfo.Path.Segments.Contains("obj"); + + var files = GetFiles(srcDir + "/**/*.xaml", new GlobberSettings { Predicate = exclude_Dir }); + Information("\nChecking " + files.Count() + " file(s) for XAML Structure"); + ExecuteProcess(styler, "-f \"" + string.Join(",", files.Select(f => f.ToString())) + "\" -c \"" + stylerFile + "\""); +}); + +Task("CreateRelease") + .WithCriteria((context, data) => !data.IsPullRequest) + .Does(data => +{ + var token = EnvironmentVariable("GITHUB_TOKEN"); + if (string.IsNullOrEmpty(token)) { - return; + throw new Exception("The GITHUB_TOKEN environment variable is not defined."); } + GitReleaseManagerCreate(token, "punker76", repoName, new GitReleaseManagerCreateSettings { + Milestone = data.GitVersion.MajorMinorPatch, + Name = data.GitVersion.AssemblySemFileVer, + Prerelease = data.IsDevelopBranch, + TargetCommitish = data.GitVersion.BranchName, + WorkingDirectory = "." + }); +}); + +/////////////////////////////////////////////////////////////////////////////// +// HELPER +/////////////////////////////////////////////////////////////////////////////// + +void SignFiles(IEnumerable files, string description) +{ var vurl = EnvironmentVariable("azure-key-vault-url"); if(string.IsNullOrWhiteSpace(vurl)) { Error("Could not resolve signing url."); @@ -254,6 +342,12 @@ Task("SignNuGet") return; } + var vctid = EnvironmentVariable("azure-key-vault-tenant-id"); + if(string.IsNullOrWhiteSpace(vctid)) { + Error("Could not resolve signing client tenant id."); + return; + } + var vcs = EnvironmentVariable("azure-key-vault-client-secret"); if(string.IsNullOrWhiteSpace(vcs)) { Error("Could not resolve signing client secret."); @@ -266,73 +360,73 @@ Task("SignNuGet") return; } - var nugetFiles = GetFiles(publishDir + "/*.nupkg"); - foreach(var file in nugetFiles) + var filesToSign = string.Join(" ", files.Select(f => MakeAbsolute(f).FullPath)); + var azureSignTool = Context.Tools.Resolve("azuresigntool.exe"); + + ExecuteProcess(azureSignTool, + new ProcessArgumentBuilder() + .Append("sign") + .Append(filesToSign) + .AppendSwitchQuoted("--file-digest", "sha256") + .AppendSwitchQuoted("--description", description) + .AppendSwitchQuoted("--description-url", "https://github.com/punker76/MahApps.Metro.SimpleChildWindow") + .Append("--no-page-hashing") + .AppendSwitchQuoted("--timestamp-rfc3161", "http://timestamp.digicert.com") + .AppendSwitchQuoted("--timestamp-digest", "sha256") + .AppendSwitchQuoted("--azure-key-vault-url", vurl) + .AppendSwitchQuotedSecret("--azure-key-vault-client-id", vcid) + .AppendSwitchQuotedSecret("--azure-key-vault-tenant-id", vctid) + .AppendSwitchQuotedSecret("--azure-key-vault-client-secret", vcs) + .AppendSwitchQuotedSecret("--azure-key-vault-certificate", vc) + ); +} + +void ExecuteProcess(FilePath fileName, ProcessArgumentBuilder arguments, string workingDirectory = null) +{ + if (!FileExists(fileName)) + { + throw new Exception($"File not found: {fileName}"); + } + + var processSettings = new ProcessSettings + { + RedirectStandardOutput = true, + RedirectStandardError = true, + Arguments = arguments + }; + + if (!string.IsNullOrEmpty(workingDirectory)) + { + processSettings.WorkingDirectory = workingDirectory; + } + + Information($"Arguments: {arguments.RenderSafe()}"); + + using(var process = StartAndReturnProcess(fileName, processSettings)) + { + process.WaitForExit(); + + if (process.GetStandardOutput().Any()) { - Information($"Sign file: {file}"); - var processSettings = new ProcessSettings { - RedirectStandardOutput = true, - RedirectStandardError = true, - Arguments = new ProcessArgumentBuilder() - .Append("sign") - .Append(MakeAbsolute(file).FullPath) - .Append("--force") - .AppendSwitchQuoted("--file-digest", "sha256") - .AppendSwitchQuoted("--timestamp-rfc3161", "http://timestamp.digicert.com") - .AppendSwitchQuoted("--timestamp-digest", "sha256") - .AppendSwitchQuoted("--azure-key-vault-url", vurl) - .AppendSwitchQuotedSecret("--azure-key-vault-client-id", vcid) - .AppendSwitchQuotedSecret("--azure-key-vault-client-secret", vcs) - .AppendSwitchQuotedSecret("--azure-key-vault-certificate", vc) - }; - - using(var process = StartAndReturnProcess("tools/NuGetKeyVaultSignTool", processSettings)) - { - process.WaitForExit(); - - if (process.GetStandardOutput().Any()) - { - Information($"Output:{Environment.NewLine}{string.Join(Environment.NewLine, process.GetStandardOutput())}"); - } - - if (process.GetStandardError().Any()) - { - Information($"Errors occurred:{Environment.NewLine}{string.Join(Environment.NewLine, process.GetStandardError())}"); - } - - // This should output 0 as valid arguments supplied - Information("Exit code: {0}", process.GetExitCode()); - } + Information($"Output:{Environment.NewLine} {string.Join(Environment.NewLine, process.GetStandardOutput())}"); } -}); -Task("Zip") - .Does(() => -{ - EnsureDirectoryExists(Directory(publishDir)); + if (process.GetStandardError().Any()) + { + // Information($"Errors occurred:{Environment.NewLine} {string.Join(Environment.NewLine, process.GetStandardError())}"); + throw new Exception($"Errors occurred:{Environment.NewLine} {string.Join(Environment.NewLine, process.GetStandardError())}"); + } - Zip("./src/MahApps.Metro.SimpleChildWindow.Demo/bin/" + configuration, publishDir + "/MahApps.Metro.SimpleChildWindow-v" + gitVersion.NuGetVersion + ".zip"); -}); + // This should output 0 as valid arguments supplied + var exitCode = process.GetExitCode(); + Information($"Exit code: {exitCode}"); -Task("CreateRelease") - .WithCriteria(() => !isTagged) - .WithCriteria(() => !isPullRequest) - .Does(() => -{ - var token = EnvironmentVariable("GITHUB_TOKEN"); - if (string.IsNullOrEmpty(token)) + if (exitCode > 0) { - throw new Exception("The GITHUB_TOKEN environment variable is not defined."); + throw new Exception($"Exit code: {exitCode}"); } - - GitReleaseManagerCreate(token, "punker76", repoName, new GitReleaseManagerCreateSettings { - Milestone = gitVersion.MajorMinorPatch, - Name = gitVersion.AssemblySemFileVer, - Prerelease = isDevelopBranch, - TargetCommitish = branchName, - WorkingDirectory = "." - }); -}); + } +} /////////////////////////////////////////////////////////////////////////////// // TASK TARGETS @@ -341,9 +435,11 @@ Task("CreateRelease") Task("Default") .IsDependentOn("Clean") .IsDependentOn("Restore") - .IsDependentOn("Build"); + .IsDependentOn("StyleXaml") + .IsDependentOn("Build") + ; -Task("appveyor") +Task("ci") .IsDependentOn("Default") .IsDependentOn("Sign") .IsDependentOn("Pack") From 96560c0cdce006e0f9963c82d74b3f61a01e3230 Mon Sep 17 00:00:00 2001 From: punker76 Date: Sun, 29 Oct 2023 00:34:28 +0200 Subject: [PATCH 2/3] ci: update github actions --- .github/workflows/build.yml | 47 ------------------------------------- .github/workflows/ci.yml | 39 ++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 47 deletions(-) delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 6864cd1..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Build - -on: - push: - branches: - - main - - develop - pull_request: - branches: - - develop - -jobs: - windows-latest: - name: windows-latest - runs-on: windows-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Install gpr tool - # Helper tool from Jamie Cansdale (GitHub Support) Thx!!! - run: dotnet tool install --tool-path tools gpr - - name: Build with Cake Action - env: - azure-key-vault-url: ${{ secrets.AZURE_KEY_VAULT_URL }} - azure-key-vault-client-id: ${{ secrets.AZURE_KEY_VAULT_CLIENT_ID }} - azure-key-vault-tenant-id: ${{ secrets.AZURE_KEY_VAULT_TENANT_ID }} - azure-key-vault-client-secret: ${{ secrets.AZURE_KEY_VAULT_CLIENT_SECRET }} - azure-key-vault-certificate: ${{ secrets.AZURE_KEY_VAULT_CERTIFICATE }} - uses: cake-build/cake-action@v1 - with: - cake-version: 1.3.0 - cake-bootstrap: true - verbosity: Normal - script-path: build.cake - target: appveyor - - name: Publish NuGet - if: success() - #run: dotnet nuget push Publish\*.nupkg --source https://nuget.pkg.github.com/punker76/MahApps.Metro.SimpleChildWindow/index.json -k ${{ secrets.PACKAGE_ACCESS_TOKEN }} - run: tools/gpr push Publish\*.nupkg -k ${{ secrets.GITHUB_TOKEN }} - - name: Upload Artifacts - if: success() - uses: actions/upload-artifact@v2 - with: - # A file, directory or wildcard pattern that describes what to upload - path: Publish/*.* diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..987679c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,39 @@ + +name: ci + +on: + push: + branches: + - main + - develop + pull_request: + branches: + - develop + +jobs: + windows-latest: + name: windows-latest + runs-on: windows-latest + steps: + - uses: actions/checkout@v1 + - name: Setup .NET + uses: actions/setup-dotnet@v1 + with: + dotnet-version: | + 5.x + 6.x + - name: List dotnet sdks + run: dotnet --list-sdks + - name: Run the Cake script + uses: cake-build/cake-action@v1 + with: + cake-version: tool-manifest + verbosity: Normal + script-path: build.cake + target: ci + env: + azure-key-vault-url: ${{ secrets.AZURE_KEY_VAULT_URL }} + azure-key-vault-client-id: ${{ secrets.AZURE_KEY_VAULT_CLIENT_ID }} + azure-key-vault-tenant-id: ${{ secrets.AZURE_KEY_VAULT_TENANT_ID }} + azure-key-vault-client-secret: ${{ secrets.AZURE_KEY_VAULT_CLIENT_SECRET }} + azure-key-vault-certificate: ${{ secrets.AZURE_KEY_VAULT_CERTIFICATE }} From 5cb58e81dd26b1c3c113ab84198dab80a72797c6 Mon Sep 17 00:00:00 2001 From: punker76 Date: Sun, 29 Oct 2023 00:39:39 +0200 Subject: [PATCH 3/3] chore: remove net452, net46, .NET Core 3.0, .NET Core 3.1 support --- src/Directory.build.props | 2 +- src/MahApps.Metro.SimpleChildWindow.Demo/App.net452.config | 6 ------ src/MahApps.Metro.SimpleChildWindow.Demo/App.net46.config | 6 ------ src/MahApps.Metro.SimpleChildWindow.Demo/App.net47.config | 6 ------ .../MahApps.Metro.SimpleChildWindow.Demo.csproj | 7 ------- 5 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 src/MahApps.Metro.SimpleChildWindow.Demo/App.net452.config delete mode 100644 src/MahApps.Metro.SimpleChildWindow.Demo/App.net46.config delete mode 100644 src/MahApps.Metro.SimpleChildWindow.Demo/App.net47.config diff --git a/src/Directory.build.props b/src/Directory.build.props index 6b65a01..61271c3 100644 --- a/src/Directory.build.props +++ b/src/Directory.build.props @@ -1,7 +1,7 @@ - net452;net46;net47;netcoreapp3.0;netcoreapp3.1 + net462;net47;net48;net5.0-windows;net6.0-windows true false true diff --git a/src/MahApps.Metro.SimpleChildWindow.Demo/App.net452.config b/src/MahApps.Metro.SimpleChildWindow.Demo/App.net452.config deleted file mode 100644 index 0cc25ad..0000000 --- a/src/MahApps.Metro.SimpleChildWindow.Demo/App.net452.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/MahApps.Metro.SimpleChildWindow.Demo/App.net46.config b/src/MahApps.Metro.SimpleChildWindow.Demo/App.net46.config deleted file mode 100644 index 69f7224..0000000 --- a/src/MahApps.Metro.SimpleChildWindow.Demo/App.net46.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/MahApps.Metro.SimpleChildWindow.Demo/App.net47.config b/src/MahApps.Metro.SimpleChildWindow.Demo/App.net47.config deleted file mode 100644 index 174c45a..0000000 --- a/src/MahApps.Metro.SimpleChildWindow.Demo/App.net47.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/MahApps.Metro.SimpleChildWindow.Demo/MahApps.Metro.SimpleChildWindow.Demo.csproj b/src/MahApps.Metro.SimpleChildWindow.Demo/MahApps.Metro.SimpleChildWindow.Demo.csproj index 5f24b52..44f2c5a 100644 --- a/src/MahApps.Metro.SimpleChildWindow.Demo/MahApps.Metro.SimpleChildWindow.Demo.csproj +++ b/src/MahApps.Metro.SimpleChildWindow.Demo/MahApps.Metro.SimpleChildWindow.Demo.csproj @@ -32,13 +32,6 @@ - - - - $(AssemblyName).exe.config - - -