commit 238ff88323f0b48183bd8f07ed5789065096241c Author: manuel.sowada Date: Sun Apr 5 12:09:56 2026 +0200 Initial commit – alle alten Commits entfernt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed6d1d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,402 @@ +# ---> VisualStudio +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +# but not Directory.Build.rsp, as it configures directory-level build defaults +!Directory.Build.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + diff --git a/.vs/GFATask/project-colors.json b/.vs/GFATask/project-colors.json new file mode 100644 index 0000000..2b0f6a1 --- /dev/null +++ b/.vs/GFATask/project-colors.json @@ -0,0 +1,36 @@ +{ + "Version": 1, + "ProjectMap": { + "bea96733-dfdb-4e00-9cd9-c3e9b1e1d031": { + "ProjectGuid": "bea96733-dfdb-4e00-9cd9-c3e9b1e1d031", + "DisplayName": "GFATask", + "ColorIndex": 0 + }, + "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3": { + "ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3", + "DisplayName": "Sonstige Dateien", + "ColorIndex": -1 + }, + "900e3b22-4f33-4922-906c-98cdd660e763": { + "ProjectGuid": "900e3b22-4f33-4922-906c-98cdd660e763", + "DisplayName": "CustomControls", + "ColorIndex": 1 + }, + "2a54c8a7-b200-47a3-b50a-b69590e75287": { + "ProjectGuid": "2a54c8a7-b200-47a3-b50a-b69590e75287", + "DisplayName": "FormEx", + "ColorIndex": 2 + }, + "d1fb006d-da04-4bd4-8827-c6899752a58e": { + "ProjectGuid": "d1fb006d-da04-4bd4-8827-c6899752a58e", + "DisplayName": "SystemManagement", + "ColorIndex": 3 + }, + "04dde1a2-453d-4717-9221-5b9c5a49f010": { + "ProjectGuid": "04dde1a2-453d-4717-9221-5b9c5a49f010", + "DisplayName": "Models", + "ColorIndex": 4 + } + }, + "NextColorIndex": 5 +} \ No newline at end of file diff --git a/.vs/GFATask/v16/.suo b/.vs/GFATask/v16/.suo new file mode 100644 index 0000000..02faff5 Binary files /dev/null and b/.vs/GFATask/v16/.suo differ diff --git a/.vs/GFATask/v17/.suo b/.vs/GFATask/v17/.suo new file mode 100644 index 0000000..a4c4d9a Binary files /dev/null and b/.vs/GFATask/v17/.suo differ diff --git a/GFATask.sln b/GFATask.sln new file mode 100644 index 0000000..e1f729d --- /dev/null +++ b/GFATask.sln @@ -0,0 +1,71 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32014.148 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GFATask", "GFATask\GFATask.csproj", "{BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomControls", "..\DLLs\CustomControls\CustomControls.csproj", "{900E3B22-4F33-4922-906C-98CDD660E763}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Models", "Models\Models.csproj", "{04DDE1A2-453D-4717-9221-5B9C5A49F010}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemManagement", "..\DLLs\SystemManagement\SystemManagement.csproj", "{D1FB006D-DA04-4BD4-8827-C6899752A58E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormEx", "..\DLLs\FormEx\FormEx.csproj", "{2A54C8A7-B200-47A3-B50A-B69590E75287}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Debug|x64.ActiveCfg = Debug|Any CPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Debug|x64.Build.0 = Debug|Any CPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Release|Any CPU.Build.0 = Release|Any CPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Release|x64.ActiveCfg = Release|Any CPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031}.Release|x64.Build.0 = Release|Any CPU + {900E3B22-4F33-4922-906C-98CDD660E763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {900E3B22-4F33-4922-906C-98CDD660E763}.Debug|Any CPU.Build.0 = Debug|Any CPU + {900E3B22-4F33-4922-906C-98CDD660E763}.Debug|x64.ActiveCfg = Debug|Any CPU + {900E3B22-4F33-4922-906C-98CDD660E763}.Debug|x64.Build.0 = Debug|Any CPU + {900E3B22-4F33-4922-906C-98CDD660E763}.Release|Any CPU.ActiveCfg = Release|Any CPU + {900E3B22-4F33-4922-906C-98CDD660E763}.Release|Any CPU.Build.0 = Release|Any CPU + {900E3B22-4F33-4922-906C-98CDD660E763}.Release|x64.ActiveCfg = Release|x64 + {900E3B22-4F33-4922-906C-98CDD660E763}.Release|x64.Build.0 = Release|x64 + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Debug|x64.ActiveCfg = Debug|Any CPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Debug|x64.Build.0 = Debug|Any CPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Release|Any CPU.Build.0 = Release|Any CPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Release|x64.ActiveCfg = Release|Any CPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010}.Release|x64.Build.0 = Release|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Debug|x64.ActiveCfg = Debug|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Debug|x64.Build.0 = Debug|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Release|Any CPU.Build.0 = Release|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Release|x64.ActiveCfg = Release|Any CPU + {D1FB006D-DA04-4BD4-8827-C6899752A58E}.Release|x64.Build.0 = Release|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Debug|x64.ActiveCfg = Debug|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Debug|x64.Build.0 = Debug|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Release|Any CPU.Build.0 = Release|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Release|x64.ActiveCfg = Release|Any CPU + {2A54C8A7-B200-47A3-B50A-B69590E75287}.Release|x64.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0C3FA6D5-90AE-4305-8190-074C613D99D6} + EndGlobalSection +EndGlobal diff --git a/GFATask/App.config b/GFATask/App.config new file mode 100644 index 0000000..ee51303 --- /dev/null +++ b/GFATask/App.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/GFATask/Classes/AlternateWebbrowser.cs b/GFATask/Classes/AlternateWebbrowser.cs new file mode 100644 index 0000000..69f71f3 --- /dev/null +++ b/GFATask/Classes/AlternateWebbrowser.cs @@ -0,0 +1,124 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + /// + /// Statische Klasse zum Auslesen der Registrierungseinträge für die installierten Internet Browser + /// + class AlternateWebbrowser + { + /// + /// Gibt das Symbol des Internet Browsers aus + /// + /// Name des Internet Browsers + /// + public static Bitmap GetImage(string browsername = "default") + { + browsername = browsername == "default" ? Config.Main.DefaultWebBrowser : browsername; + Bitmap icon = new Bitmap(1, 1); + if (XObjects.WebBrowsers.Exists(browser => browser.Name == browsername)) + { + var webbrowser = XObjects.WebBrowsers.Find(browser => browser.Name == browsername); + try + { + using (FileStream fs = new FileStream(webbrowser.IconPath, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite)) + { + icon = Icon.FromHandle(Icon.ExtractAssociatedIcon(fs.Name).Handle).ToBitmap(); + //icon = ((Icon)Icon.FromHandle(Icon.ExtractAssociatedIcon(fs.Name).Handle).Clone()).ToBitmap(); + } + } + catch (Exception ex) + { + Log.EventLog.Write("Webbrowser Icon nicht gefunden", LogClassification.LowError, ex); + } + } + return icon; + } + + + /// + /// Findet den Namen anhand des ausführenden Pfades des Internet Browsers. Die Informationen werden aus der Windows-Registrierung ausgelesen + /// + /// Auszuführender Pfad des Internet Browsers + /// + public static string GetName(string browserexec) + { + try + { + if(XObjects.WebBrowsers.Any(browser => browser.Path != "unknown" && browser.Path == browserexec)) + { + return XObjects.WebBrowsers.Find(browser => browserexec == browser.Path).Name; + } + else + { + return ""; + } + } + catch (Exception ex) + { + Log.EventLog.Write("Ungültiger Registrierungseintrag für Browsernamen", LogClassification.CriticalError, ex); + return ""; + } + } + + + /// + /// Gibt den auszuführenden Pfad des Internet Browsers anhand des Namens aus. Die Informationen werden aus der Windows-Registrierung ausgelesen + /// + /// Name des Internet Browsers + /// + public static string GetExec(string browsername = "default") + { + browsername = browsername == "default" ? Config.Main.DefaultWebBrowser : browsername; + string browserexec = ""; + if(XObjects.WebBrowsers.Exists(browser => browser.Name == browsername)) + { + try + { + browserexec = XObjects.WebBrowsers.Find(browser => browser.Name == browsername).Path; + if(browserexec == "unknown") + Log.EventLog.Write("Webbrowser nicht gefunden", LogClassification.LowError); + } + catch (Exception ex) + { + Log.EventLog.Write("Webbrowser nicht gefunden", LogClassification.LowError, ex); + } + } + return browserexec; + } + + + /// + /// Zeichnet das Internet Browser Symbol des ausgewählten Browsers in die untere rechte Ecke des AppButton-Symbols + /// + /// Das AppButton-Symbol + /// Name des Internet Browsers + public static void DrawWebBrowserIcon(Image appImage, string browsername = "default", string appname = "") + { + browsername = browsername == "default" ? Config.Main.DefaultWebBrowser : browsername; + if(XObjects.WebBrowsers.Exists(browser => browser.Name == browsername)) + { + try + { + using (Graphics g = Graphics.FromImage(appImage)) + { + g.DrawImage(GetImage(browsername), new Rectangle(appImage.Width / 2, appImage.Height / 2, appImage.Width / 2, appImage.Height / 2)); + g.Save(); + } + } + catch (Exception ex) + { + Log.EventLog.Write($"Konnte Webbrowser Icon nicht zeichnen [{appname}]", LogClassification.LowError, ex); + } + } + } + } +} diff --git a/GFATask/Classes/AppExecution.cs b/GFATask/Classes/AppExecution.cs new file mode 100644 index 0000000..f4b500a --- /dev/null +++ b/GFATask/Classes/AppExecution.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + /// + /// Beinhaltet Methoden wie und welche App gestartet wird + /// + public class AppExecution + { + /// + /// Startet die App vom bestimmten Pfad mit den gewünschten Argumenten + /// + /// Der auszuführende Befehl zum starten der App + /// Argumente mit der die App ausgeführt werden soll + public static bool FromApp(string name, string command, string args) + { + Stopwatch stopwatch = new Stopwatch(); + stopwatch.Start(); + + try + { + // Handelt es sich weder um eine App Verlinkung, noch um eine SystemApp, wird die Ausführung normal durchgeführt + if (!IsAppLink(name, command) && !StartSystemApp(command)) + { + Process app = new Process(); + app.StartInfo.WorkingDirectory = EnvironmentManager.VariableConverter(Path.GetDirectoryName(command) == null ? command : Path.GetDirectoryName(command), true); + app.StartInfo.FileName = EnvironmentManager.VariableConverter(command, true); + app.StartInfo.Arguments = args; + app.Start(); + stopwatch.Stop(); + return true; + } + return false; + } + catch (Exception ex) + { + stopwatch.Stop(); + Log.EventLog.Write(string.Format("Start der App {0} nach {1}ms fehlgeschlagen", name, (stopwatch.ElapsedMilliseconds).ToString()), LogClassification.Warning, ex); + stopwatch = null; + return false; + } + } + + + /// + /// Prüft, ob es sich um eine verlinkte App handelt und führt den Befehl dieser App aus + /// + /// + private static bool IsAppLink(string name, string command) + { + if (command.StartsWith("APPLNK:")) + { + Models.App applnk = Cast.ToAppLink(command).ToApp(); + foreach (var exec in applnk.Execute) + if (FromApp(name, exec.Command, exec.Args)) + break; + return true; + } + else + { + return false; + } + } + + + private static bool StartSystemApp(string name) + { + bool trueConditions = false; + switch (name) + { + case "kill": + SystemApps.Kill(out trueConditions); + break; + case "settings": + SystemApps.Settings(out trueConditions); + break; + case "adm": + SystemApps.Administration(out trueConditions); + break; + case "info": + SystemApps.Info(out trueConditions); + break; + } + return trueConditions; + } + } +} diff --git a/GFATask/Classes/Casting_Classes.cs b/GFATask/Classes/Casting_Classes.cs new file mode 100644 index 0000000..bef7cca --- /dev/null +++ b/GFATask/Classes/Casting_Classes.cs @@ -0,0 +1,350 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Xml.Serialization; + +namespace GFATask +{ + /// + /// Eine Klasse zur Steuerung der Beliebtheit der App. Je höher der Klickanteil, desto weiter vorne wird der AppButton sortiert + /// + public class Prevalencia + { + private int _id = 0; + /// + /// Die eindeutige Identifikationsnummer der App + /// + public int ID { get => _id; set => _id = value; } + + + private AppType _apptype = AppType.None; + /// + /// Der Apptyp + /// + public AppType AppType { get => _apptype; set => _apptype = value; } + + + private int _countclicks = 0; + /// + /// Wie oft wurde der AppButton angeklickt + /// + public int CountClicks { get => _countclicks; set => _countclicks = value; } + + + public Prevalencia() { } + + /// + /// Eine Struktur zur Steuerung der Beliebtheit der App. Je höher der Klickanteil, desto weiter vorne wird der AppButton sortiert + /// + /// Die eindeutige Identifikationsnummer der App + /// Der Apptyp + /// Wie oft wurde der AppButton angeklickt + public Prevalencia(int id, AppType apptype, int countclicks) + { + ID = id; + AppType = apptype; + _countclicks = countclicks; + } + + + /// + /// Zählt die Klicks hoch und aktualisiert die JSON-Prevalence Konfigurationsdatei + /// + public void CountUp() + { + int _id = ID; + _countclicks++; + ((List)Config.Prevalence.GetType().GetProperty(AppType.ToString()).GetValue(Config.Prevalence)).Find(prev => prev.ID == _id).ClickCounts = CountClicks; + JSON.Save(JSONConfig.Prevalence); + } + } + + + /// + /// Eine Klasse zur Nachverfolgung der angeklickten Apps + /// + public class ClickCounter + { + private int _id = 0; + /// + /// Die eindeutige Identifikationsnummer der App + /// + public int ID { get => _id; set => _id = value; } + + + private string _name = ""; + /// + /// Der Name der App + /// + public string Name { get => _name; set => _name = value; } + + + private DateTime _lastclicked; + /// + /// Wann wurde die App zuletzt genutzt + /// + public DateTime LastClicked { get => _lastclicked; set => _lastclicked = value; } + + + private DateTime _firstclicked; + /// + /// Wann wurde die App das erste Mal genutzt + /// + public DateTime FirstClicked { get => _firstclicked; set => _firstclicked = value; } + + + private AppType _apptype = AppType.None; + /// + /// Der Apptyp + /// + public AppType AppType { get => _apptype; set => _apptype = value; } + + + private int _counts = 0; + /// + /// Wie oft wurde der AppButton angeklickt + /// + public int Counts { get => _counts; set => _counts = value; } + + + public ClickCounter() { } + + /// + /// Eine Klasse zur Nachverfolgung der angeklickten Apps + /// + /// Die eindeutige Identifikationsnummer der App + /// Der Apptyp + /// Appname + /// Anzahl der Benutzerklicks + public ClickCounter(int id, AppType apptype, string name, int counts, DateTime firstclicked) + { + ID = id; + Name = name; + AppType = apptype; + _counts = counts; + _firstclicked = firstclicked; + _lastclicked = DateTime.Now; + } + + + /// + /// Zählt die Klicks hoch und aktualisiert die JSON-AppClickCounter Konfigurationsdatei + /// + public void CountUp() + { + int _id = ID; + string _name = Name; + _counts++; + Models.ClickCounter.AppCounter appcounter = ((List)Config.AppClickCounter.GetType().GetProperty(AppType.ToString()).GetValue(Config.AppClickCounter)).Find(cc => cc.ID == _id); + appcounter.Name = _name; + appcounter.Counts = _counts; + appcounter.LastClicked = DateTime.Now; + JSON.Save(JSONConfig.AppClickCounter); + + + } + } + + + /// + /// Wandelt das ausführbare Kommando einer verknüpften App in eine lesbare Klasse um + /// + public class AppLnk + { + private AppType _apptype = AppType.None; + /// + /// Der Apptyp zur verknüpften App + /// + public AppType AppType { get => _apptype; set => _apptype = value; } + + + private int _id = 0; + /// + /// Die eindeutige Identifikationsnummer der verknüpften App + /// + public int ID { get => _id; set => _id = value; } + + public AppLnk() { } + + /// + /// Gibt die verknüpfte App aus + /// + /// + public Models.App ToApp() + { + return Accessor.GetAppList(_apptype).Apps.Find(app => app.ID == _id); + } + } + + + /// + /// Eine Klasse zum Umwandeln in ein lesbares NewsFeed-Objekt + /// + public class ReadableNewsFeed + { + /// + /// Bestimmt den Namen des NewsFeeds + /// + public string Name { get; } + + /// + /// Bestimmt, ob das Objekt angezeigt werden soll + /// + public bool Aktiv { get; } + + /// + /// Gibt den Pfad zu dem Symbol an, das anstelle des Grünflächenamts-Logos angezeigt werden soll + /// + public string Symbol { get; } + + /// + /// Das anzuzeigende Symbol + /// + public Bitmap Icon { get; } + + /// + /// An welchem Tag startet der NewFeed + /// + public int Starttag { get; } + + /// + /// In welchem Monat startet der NewsFeed + /// + public int Startmonat { get; } + + /// + /// An welchem Tag endet der NewsFeed + /// + public int Endtag { get; } + + /// + /// In welchem Monat endet der NewsFeed + /// + public int Endmonat { get; } + + /// + /// Zeigt an, was in der Titelleiste dargestellt werden soll + /// + public string Titel { get; } + + + /// + /// Klasse zum Umwandeln in ein lesbares NewsFeed-Objekt + /// + /// + public ReadableNewsFeed(Models.NewsFeed newsfeed) + { + Name = newsfeed.Name; + Aktiv = newsfeed.Enable; + Symbol = newsfeed.Icon; + if (File.Exists($"{Paths.NewsFeeds.Icons.Directory}{newsfeed.Icon}")) + Icon = new Bitmap(Image.FromStream(File.OpenRead($"{Paths.NewsFeeds.Icons.Directory}{newsfeed.Icon}")), new Size(16, 16)); + else + Icon = new Bitmap(1, 1); + Starttag = newsfeed.Begin.Day; + Startmonat = newsfeed.Begin.Month; + Endtag = newsfeed.End.Day; + Endmonat = newsfeed.End.Month; + Titel = newsfeed.Title; + } + } + + + /// + /// Gibt Informationen einer Backupkonfiguration wieder + /// + public class ConfigBackup : IComparable + { + private string _filename = ""; + /// + /// Der Dateiname der im Programmpfad liegenden Backupdateien + /// + public string FileName { get => _filename; set => _filename = value; } + + + private string _destination_file = ""; + /// + /// Der Pfad zur Datei, die im Benutzerpfad ersetzt werden soll + /// + public string DestinationFile { get => _destination_file; set => _destination_file = value; } + + + private DateTime _when = default(DateTime); + /// + /// Zu welcher Zeit wurde der Sicherungssatz erstellt + /// + public DateTime When { get => _when; set => _when = value; } + + + private ConfigRecoveryType _recoverytype; + /// + /// Um welchen Typen von Sicherung handelt es sich + /// + public ConfigRecoveryType RecoveryType { get => _recoverytype; set => _recoverytype = value; } + + + /// + /// Gibt Informationen einer Backupkonfiguration wieder + /// + public ConfigBackup() { } + + /// + /// Gibt Informationen einer Backupkonfiguration wieder + /// + /// Dateiname der im Programmpfad liegenden Backupdateien + public ConfigBackup(string filename) + { + _filename = filename; + + _recoverytype = _filename.EndsWith($"_{Path.GetFileNameWithoutExtension(Paths.UserConfig.FullName)}.bak") ? ConfigRecoveryType.UserConfig : + _filename.EndsWith("_favorites.bak") ? ConfigRecoveryType.Favorites : ConfigRecoveryType.Prevalences; + + _destination_file = _recoverytype == ConfigRecoveryType.UserConfig ? Paths.UserConfig.FullName : + _recoverytype == ConfigRecoveryType.Favorites ? Paths.Favorites.Apps.FullName : Paths.Prevalence.FullName; + + string tempdatetime = Path.GetFileNameWithoutExtension(_filename).Trim($"{Environment.UserName.ToLower()}_".ToCharArray()); + _when = DateTime.ParseExact(tempdatetime.Substring(0, 15), "yyyyMMdd-HHmmss", CultureInfo.InvariantCulture); + } + + /// + /// Stellt das Backup wieder her + /// + public void Recover() + { + File.Copy(Paths.Bak.Directory + _filename, _destination_file, true); + + //Creator.StreamCopy(Paths.Bak.Directory + _filename, _destination_file, null); + } + + + public int CompareTo(ConfigBackup other) + { + return this.When.CompareTo(other.When); + } + } + + + /// + /// Klasse zum Auslesen eines GFATaskStreams, welche über die FrontEndRefresh-Klasse zwischen den gestarteten GFATask-Instanzen synchronisiert wird + /// + [XmlRoot("Object")] + public class GFATaskStream + { + [XmlElement("PipeType")] + public NetPipeType PipeType { get; set; } + + + [XmlElement("ClickCounter")] + public ClickCounter ClickCounter { get; set; } + + + [XmlElement("AppType")] + public AppType AppType { get; set; } + + + [XmlElement("App")] + public Models.App App { get; set; } + } +} diff --git a/GFATask/Classes/ConfigBackupClass.cs b/GFATask/Classes/ConfigBackupClass.cs new file mode 100644 index 0000000..4fcd34b --- /dev/null +++ b/GFATask/Classes/ConfigBackupClass.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + /// + /// Beinhaltet das Sichern und Laden von benutzerdefinierten Dateien + /// + class ConfigBackupClass + { + /// + /// Erstellt eine Sicherung der benutzerdefinierten Einstellungen, App-Beliebtheit und Favoriten + /// + public static void Save() + { + Deploy.Templating(typeof(Models.Config.User), Paths.UserConfig.FullName, false, true); + Deploy.AppListTemplate(DeployAppList.Prevalence, false, true); + Deploy.AppListTemplate(DeployAppList.Favorites, false, true); + XObjects.MessageBox("Sicherung der Konfigurationsdateien (Benutzereinstellungen, App-Beliebtheit und Favoriten) erfolgreich", NotifyButtons.OK, NotifyType.Message, new Size(300, 140), "Erfolgreiche Sicherung"); + } + + /// + /// Lädt eine Sicherung der benutzerdefinierten Einstellungen, App-Beliebtheit und/oder Favoriten + /// + public static void Load() + { + DataTable backuptable = new DataTable("Backups"); + backuptable.Columns.Add("Wiederherstellen", typeof(bool)); + backuptable.Columns.Add(new DataColumn("Wiederherstellungstyp", typeof(string))); + backuptable.Columns.Add("Datum", typeof(DateTime)); + backuptable.Columns.Add("Sicherungssatz", typeof(string)); + + foreach (string file in Directory.GetFiles(Paths.Bak.Directory, $"{Environment.UserName.ToLower()}_*")) + { + ConfigBackup backup = new ConfigBackup(file); + backuptable.Rows.Add(false, backup.RecoveryType.GetDescription(), backup.When, Path.GetFileName(backup.FileName)); + } + if (backuptable.Rows.Count == 0) + if (XObjects.MessageBox("Es sind keine Sicherungssätze vorhanden", NotifyButtons.OK, NotifyType.Message, new Size(300, 120), "Keine Sicherungen vorhanden").Result == DialogResult.OK) + return; + backuptable = backuptable.Select("","Wiederherstellungstyp ASC, Datum DESC").CopyToDataTable(); + + + var msgbox = XObjects.MessageBox("", NotifyButtons.OkCancel, NotifyType.DataGrid, new Size(500, 350), "Sicherungen laden", Convert.ChangeType(backuptable, typeof(DataTable))); + if (msgbox.Result == DialogResult.OK) + { + + Dictionary> selected_recoveries = new Dictionary>(); + + foreach (var recovery in backuptable.Rows.Cast().Where(row => (bool)row.ItemArray[0] == true)) + { + ConfigBackup selected = new ConfigBackup(recovery.ItemArray.Last().ToString()); + + if (!selected_recoveries.ContainsKey(selected.RecoveryType)) + selected_recoveries.Add(selected.RecoveryType, new List()); + + selected_recoveries[selected.RecoveryType].Add(selected); + selected_recoveries[selected.RecoveryType].Sort(); + + if (selected_recoveries.ContainsKey(selected.RecoveryType) && selected_recoveries[selected.RecoveryType].Count > 1) + { + var msg = XObjects.MessageBox($"Es wurden mehrere {selected.RecoveryType.GetDescription()} zur Wiederherstellung ausgewählt.\n\n" + + $"Soll die Datei vom {selected_recoveries[selected.RecoveryType].Last().When}\n" + + $"Durch eine Ältere vom {selected.When} ersetzt werden", NotifyButtons.YesNoCancel, NotifyType.Message, new Size(350, 200), "Ersetzen"); + if (msg.Result == DialogResult.Yes) + { + selected.Recover(); + } + else if (msg.Result == DialogResult.No) + continue; + else if (msg.Result == DialogResult.Cancel) + break; + } + else + { + selected.Recover(); + } + } + + } + } + } +} diff --git a/GFATask/Classes/Deploy.cs b/GFATask/Classes/Deploy.cs new file mode 100644 index 0000000..93b5912 --- /dev/null +++ b/GFATask/Classes/Deploy.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace GFATask +{ + /// + /// Eine Klasse die Werkzeuge zum Umgang mit den benötigten Programm-Dateien besitzt. Darunter Sicherungs-, Vorlagen- und Überschreibfunktionen + /// + public class Deploy + { + /// + /// Erzeugt am gewünschten Ort eine neue Datei aus dem Vorlagentypen und überschreibt diese, falls bereits vorhanden. + /// Bei Bedarf kann zuvor eine Sicherung dieser Datei mit Datumsangabe erstellt werden. Kann auch als reine Backup-Funktion genutzt werden. + /// Sofern die Datei bereits vorhanden ist, kann die Variable overwrite auf "false" und dobackup auf "true" gesetzt werden. + /// + /// Gibt den Vorlagentypen an der erzeugt werden soll + /// Ist der gewünschte Pfad, an dem die Vorlage abgelegt wird + /// Sofern bereits eine Datei mit diesem Namen vorhanden ist, wird diese überschrieben + /// Gibt an, ob eine Sicherung der Datei erstellt werden soll + /// + public static bool Templating(Type type, string target, bool overwrite, bool dobackup) + { + var action = new Action(delegate + { + object o = Activator.CreateInstance(type); + JSON.Serialize(o, target); + }); + + if (File.Exists(target)) + { + if (dobackup) + { + string filename = Path.GetFileNameWithoutExtension(target); + string bak_datetime = DateTime.Now.ToString("yyyyMMdd-HHmmss"); + File.Copy(target, $@"{Paths.Bak.Directory}\{Environment.UserName.ToLower()}_{bak_datetime}_{filename}.bak"); + Log.EventLog.Write($"{filename} Backup erstellt", LogClassification.Success); + } + if (overwrite) + { + try + { + string filename = Path.GetFileName(target); + string overwrite_datetime = DateTime.Now.ToString("yyyyMMdd-HHmmss"); + Log.EventLog.Write($"{filename} überschrieben", LogClassification.Success); + action.Invoke(); + return true; + } + catch (Exception ex) + { + Log.EventLog.Write("Vorlage nicht erstellt", LogClassification.Crash, ex); + return false; + } + } + return false; + } + else + { + try + { + action.Invoke(); + return true; + } + catch (Exception ex) + { + Log.EventLog.Write("Vorlage nicht erstellt", LogClassification.MediumError, ex); + return false; + } + } + } + + + + /// + /// Erzeugt im benutzerdefinierten Pfad (%APPDATA%\GFATASK) eine leere Typendatei. Kann auch als reine Backup-Funktion genutzt werden. + /// Sofern die Datei bereits vorhanden ist, kann die Variable overwrite auf "false" und dobackup auf "true" gesetzt werden. + /// + /// Gibt den Typen der AppList an + /// Soll die Datei überschrieben werden + /// Soll eine Sicherung der Datei erzeugt werden + /// + public static bool AppListTemplate(DeployAppList deploytype, bool overwrite, bool dobackup) + { + string targetpath = deploytype == DeployAppList.Prevalence ? Paths.Prevalence.FullName : Paths.Favorites.Apps.FullName; + var action = new Func(delegate + { + try + { + string path = string.Empty; + var list = new object(); + if (deploytype == DeployAppList.Prevalence) + { + list = new Models.Prevalence() + { + Admin = new List(), + Citrix = new List(), + Favorites = new List(), + Menu = new List(), + User = new List() + }; + } + else + { + list = new Models.AppList() { Apps = new List(), Type = AppType.Favorites }; + } + JSON.Serialize(list, targetpath); + return true; + } + catch (Exception ex) + { + Log.EventLog.Write("Vorlage nicht erstellt", LogClassification.MediumError, ex); + return false; + } + }); + + if (File.Exists(targetpath)) + { + if (dobackup) + { + string filename = Path.GetFileNameWithoutExtension(targetpath); + string bak_datetime = DateTime.Now.ToString("yyyyMMdd-HHmmss"); + File.Copy(targetpath, $@"{Paths.Bak.Directory}\{Environment.UserName.ToLower()}_{bak_datetime}_{filename}.bak"); + Config.User.Deploy.Backup = false; + } + if (overwrite) + { + Config.User.Deploy.Overwrite = false; + return action.Invoke(); + } + if(dobackup || overwrite) + JSON.Save(JSONConfig.User); + return false; + } + else + { + return action.Invoke(); + } + } + } + + + + /// + /// Definiert die zu erzeugenden Listen + /// + public enum DeployAppList + { + /// + /// Definiert die Prevalence-(Beliebtheits)-Datei + /// + Prevalence = 0, + + /// + /// Definiert die Favoriten-Datei + /// + Favorites = 1 + } +} diff --git a/GFATask/Classes/FrontEndRefresh.cs b/GFATask/Classes/FrontEndRefresh.cs new file mode 100644 index 0000000..894ec12 --- /dev/null +++ b/GFATask/Classes/FrontEndRefresh.cs @@ -0,0 +1,283 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Reflection; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Xml.Serialization; + +namespace GFATask +{ + /// + /// Stellt eine FrontEnd-Update Klasse dar, welche über eine Datei, Änderungen eines gewissen Typs() ausgibt + /// + /// Welcher Klassentyp wird in der Datei gespeichert + public class FrontEndRefresh + { + /// + /// Löst ein Ereignis mit dem angegebenen Ereignis-Typen () aus, welches eine Veränderung in der Datei entdeckt hat + /// + public event EventHandler> Updated; + + /// + /// Löst ein Ereignis aus, sobald ein Fehler im Programmcode erzeugt wird + /// + public event EventHandler Error; + + /// + /// Threadsichere Ausführung des Update-Ereignisses + /// + private SynchronizationContext synccontext; + + /// + /// Das FileSystemWatcher-Objekt + /// + private FileSystemWatcher fsw; + + /// + /// Pfad zur Datei die überwacht werden soll + /// + private string path; + + /// + /// Verhindert das mehrfache Ausführen einer geänderten Datei (Zugriff und Speichern werden immer als Änderung erkannt) + /// + private Dictionary acceptchange = new Dictionary(); + + + private bool _selfupdate = false; + /// + /// Bestimmt, ob das Update auch bei dem Host ausgeführt wird, der die Datei verändert hat + /// + public bool SelfUpdate + { + get => _selfupdate; + set => _selfupdate = value; + } + + + private bool _active = true; + /// + /// Überprüft, ob Updates an FrontEnds gesendet werden sollen + /// + public bool Active + { + get => _active; + set => _active = value; + } + + /// + /// Stellt eine FrontEnd-Update Klasse dar, welche über eine Datei, Änderungen eines gewissen Typs() ausgibt + /// + /// Gibt den Pfad zur überwachenden Datei an. Ist diese noch nicht vorhanden, wird sie erstellt + public FrontEndRefresh(string filename) + { + try + { + path = filename; + if (!File.Exists(path)) + File.Create(path).Close(); + using(FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + fsw = new FileSystemWatcher(Path.GetDirectoryName(fs.Name), Path.GetFileName(fs.Name)); + fsw.Changed += Fsw_Changed; + } + } + catch (Exception ex) + { + Error?.Invoke(this, new FrontEndErrorEventArgs(ex)); + } + } + + private void Fsw_Changed(object sender, FileSystemEventArgs e) + { + // Diese Methode überspringt die Änderung beim ersten Mal + if (acceptchange.ContainsKey(path)) + acceptchange[path] = true; + else + acceptchange.Add(path, false); + if (acceptchange[path]) + { + try + { + if (synccontext != null) + { + synccontext.Post(s => + { + FrontEndObject o = this.DeserializeObject(); + if (_selfupdate || (!_selfupdate && o.HostName != Dns.GetHostName())) + { + acceptchange.Remove(path); + Updated?.Invoke(this, new FrontEndRefreshEventArgs(o.Data, path, o.CurrentAssembly, o.HostName, o.IPv4, o.UpdateTime)); + } + }, null); + } + else + { + FrontEndObject o = this.DeserializeObject(); + if (_selfupdate || (!_selfupdate && o.HostName != Dns.GetHostName())) + { + acceptchange.Remove(path); + Updated?.Invoke(this, new FrontEndRefreshEventArgs(o.Data, path, o.CurrentAssembly, o.HostName, o.IPv4, o.UpdateTime)); + } + } + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + } + + /// + /// Schreibt das Objekt als XML-Model in die Datei + /// + /// + /// + private void SerializeObject(U toSerialize) + { + synccontext = SynchronizationContext.Current; + System.Serialization.Xml.SerializeToFile(path, toSerialize); + } + + + /// + /// Liest das XML-Model als Objekt, aus der Datei aus + /// + /// + /// + private U DeserializeObject() + { + synccontext = SynchronizationContext.Current; + using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + //if (Verifying.IsFileLocked(new FileInfo(fs.Name))) + // return default(U); + //else + return System.Serialization.Xml.DeserializeFromFile(fs.Name); + } + } + + + /// + /// Führt ein Update am FrontEnd und Remote-FrontEnds aus, sofern die Klasse aktiv / gestartet ist + /// + /// + public void Update(T data) + { + try + { + if (!_active) + return; + + FrontEndObject o = new FrontEndObject() + { + Data = data, + CurrentAssembly = Assembly.GetExecutingAssembly().GetName().Name, + HostName = Dns.GetHostName(), + IPv4 = Net.GetIPv4(Dns.GetHostName()).ToString(), + UpdateTime = DateTime.Now + }; + this.SerializeObject(o); + if (_selfupdate) + { + if (synccontext != null) + synccontext.Post(s => Updated?.Invoke(this, new FrontEndRefreshEventArgs(o.Data, path, o.CurrentAssembly, o.HostName, o.IPv4, o.UpdateTime)), null); + else + Updated?.Invoke(this, new FrontEndRefreshEventArgs(o.Data, path, o.CurrentAssembly, o.HostName, o.IPv4, o.UpdateTime)); + } + } + catch (Exception ex) + { + Error?.Invoke(this, new FrontEndErrorEventArgs(ex)); + } + } + + + /// + /// Startet die Überwachung + /// + public void Start() + { + fsw.EnableRaisingEvents = true; + synccontext = SynchronizationContext.Current; + } + + /// + /// Stopt die Überwachung + /// + public void Stop() + { + fsw.EnableRaisingEvents = false; + } + + + public class FrontEndObject + { + public T Data { get; set; } + public int Length { get; set; } + public string HostName { get; set; } + public string IPv4 { get; set; } + public DateTime UpdateTime { get; set; } + public string CurrentAssembly { get; set; } + + + public FrontEndObject() { } + + new public string ToString() + { + return string.Join("\n", this.GetType().GetProperties().Select(prop => prop.Name + ": " + prop.GetValue(this))); + } + } + + + } + + + public class FrontEndRefreshEventArgs + { + + [JsonProperty("assembly")] + public string Assembly { get; set; } + + [JsonProperty("host")] + public string Host { get; set; } + + [JsonProperty("ipv4")] + public string IPv4 { get; set; } + + [JsonProperty("updatetime")] + public DateTime UpdateTime { get; set; } = DateTime.Now; + + [JsonProperty("path")] + public string Path { get; set; } = string.Empty; + + [JsonProperty("data")] + public T Data { get; set; } + + public FrontEndRefreshEventArgs(T data, string path, string assembly, string host, string ipv4, DateTime updatetime) + { + Data = data; + Path = path; + Assembly = assembly; + Host = host; + IPv4 = ipv4; + UpdateTime = updatetime; + } + } + + + public class FrontEndErrorEventArgs + { + public Exception Ex { get; set; } + + public FrontEndErrorEventArgs(Exception ex) => + Ex = ex; + } +} diff --git a/GFATask/Classes/FrontEndRefreshExecution.cs b/GFATask/Classes/FrontEndRefreshExecution.cs new file mode 100644 index 0000000..0ecfd3d --- /dev/null +++ b/GFATask/Classes/FrontEndRefreshExecution.cs @@ -0,0 +1,92 @@ +using System.Collections; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Reflection; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Xml.Serialization; + +namespace GFATask +{ + public class FrontEndRefreshExecution + { + public static void Updated(object sender, FrontEndRefreshEventArgs e) + { + if(e.Data.PipeType == NetPipeType.ErrorHandle) + { + return; + } + else if (e.Data.PipeType == NetPipeType.AppCounter_CountUp) + { + Forms.Administration.UcAdminAppClickCounter.RefreshList(e.Data.ClickCounter); + } + else if (e.Data.PipeType == NetPipeType.AppCounter_Reset) + { + Forms.Administration.UcAdminAppClickCounter.ResetAppCounter(e.Data.ClickCounter); + } + else if (e.Data.PipeType == NetPipeType.ClickCounter_Clear) + { + Config.AppClickCounter = JSON.Read(Paths.AppClickCounter.FullName); + Forms.Administration.UcAdminAppClickCounter.ClearAppClickCounterList(); + } + else if (e.Data.PipeType == NetPipeType.MainConfig) + { + Config.Main = JSON.Read(Paths.MainConfig.FullName); + Forms.Administration.UcAdminDesigns.SetWindowBorder(); + Forms.Administration.UcAdminDesigns.SetNewDesign(); + Application.OpenForms.OfType().ToList().ForEach(f => f.SetDefaultDesign()); + } + else if(e.Data.PipeType == NetPipeType.Citrix) + { + Config.Main = JSON.Read(Paths.MainConfig.FullName); + Forms.Administration.UcAdminGeneral.ChangeCitrix(); + } + else if(e.Data.PipeType == NetPipeType.FrontEndUpdate) + { + Config.Main = JSON.Read(Paths.MainConfig.FullName); + Forms.Administration.UcAdminGeneral.SetFrontEndUpdate(); + } + else if (e.Data.PipeType == NetPipeType.ActiveDirectory) + { + Config.Main = JSON.Read(Paths.MainConfig.FullName); + Forms.Administration.UcAdminGeneral.UseActiveDirectory(); + } + else if (e.Data.PipeType == NetPipeType.MailAccount) + { + Config.Main = JSON.Read(Paths.MainConfig.FullName); + } + else if (e.Data.PipeType == NetPipeType.Edit && e.Data.AppType != System.AppType.Favorites) + { + var applist = Accessor.GetAppList(e.Data.AppType); + Accessor.GetAppList(e.Data.AppType).Apps[Accessor.GetAppList(e.Data.AppType).Apps.FindIndex(app => app.ID == e.Data.App.ID)] = e.Data.App; + + // BUGFIX - Wenn der Sender einen Button aus, oder in eine Gruppe verschiebt, wird dies nicht richtig übertragen... + // Jetzt wird das gesamte AppListPanel erneuert - UNSCHÖN! + //Accessor.GetAppListPanel(e.Data.AppType).ReplaceButton(e.Data.App); + Creator.AppListPanel(Accessor.GetAppListPanel(e.Data.AppType), applist); + } + else if (e.Data.PipeType == NetPipeType.Delete && e.Data.AppType != System.AppType.Favorites) + { + var applist = Accessor.GetAppList(e.Data.AppType); + applist.Apps.Remove(e.Data.App); + Accessor.GetAppListPanel(e.Data.AppType).RemoveButton(e.Data.App); + } + else if (e.Data.PipeType == NetPipeType.Create && e.Data.AppType != System.AppType.Favorites) + { + var applist = Accessor.GetAppList(e.Data.AppType); + applist.Apps.Add(e.Data.App); + Accessor.GetAppListPanel(e.Data.AppType).AddAppButton(e.Data.App); + } + } + + + public static void OnError(object sender, FrontEndErrorEventArgs e) + { + //Log.EventLog.Write("Fehler in FrontEndRefresh", System.LogClassification.MediumError, e.Ex); + } + } +} diff --git a/GFATask/Classes/Hooks.cs b/GFATask/Classes/Hooks.cs new file mode 100644 index 0000000..fc450a2 --- /dev/null +++ b/GFATask/Classes/Hooks.cs @@ -0,0 +1,131 @@ +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class Hooks + { + #region Mouse + public static void Mouse_Up(MouseHook.MSLLHOOKSTRUCT mousestruct) + { + //Rectangle scaledbounds = new Rectangle((int)(Forms.Main.DesktopBounds.X * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.DesktopBounds.Y * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.Width * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.Height * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main)))); + Rectangle scaledbounds = new Rectangle((int)(Forms.Main.DesktopBounds.X), (int)(Forms.Main.DesktopBounds.Y), (int)(Forms.Main.Width), (int)(Forms.Main.Height)); + //Rectangle scaledbounds = new Rectangle((int)(Forms.Main.Bounds.X * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.Bounds.Y * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.Width * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.Height * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main)))); + Rectangle scaledappgroupbounds = new Rectangle((int)(Forms.AppButtonGroup.DesktopBounds.X * Win32API.GetScalingFactor(Screen.FromControl(Forms.AppButtonGroup))), (int)(Forms.AppButtonGroup.DesktopBounds.Y * Win32API.GetScalingFactor(Screen.FromControl(Forms.AppButtonGroup))), (int)(Forms.AppButtonGroup.Width * Win32API.GetScalingFactor(Screen.FromControl(Forms.AppButtonGroup))), (int)(Forms.AppButtonGroup.Height * Win32API.GetScalingFactor(Screen.FromControl(Forms.AppButtonGroup)))); + Rectangle scaledboundswithoutgrip = new Rectangle(scaledbounds.X + Forms.Main.GripSize - Forms.Main.BorderWidth, scaledbounds.Y, scaledbounds.Width - Forms.Main.GripSize, scaledbounds.Height - Forms.Main.GripSize + Forms.Main.BorderWidth); + bool mouseover = scaledbounds.Contains(mousestruct.Location); + bool mouseoverappgroup = scaledappgroupbounds.Contains(mousestruct.Location); + bool countMAX = XObjects.Delay.Count == XObjects.Delay.MaxCounts; + + if (Forms.Main.SysContextMenu.Visible || Forms.Info.Visible || Forms.Settings.Visible || Forms.Groups.Visible || Forms.AppCreator.Visible || Forms.Administration.Visible || XObjects.ContextMenuStrip.Visible) + return; + + if (Config.User.NecessaryClick) + { + if (scaledboundswithoutgrip.Contains(Cursor.Position)) + { + XObjects.Delay.Waiting = new Delay.DelayTime(Config.User.NecessaryClick ? 0 : Config.User.Delay.Show, Config.User.Delay.Hide); + XObjects.Delay.Increase(); + } + } + + if (!mouseoverappgroup && Forms.AppButtonGroup.Visible) + { + Forms.AppButtonGroup.Hide(); + if (!mouseover) + { + XObjects.Delay.Decrease(); + } + } + else if (!mouseover && Forms.Main.SysContextMenu.Visible) + XObjects.Delay.Decrease(); + } + + public static void Mouse_Move(MouseHook.MSLLHOOKSTRUCT mousestruct) + { + if (XObjects.PausedDelay || Forms.Main.SysContextMenu.Visible || Forms.Info.Visible || Forms.AppButtonGroup.Visible || Forms.Settings.Visible || Forms.Groups.Visible || Forms.AppCreator.Visible || Forms.Administration.Visible || XObjects.ContextMenuStrip.Visible) + return; + + // Wegen unbekannter Probleme versetzt sich der GFATask willkürlich in den Hintergrund. + // Bei jeder Mausbewegung wird der GFATask sofort wieder an oberste Ebene versetzt, sodass er über allen anderen Fenstern steht. + Win32API.SetWindowPos(Forms.Main.Handle, HWDN.TOPMOST, 0, 0, 0, 0, SWP.NOSIZE | SWP.NOMOVE); + + //Rectangle scaledbounds = new Rectangle((int)(Forms.Main.DesktopBounds.X * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.DesktopBounds.Y * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.Width * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main))), (int)(Forms.Main.Height * Win32API.GetScalingFactor(Screen.FromControl(Forms.Main)))); + Rectangle scaledbounds = new Rectangle((int)(Forms.Main.DesktopBounds.X), (int)(Forms.Main.DesktopBounds.Y), (int)(Forms.Main.Width), (int)(Forms.Main.Height)); + + // Hier muss Cursor.Position angewendet werden, da die HookStruct-Position der Maus die Bewegung angibt und nicht an welchem Punkt sich die Maus aktuell auf dem Desktop befindet + bool mouseover = scaledbounds.Contains(Cursor.Position); + bool mouseover_withoutgrip = new Rectangle(scaledbounds.X + Forms.Main.GripSize - Forms.Main.BorderWidth, scaledbounds.Y, scaledbounds.Width - Forms.Main.GripSize, scaledbounds.Height - Forms.Main.GripSize + Forms.Main.BorderWidth).Contains(Cursor.Position); + bool countMIN = XObjects.Delay.Count >= -1 && XObjects.Delay.Count <= 0; + bool countMAX = XObjects.Delay.Count >= XObjects.Delay.MaxCounts; + Delay.Prevent direction = XObjects.Delay.IsProcessing; + + // BUGFIX: Wenn der Mauszeiger kurz außerhalb des GFA-Task ist und sofort wieder einspringt, wird dieser nicht ausgeblendet + if (mouseover && countMAX && !countMIN && direction == Delay.Prevent.Decrease) + { + XObjects.Delay.Waiting = new Delay.DelayTime(Config.User.NecessaryClick ? 0 : Config.User.Delay.Show, Config.User.Delay.Hide); + XObjects.Delay.Increase(); + } + // Wenn der Mausklick zum Einblenden benötigt wird, der Mauszeiger sich innerhalb des sichtbaren Fensters befindet und kein Delay durchgeführt wird + else if (!Config.User.NecessaryClick && mouseover_withoutgrip && countMIN && direction == Delay.Prevent.None) + { + XObjects.Delay.Waiting = new Delay.DelayTime(Config.User.NecessaryClick ? 0 : Config.User.Delay.Show, Config.User.Delay.Hide); + XObjects.Delay.Increase(); + } + // Wenn der Mauszeiger nicht über dem GFA-Task ist, dieser komplett eingeblendet ist und kein Delay durchgeführt wird + else if (!mouseover && countMAX && direction == Delay.Prevent.None) + { + XObjects.Delay.Decrease(); + } + // Wenn der kein Mausklick zum Einblenden benötigt wird, der Mauszeiger sich innerhalb des GFA-Task befindet, dieser komplett eingeblendet ist und der Delay ausblendet + else if (!Config.User.NecessaryClick && mouseover && countMAX && direction == Delay.Prevent.Decrease) + { + XObjects.Delay.Waiting = new Delay.DelayTime(Config.User.NecessaryClick ? 0 : Config.User.Delay.Show, Config.User.Delay.Hide); + XObjects.Delay.Increase(); + } + // Wenn der Mauszeiger sich nicht innerhalb des GFA-Task befindet, dieser komplett ausgeblendet ist und der Delay einblendet + else if (!mouseover && countMIN && direction == Delay.Prevent.Increase) + { + XObjects.Delay.Decrease(); + } + // Wenn der Mauszeiger sich innerhalb des sichtbaren Fensters befindet, der GFA-Task weder komplett ein- noch ausgeblendet ist und der GFA-Task sich im Ausblendprozess befindet + else if (mouseover_withoutgrip && !countMIN && !countMAX && direction == Delay.Prevent.Decrease) + { + XObjects.Delay.Waiting = new Delay.DelayTime(0, Config.User.Delay.Hide); + XObjects.Delay.Increase(); + } + // Wenn der Mauszeiger nicht über dem GFA-Task ist, der GFA-Task weder komplett ein- noch ausgeblendet ist und der GFA-Task sich im Einblendprozess befindet + else if (!mouseover && !countMIN && !countMAX && direction == Delay.Prevent.Increase) + { + XObjects.Delay.Decrease(); + } + } + + #endregion + + + #region KeyBoard + public static void KeyBoard_Intercept_KeyPress(object sender, HotKeyEventArgs e) + { + var applist = Accessor.GetAppList(AppType.Menu); + + if (e.Modifier == Modifier.CTRL) + { + if (e.Key == Keys.F1) + { + SystemApps.Info(out _); + } + if (e.Key == Keys.F2) + { + SystemApps.Settings(out _); + } + if (e.Key == Keys.F3) + { + SystemApps.Administration(out _); + } + } + } + #endregion + } +} diff --git a/GFATask/Classes/InfoClass.cs b/GFATask/Classes/InfoClass.cs new file mode 100644 index 0000000..f32c6da --- /dev/null +++ b/GFATask/Classes/InfoClass.cs @@ -0,0 +1,118 @@ +using Microsoft.VisualBasic.Devices; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public class InfoClass + { + /// + /// Gibt den Titel des Programm-Assembly aus den Projekteigenschaften aus + /// + public static string ProgramName + { + get => ((AssemblyTitleAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute), false))?.Title; + } + + + /// + /// Gibt den Codenamen des Programm-Assembly aus den Projekteigenschaften aus + /// + public static string ProgramCodeName + { + get => Application.ProductName; + } + + + /// + /// Gibt den Codenamen des Programm-Assembly aus den Projekteigenschaften aus + /// + public static string Copyright + { + get => $"{((AssemblyCopyrightAttribute)Assembly.GetExecutingAssembly().GetCustomAttribute(typeof(AssemblyCopyrightAttribute))).Copyright} {DateTime.Now.Year}"; + } + + + /// + /// Gibt eine benutzerdefinierte Version anhand der AssemblyInfo.cs aus + /// + public static string ProgramVersion + { + get + { + Version version = Assembly.GetExecutingAssembly().GetName().Version; + return string.Format("{0}.{1}.{2}", version.Major, version.Build.ToString()[0], version.Build.ToString()[1]); + } + } + + + /// + /// Gibt die IP-Adresse des Computers als Zeichenkette aus + /// + public static string IPAdress + { + get + { + string ipadress = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList.First(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToString(); + return $"{ipadress}"; + } + } + + + /// + /// Gibt Informationen wie den Computernamen, oder den Typen des Computers aus über den genutzten Computer aus + /// + public static string Computer + { + get + { + bool ica = (Environment.GetEnvironmentVariable("SessionName") ?? "").ToUpper().StartsWith("ICA"); + return $"{SystemInformation.ComputerName} {(ica ? "[Terminalserver]" : "")}"; + } + } + + + /// + /// Formattierter Programm-Name und -Version als Zeichenkette + /// + public static string Program { get => $"{ProgramName} {ProgramVersion}"; } + + + /// + /// Gibt die aktuell genutzte Windows-Version als Zeichenkette aus + /// + public static string OperatingSystem + { + get + { + //string win_name = new ComputerInfo().OSFullName; + + //string reg_win_version = Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "DisplayVersion", "").ToString(); + //string reg_win_installtype = Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "InstallationType", "").ToString(); + //return $"{win_name} {reg_win_version} [{reg_win_installtype}]"; + + var os = new System.Management.WMI.OSStructure(); + + return $"{os.Name} {os.ServicePackDisplayName} [{os.InstallType}]\nVersion {os.Version}"; + } + } + + + /// + /// Gibt die aktuell genutzte Windows-Version als Zeichenkette aus + /// + public static string Browsers + { + get + { + return $"{string.Join("\n", XObjects.WebBrowsers.Select(browser => $"{browser.Name} [{browser.Version}]"))}"; + } + } + + } +} diff --git a/GFATask/Classes/JSON.cs b/GFATask/Classes/JSON.cs new file mode 100644 index 0000000..f31795b --- /dev/null +++ b/GFATask/Classes/JSON.cs @@ -0,0 +1,202 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Linq; +using System.IO; +using System.Windows.Forms; + +namespace GFATask +{ + /// + /// Enthält Serialisierungsfunktionen zum Speichern und Auslesen von JSON-Strukturen + /// + public class JSON + { + /// + /// Speichert das serialisierte Objekt in die angegebene Datei + /// + /// Das Objekt welches in die Datei geschrieben werden soll + /// Pfad zur Datei + public static void Serialize(object deserializedJsonObject, string path) + { + try + { + File.WriteAllText(path, JsonConvert.SerializeObject(deserializedJsonObject, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + catch (System.Exception ex) + { + throw ex; + } + } + + /// + /// Speichert die gewünschte(n) Appsdatei(en) ab + /// + /// Welche Apps-Datei soll gespeichert werden + public static void Save(JSONApp jsonapp) + { + try + { + jsonapp.GetFlags().ToList().ForEach(json => + { + if ((JSONApp)json == JSONApp.User) + { + File.WriteAllText(Paths.Apps.Directory + "user.json", JsonConvert.SerializeObject(AppLists.User, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + else if ((JSONApp)json == JSONApp.Admin) + { + File.WriteAllText(Paths.Apps.Directory + "admin.json", JsonConvert.SerializeObject(AppLists.Admin, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + else if ((JSONApp)json == JSONApp.Menu) + { + File.WriteAllText(Paths.Apps.Directory + "menu.json", JsonConvert.SerializeObject(AppLists.Menu, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + else if ((JSONApp)json == JSONApp.Favorites) + { + File.WriteAllText(Paths.Favorites.Apps.FullName, JsonConvert.SerializeObject(AppLists.Favorites, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + }); + + } + catch (System.Exception ex) + { + Log.EventLog.Write(string.Format("{0} nicht gespeichert", jsonapp.ToString()), LogClassification.CriticalError, ex); + } + } + + /// + /// Speichert die gewünschte(n) Konfigurationsdatei(en) ab + /// + /// Welche Konfigurationsdatei soll gespeichert werden + public static void Save(JSONConfig jsonconfig) + { + try + { + jsonconfig.GetFlags().ToList().ForEach(json => + { + if((JSONConfig)json == JSONConfig.User) + { + File.WriteAllText(Paths.UserConfig.FullName, JsonConvert.SerializeObject(Config.User, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + else if ((JSONConfig)json == JSONConfig.Main) + { + File.WriteAllText(Paths.MainConfig.FullName, JsonConvert.SerializeObject(Config.Main, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + else if ((JSONConfig)json == JSONConfig.Prevalence) + { + File.WriteAllText(Paths.Prevalence.FullName, JsonConvert.SerializeObject(Config.Prevalence, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + else if ((JSONConfig)json == JSONConfig.NewsFeeds) + { + File.WriteAllText(Paths.NewsFeeds.Values.FullName, JsonConvert.SerializeObject(Config.NewsFeeds, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + else if ((JSONConfig)json == JSONConfig.AppClickCounter) + { + File.WriteAllText(Paths.AppClickCounter.FullName, JsonConvert.SerializeObject(Config.AppClickCounter, new JsonSerializerSettings() { Formatting = Formatting.Indented })); + } + }); + + } + catch (System.Exception ex) + { + Log.EventLog.Write(string.Format("{0} nicht gespeichert", jsonconfig.ToString()), LogClassification.CriticalError, ex); + } + } + + + /// + /// Führt eine Deserialisierung der Json-Datei anhand des Pfades durch + /// + /// Gibt das Model der Serialisierung an + /// Der Pfad zur Json-Datei die zu einem Objekt serialisiert werden soll + /// Handelt es sich um eine Array-Datei + /// Serialisierter Json-Typ + public static T Read(string path, bool array = false) + { + try + { + if (array) + { + var json = JArray.Parse(File.ReadAllText(path)); + return JsonConvert.DeserializeObject(json.ToString(), new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Include, Formatting = Formatting.Indented }); + } + else + { + string json = string.Concat(JObject.Parse(File.ReadAllText(path))); + return JsonConvert.DeserializeObject(json, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Include, Formatting = Formatting.Indented }); + } + } + catch (System.Exception ex) + { + Log.EventLog.Write(string.Format("{0} nicht einlesbar", Path.GetFileName(path)), LogClassification.Crash, ex); + throw ex; + } + } + + public static bool Exists(string path, string propertyname) + { + dynamic jsonobject = JsonConvert.DeserializeObject(string.Concat(JObject.Parse(File.ReadAllText(path))), new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Include, Formatting = Formatting.Indented }); + return ((JObject)jsonobject).Properties().Any(p => p.Name == propertyname); + } + } + + + /// + /// Definiert den JSON-Konfigurations-Dateitypen + /// + [Flags] + public enum JSONConfig : int + { + /// + /// Es handelt sich um die Benutzerdefinierte-Konfigurationsdatei + /// + User = 1, + + /// + /// Es handelt sich um die Haupt-Konfigurationsdatei + /// + Main = 2, + + /// + /// Es handelt sich um die Beliebtheits-Konfigurationsdatei + /// + Prevalence = 4, + + /// + /// Es handelt sich um die Neuigkeiten-Konfigurationsdatei + /// + NewsFeeds = 8, + + /// + /// Es handelt sich um die AppClickCounter-Konfigurationsdatei + /// + AppClickCounter = 16 + } + + /// + /// Definiert den JSON-App-Dateitypen + /// + [Flags] + public enum JSONApp : int + { + /// + /// Es handelt sich um die Benutzer-Apps Datei + /// + User = 1, + + /// + /// Es handelt sich um die Admin-Apps Datei + /// + Admin = 2, + + /// + /// Es handelt sich um die Menü-Apps Datei + /// + Menu = 4, + + /// + /// Es handelt sich um die Favoriten-Apps Datei + /// + Favorites = 8 + } +} diff --git a/GFATask/Classes/PreChanging.cs b/GFATask/Classes/PreChanging.cs new file mode 100644 index 0000000..74060b9 --- /dev/null +++ b/GFATask/Classes/PreChanging.cs @@ -0,0 +1,285 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + /// + /// Eine Klasse zum zwischenspeichern von Einstellungen in den JSON-Models + /// + public class PreChanging + { + private Dictionary Temps { get; } = new Dictionary(); + + public Dictionary PreChanges { get; } = new Dictionary(); + + + public PreChanging() { } + + public void GetTemps(IEnumerable tempedcontrols) + { + tempedcontrols.ToList().ForEach(control => + { + object value = new object(); + if (control.GetType() == typeof(SwitchButton)) + { + value = (control as SwitchButton).Checked; + } + else if (control.GetType() == typeof(NumericEx)) + { + value = (control as NumericEx).Value; + } + else if (control.GetType() == typeof(ListBox)) + { + value = (control as ListBox).SelectedItem; + } + else if (control.GetType() == typeof(ComboBox)) + { + value = (control as ComboBox).SelectedItem; + } + else if (control.GetType() == typeof(AppListButton) && control.FindForm() != Forms.Settings) + { + value = (control as AppListButton).AnimateImageBackColor; + } + this.AddToTemp(control, value); + }); + } + + /// + /// Speichert Änderungen vorab in einer Auflistung. Änderungen werden erst mit der Funktion SaveAll wirksam + /// + /// + /// + /// + /// + /// Bei Model-Eigenschaften mit dem gleichen Namen (z.B. Grouping, oder Show in den List-Eigenschaften von Config.User), muss der Steuerlementname angegeben werden + /// Eine Methode, die eine individualisierte Aktion ausführt + public void Add(object t, string property, Control control, object value, Action action) + { + if (PreChanges.ContainsKey(control)) + { + PreChanges[control] = new JsonChange(property, t, GetProperty(t, property), value, action); + PreChanges[control].Commit(); + } + else + { + this.AddToTemp(control, value); + PreChanges.Add(control, new JsonChange(property, t, GetProperty(t, property), value, action)); + PreChanges[control].Commit(); + } + } + + private void AddToTemp(Control control, object value) + { + if (!Temps.ContainsKey(control)) + Temps.Add(control, value); + } + + + public PropertyInfo GetProperty(object t, string PropertyName) + { + if (t.GetType().GetProperties().Count(p => p.Name == PropertyName.Split('.')[0]) == 0) + throw new ArgumentNullException(string.Format("Property {0}, is not exists in object {1}", PropertyName, t.ToString())); + if (PropertyName.Split('.').Length == 1) + return t.GetType().GetProperty(PropertyName); + else + return GetProperty(t.GetType().GetProperty(PropertyName.Split('.')[0]).GetValue(t, null), PropertyName.Split('.')[1]); + } + + + public void Reset(Control control) + { + if (Temps.ContainsKey(control)) + { + if (control.GetType() == typeof(SwitchButton)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as SwitchButton).Checked = (bool)value; + } + } + else if (control.GetType() == typeof(NumericEx)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as NumericEx).Value = decimal.Parse(value.ToString()); + } + } + else if (control.GetType() == typeof(ListBox)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as ListBox).SelectedItem = value; + } + } + else if (control.GetType() == typeof(ComboBox)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as ComboBox).SelectedItem = value; + } + } + else if (control.GetType() == typeof(AppListButton) && control.FindForm() != Forms.Settings) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as AppListButton).AnimateImageBackColor = (Color)value; + } + } + PreChanges.Remove(control); + } + } + + public void CommitAll() + { + // Anstatt Temps.Clear sollten die Steuerelement aus PreChanges die mit Temps übereinstimmen, den Wert aktualisiert bekommen + this.DoItAll(); + this.PreChanges.ToList().ForEach(change => this.Temps[change.Key] = change.Value.Value ); + //this.Temps.Clear(); + this.PreChanges.Values.ToList().ForEach(change => change.Commit()); + this.PreChanges.Clear(); + } + + + public void DoItAll() + { + // Anstatt Temps.Clear sollten die Steuerelement aus PreChanges die mit Temps übereinstimmen, den Wert aktualisiert bekommen + this.PreChanges.ToList().ForEach(change => + { + Temps[change.Key] = change.Value.Value; + change.Value.DoIt(); + }); + } + + public void Commit(Control control) + { + this.Temps[control] = this.PreChanges[control].Value; + this.PreChanges[control].Commit(); + this.PreChanges.Remove(control); + } + + public void ResetAll() + { + Temps.ToList().ForEach(kv => + { + Control control = kv.Key; + if (control.GetType() == typeof(SwitchButton)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as SwitchButton).Checked = (bool)value; + } + } + else if (control.GetType() == typeof(NumericEx)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as NumericEx).Value = decimal.Parse(value.ToString()); + } + } + else if (control.GetType() == typeof(ListBox)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + (control as ListBox).SelectedItem = value; + } + } + else if (control.GetType() == typeof(ComboBox)) + { + object value; + if (Temps.TryGetValue(control, out value)) + { + if (value == null) + return; + (control as ComboBox).Text = value.ToString(); + } + } + }); + PreChanges.Clear(); + } + } + + + /// + /// Erzeugt eine Struktur von Änderungen in einer JSON-Datei, die vorab in einer Auflistung gespeichert werden + /// + public struct JsonChange + { + /// + /// Eine Ausführbare Methode, die beim speichern des Elements ausgeführt werden kann + /// + public Action Action { get; set; } + + + /// + /// Die Struktur des JSON-Models + /// + public string Property { get; set; } + + + public object PropType { get; set; } + + /// + /// Name der Eigenschaft aus der JSON-Model-Struktur + /// + public PropertyInfo PropInfo { get; set; } + + /// + /// Neuer Wert + /// + public object Value { get; set; } + + /// + /// Erzeugt eine Struktur von Änderungen in einer JSON-Datei, die vorab in einer Auflistung gespeichert werden + /// + /// Die Struktur des JSON-Models + /// Name der Eigenschaft aus der JSON-Model-Struktur + /// Neuer Wert + public JsonChange(string property, object proptype, PropertyInfo propinfo, object value, Action action) + { + Property = property; + PropType = proptype; + PropInfo = propinfo; + Value = value; + Action = action; + } + + /// + /// Übernimmt die Änderung bis zum abschließenden Speichern in die Laufzeit-Eigenschaft + /// + public void Commit() + { + try + { + PropInfo.SetValue(PropType, Value); + } + catch (Exception ex) + { + Log.EventLog.Write(string.Format("Einstellung {0} nicht gespeichert", Property), LogClassification.CriticalError, ex); + //Log.EventLog.Write(string.Format("Einstellung {0} nicht gespeichert", Property.ToString().Substring(0, Property.ToString().LastIndexOf("+")).Replace('+', '.') + "." + PropInfo.Name), LogClassification.CriticalError, ex); + } + } + + + /// + /// Führt eine individualisierte Aktion aus + /// + public void DoIt() + { + Action?.Invoke(Value); + } + } +} diff --git a/GFATask/Classes/SystemApps.cs b/GFATask/Classes/SystemApps.cs new file mode 100644 index 0000000..e49225b --- /dev/null +++ b/GFATask/Classes/SystemApps.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Microsoft.VisualBasic.Devices; + +namespace GFATask +{ + class SystemApps + { + public static void Restart(out bool conditions) + { + XObjects.Restart("-restart"); + conditions = true; + } + + public static void Kill(out bool conditions) + { + Environment.Exit(Environment.ExitCode); + conditions = true; + } + + public static void Backup(out bool conditions) + { + ConfigBackupClass.Save(); + conditions = true; + } + + public static void LoadBackup(out bool conditions) + { + ConfigBackupClass.Load(); + conditions = true; + } + + public static void Settings(out bool conditions) + { + Forms.Main.Invoke(new MethodInvoker(delegate { Accessor.OpenForm("Settings"); })); + conditions = true; + } + + public static void Administration(out bool conditions) + { + Forms.Main.Invoke(new MethodInvoker(delegate { Forms.Administration.Login(); })); + conditions = true; + } + + public static void Info(out bool conditions) + { + if (Forms.Main.InvokeRequired) + Forms.Main.Invoke(new MethodInvoker(delegate { Accessor.OpenForm("Info"); })); + else + Accessor.OpenForm("Info", closeifopen: true); + + conditions = true; + } + } +} diff --git a/GFATask/Controls/AppButton.Designer.cs b/GFATask/Controls/AppButton.Designer.cs new file mode 100644 index 0000000..82d0887 --- /dev/null +++ b/GFATask/Controls/AppButton.Designer.cs @@ -0,0 +1,37 @@ + +namespace GFATask +{ + partial class AppButton + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/GFATask/Controls/AppButton.cs b/GFATask/Controls/AppButton.cs new file mode 100644 index 0000000..a2907a5 --- /dev/null +++ b/GFATask/Controls/AppButton.cs @@ -0,0 +1,418 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Threading; +using System.Windows.Forms; + +namespace GFATask +{ + [Browsable(false), ToolboxItem(false)] + public partial class AppButton : AppListButton + { + private ContextMenuStrip _contextmenustrip = new ContextMenuStrip(); + public override ContextMenuStrip ContextMenuStrip + { + get + { + XObjects.ContextMenuStrip = _contextmenustrip; + return _contextmenustrip; + } + set + { + _contextmenustrip = value; + _contextmenustrip.Items.Clear(); + + if (AppType == AppType.Favorites || XObjects.IsAdmin.Result) + { + _contextmenustrip.Items.Add("Bearbeiten", null, (s, evt) => + { + Forms.AppCreator.GetEditableItem(AppType, Accessor.GetAppList(AppType).Apps.Find(app => app.ID == this.ID)); + Accessor.OpenForm("AppCreator", Forms.Main); + }); + + _contextmenustrip.Items.Add(new ToolStripSeparator()); + } + + _contextmenustrip.Items.Add("Zulässige Berechtigungen", null, (s, evt) => + { + XObjects.MessageBox(!Config.Main.UseActiveDirectoryGroups ? "Die Active Directory Berechtigungsfunktion für den GFATask ist nicht aktiviert.\nIhnen werden alle Apps angezeigt." : $"Diese App benötigt mindestens eine Mitgliedschaft in eine der aufgelisteten Gruppen:\n\n{(ActiveDirectoryGroups == null || ActiveDirectoryGroups.Length == 0 ? "Keine" : string.Join("\n", ActiveDirectoryGroups))}", NotifyButtons.OK, NotifyType.Message, new Size(280, !Config.Main.UseActiveDirectoryGroups ? 140 : 240), "Zulässige App-Berechtigungen", null); + }); + _contextmenustrip.Items.Add("Wie oft wurde ich geklickt?", null, (s, evt) => + { + XObjects.MessageBox($"Diese App wurde {Prevalence.CountClicks}x von Ihnen ausgeführt.", NotifyButtons.OK, NotifyType.Message, new Size(250, 150), "Wie oft wurde ich geklickt?", null); + }); + if (AppType == AppType.Favorites || XObjects.IsAdmin.Result) + { + _contextmenustrip.Items.Add(new ToolStripSeparator()); + _contextmenustrip.Items.Add(new ToolStripMenuItem($"{this.Text} entfernen", null, (s, evt) => + { + if (AppType != AppType.Favorites) + { + if (XObjects.MessageBox($"Soll {this.Text} entfernt werden", NotifyButtons.YesNo, NotifyType.Message, new Size(300, 120), $"{this.Text} entfernen").Result == DialogResult.Yes) + Creator.RemoveApp(AppType, Accessor.GetAppList(AppType).Apps.Find(app => app.ID == this.ID)); + } + else + { + Creator.RemoveApp(AppType, Accessor.GetAppList(AppType).Apps.Find(app => app.ID == this.ID)); + } + }) + { Name = "remove_applistbutton" }); + } + else + { + _contextmenustrip.Items.Add(new ToolStripSeparator()); + _contextmenustrip.Items.Add(new ToolStripMenuItem($"{this.Text} zu Favoriten hinzufügen", null, (s, evt) => + { + Models.App appnew = new Models.App() + { + ActiveDirectoryGroups = this.ActiveDirectoryGroups, + Group = this.GroupName, + ID = AppLists.Favorites.Apps == null || AppLists.Favorites.Apps.Count == 0 ? 1 : AppLists.Favorites.Apps.Max(app => app.ID) + 1, + Icon = Accessor.GetAppList(AppType).Apps.Find(app => app.ID == this.ID).Icon, + Name = this.Text, + Execute = this.Execute + }; + File.Copy($@"{Paths.Icons.Directory}\{appnew.Icon}", Paths.Favorites.Icons.Directory + @"\" + appnew.Icon, true); + Creator.AddApp(AppType.Favorites, appnew); + }) + { Name = "to_favorites" }); + } + } + } + + private string _description = ""; + public string Description + { + get => _description; set + { + _description = value; + this.GetToolTipText(); + } + } + + public override AppType AppType + { + get => base.AppType; + set + { + base.AppType = value; + this.ContextMenuStrip = _contextmenustrip; + } + } + + private DateTime _lastmodified = default(DateTime); + public DateTime LastModified { get => _lastmodified; set => _lastmodified = value; } + + private DateTime _creationtime = default(DateTime); + public DateTime CreationTime { get => _creationtime; set => _creationtime = value; } + + + private string _groupname = ""; + /// + /// Sollte die App einer Gruppe zugeordnet sein, wird der Name hier angezeigt + /// + [ + Description("Sollte die App einer Gruppe zugeordnet sein, wird der Name hier angezeigt"), + DefaultValue(0) + ] + public string GroupName + { + get => _groupname; + set => _groupname = value; + } + + + private Models.Execute[] _execute = new Models.Execute[0]; + /// + /// Beinhaltet die ausführbaren Befehle für diese App + /// + public Models.Execute[] Execute + { + get => _execute; + set + { + _execute = value; + + if (_execute.Any(exec => + (exec.Command != null && (exec.Command.StartsWith("http") || exec.Command.StartsWith("www.") || exec.Command.StartsWith("intranet."))) || + (exec.Args != null && (exec.Args.StartsWith("http") || exec.Args.StartsWith("www.") || exec.Args.StartsWith("intranet."))) || + (XObjects.IsAppLnk(exec.Command) && Accessor.GetAppList(Cast.ToAppLink(exec.Command).AppType).Apps.Find(app => app.ID == Cast.ToAppLink(exec.Command).ID).Execute.Any(lnk => lnk.Command.StartsWith("http") || lnk.Command.StartsWith("www.") || lnk.Command.StartsWith("intranet."))))) + { + + string browsername = String.Empty; + + if (XObjects.IsAppLnk(_execute[0].Command)) + { + var applnk = Accessor.GetAppList(Cast.ToAppLink(_execute[0].Command).AppType).Apps.Find(app => app.ID == Cast.ToAppLink(_execute[0].Command).ID); + browsername = applnk.Execute[0].Command.StartsWith("http") || applnk.Execute[0].Command.StartsWith("www.") || applnk.Execute[0].Command.StartsWith("internet.") ? "default" : AlternateWebbrowser.GetName(applnk.Execute[0].Command); + } + else + { + browsername = (_execute[0].Command.StartsWith("http") || _execute[0].Command.StartsWith("www.") || _execute[0].Command.StartsWith("intranet.")) ? "default" : AlternateWebbrowser.GetName(_execute[0].Command); + } + AlternateWebbrowser.DrawWebBrowserIcon(this.Image, browsername, this.Text); + this.Invalidate(); + } + + if (AppType == AppType.Favorites) + { + + if (_execute.Any(exec => + (exec.Command != null && (exec.Command.StartsWith("http") || exec.Command.StartsWith("www.") || exec.Command.StartsWith("intranet."))) || + (exec.Args != null && (exec.Args.StartsWith("http") || exec.Args.StartsWith("www.") || exec.Args.StartsWith("intranet.")))) && XObjects.WebBrowsers.Count > 0) + { + _contextmenustrip.Items.Insert(1, new ToolStripMenuItem("Öffnen mit", XObjects.WebBrowsers.Select(browser => AlternateWebbrowser.GetImage(browser.Name)).ToArray().Merge(_contextmenustrip.ImageScalingSize, 2), XObjects.WebBrowsers.Where(browser => browser.Path != "unknown").Select(browser => + { + var browsericon = AlternateWebbrowser.GetImage(browser.Name); + return new ToolStripMenuItem(browser.Name, browsericon, (s, evt) => + { + var app = Accessor.GetAppList(AppType.Favorites).Apps.Find(listapp => listapp.ID == this.ID); + + _execute.ToList().ForEach(exec => + { + if (exec.Args == null || exec.Args == "") + { + string website = exec.Command; + exec.Args = website; + } + exec.Command = AlternateWebbrowser.GetExec(browser.Name); + _description = $"Öffnet die verlinkte Internetadresse {this.Text} mit dem {browser.Name} Browser"; + this.Image = Image.FromFile(Cast.IconPath(AppType.Favorites, app.Icon)); + AlternateWebbrowser.DrawWebBrowserIcon(this.Image, browser.Name); + this.Invalidate(); + this.OnMouseClick(new MouseEventArgs(MouseButtons.Left, 0, 0, 0, 0)); + }); + app.Execute = _execute; + app.Description = _description; + JSON.Save(JSONApp.Favorites); + }); + }).ToArray())); + //_contextmenustrip.Items.Insert(1, new ToolStripMenuItem("Öffnen mit", AlternateWebbrowser.Installed.Select(browser => AlternateWebbrowser.GetImage(browser.Key)).ToArray().Merge(_contextmenustrip.ImageScalingSize, 2), AlternateWebbrowser.Installed.Select(browser => + // { + // var browsericon = AlternateWebbrowser.GetImage(browser.Key); + // return new ToolStripMenuItem(browser.Key, browsericon, (s, evt) => + // { + // var app = Accessor.GetAppList(AppType.Favorites).Apps.Find(listapp => listapp.ID == this.ID); + + // _execute.ToList().ForEach(exec => + // { + // if (exec.Args == null || exec.Args == "") + // { + // string website = exec.Command; + // exec.Args = website; + // } + // exec.Command = AlternateWebbrowser.GetExec(browser.Key); + // _description = $"Öffnet die verlinkte Internetadresse {this.Text} mit dem {browser.Key} Browser"; + // this.Image = Image.FromFile(Cast.IconPath(AppType.Favorites, app.Icon)); + // AlternateWebbrowser.DrawWebBrowserIcon(this.Image, browser.Key); + // this.Invalidate(); + // this.OnMouseClick(new MouseEventArgs(MouseButtons.Left, 0, 0, 0, 0)); + // }); + // app.Execute = _execute; + // app.Description = _description; + // JSON.Save(JSONApp.Favorites); + // }); + // }).ToArray())); + _contextmenustrip.SetDefaultDesign(); + } + } + } + } + + + private int _id = 0; + /// + /// Die eindeutige Identifikationsnummer des AppButtons + /// + [ + Description("Die eindeutige Identifikationsnummer des AppButtons"), + DefaultValue(0) + ] + public int ID + { + get => _id; + set => _id = value; + } + + + public AppButton() + { + InitializeComponent(); + this.TextAlign = ContentAlignment.MiddleLeft; + ContextMenuStrip.SetDefaultDesign(); + } + + + + protected override void OnHandleCreated(EventArgs e) + { + base.OnHandleCreated(e); + this.GetToolTipText(); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + this.Width = this.ImageOnly ? this.Height : this.ActualWidth; + } + + protected override void OnMouseHover(EventArgs e) + { + base.OnMouseHover(e); + } + + protected override void OnMouseLeave(EventArgs e) + { + base.OnMouseLeave(e); + } + + + + protected override void OnTextChanged(EventArgs e) + { + base.OnTextChanged(e); + + if (AppType == AppType.Favorites || XObjects.IsAdmin.Result) + { + if (_contextmenustrip.Items["remove_applistbutton"] != null) + { + _contextmenustrip.Items["remove_applistbutton"].Text = $"{this.Text} entfernen"; + _contextmenustrip.Items["remove_applistbutton"].Click += (sender, evt) => + { + if(AppType != AppType.Favorites) + { + if (XObjects.MessageBox($"Soll {this.Text} entfernt werden", NotifyButtons.YesNo, NotifyType.Message, new Size(300, 120), $"{this.Text} entfernen").Result == DialogResult.Yes) + Creator.RemoveApp(AppType, Accessor.GetAppList(AppType).Apps.Find(app => app.ID == this.ID)); + } + else + { + Creator.RemoveApp(AppType, Accessor.GetAppList(AppType).Apps.Find(app => app.ID == this.ID)); + } + }; + } + } + } + + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + if (e.Button == MouseButtons.Left) + { + if (this.ClientRectangle.Contains(e.Location)) + { + if(AppType == AppType.Admin || AppType == AppType.User || AppType == AppType.Menu) + { + Accessor.SetAppCounter(AppType, _id); + } + else if(AppType == AppType.Favorites) + { + if (XObjects.IsAppLnk(this.Execute[0].Command)) + { + AppLnk lnk = Cast.ToAppLink(this.Execute[0].Command); + Models.App applnk = lnk.ToApp(); + Accessor.SetAppCounter(lnk.AppType, lnk.ID); + if (applnk.LastModified > this.LastModified) + { + var applist = Accessor.GetAppList(this.AppType); + var app = applist.Apps[applist.Apps.FindIndex(appitem => appitem.ID == this.ID)]; + + if (!System.Drawing.Comparer.Image(Accessor.GetAppListPanel(lnk.AppType).SortedList.Find(button => button.Name == Cast.AppButtonName(lnk.AppType, applnk)).Image, this.Image)) + { + File.Copy(Cast.IconPath(lnk.AppType, applnk.Icon), Cast.IconPath(AppType.Favorites, app.Icon), true); + using (FileStream fs = new FileStream(Cast.IconPath(AppType.Favorites, app.Icon), FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + this.Image = Image.FromStream(fs); + } + } + app.LastModified = DateTime.Now; + this.LastModified = DateTime.Now; + } + } + } + + Prevalence.CountUp(); + this.GetToolTipText(); + if (Config.User.Prevalence) + { + this.StepUpPrevalence(this.Parent.Controls.IndexOf(this) == 0 ? null : this.Parent.Controls[this.Parent.Controls.IndexOf(this) - 1]); + } + if (_execute != null && _execute.Length > 0) + { + new Thread(new ThreadStart(delegate + { + foreach (var exec in _execute) + { + if (AppExecution.FromApp(this.Text, exec.Command, exec.Args == null ? "" : string.Join(" ", exec.Args))) + { + break; + } + } + })) + { IsBackground = true, Priority = ThreadPriority.BelowNormal }.Start(); + } + if (Forms.AppButtonGroup.Visible) + { + Forms.AppButtonGroup.Close(); + } + } + } + } + + + private void GetToolTipText() + { + this.ToolTipText = $"{this.Text}\n\n{(_description != "" ? _description : "")}"; + //this.ToolTipText = $"App: {this.Text}\n" + + // $"{(this.GroupName != null && this.GroupName != string.Empty ? $"Gruppe: {this.GroupName}\n" : "")}" + + // $"Geklickt: {this.Prevalence.CountClicks}x"; + } + + + + /// + /// Setzt den Index des AppButtons solange herunter, bis dieser richtig eingegliedert wurde + /// + /// Der nächste AppButton, links von diesem + private void StepUpPrevalence(Control next) + { + if(this.Parent.Parent != null && this.Parent.Parent.GetType() == typeof(FormAppButtonGroup)) + { + var virtual_form = ((FormAppButtonGroup)this.Parent.Parent); + var virtual_applist = ((FlowLayoutPanel)this.Parent); + virtual_form.MyGroupButton.Prevalence = virtual_applist.Controls.OfType().ToList().Find( + appbutton => appbutton.Prevalence.CountClicks == virtual_applist.Controls.OfType().ToList().Max(appbtn => appbtn.Prevalence.CountClicks)).Prevalence; + var applistpanel = ((FlowContent)virtual_form.MyGroupButton.Parent); + var groupbutton = virtual_form.MyGroupButton; + var nextbutton = applistpanel.GetNextControl(virtual_form.MyGroupButton, false); + + if (nextbutton != null && groupbutton.Prevalence.CountClicks >= ((AppListButton)nextbutton).Prevalence.CountClicks) + { + applistpanel.Controls.SetChildIndex(virtual_form.MyGroupButton, applistpanel.Controls.GetChildIndex(nextbutton)); + this.StepUpPrevalence(next); + } + } + if (next != null) + { + if ((next.GetType() == typeof(AppButton) && this.Prevalence.CountClicks >= ((AppButton)next).Prevalence.CountClicks) || + (next.GetType() == typeof(GroupButton) && this.Prevalence.CountClicks >= ((GroupButton)next).Prevalence.CountClicks)) + { + if(this.Parent.GetType() == typeof(FormAppButtonGroup)) + { + // Neue Anordnung in der Gruppenliste + ((FlowLayoutPanel)this.Parent).Controls.SetChildIndex(this, ((FlowLayoutPanel)this.Parent).Controls.GetChildIndex(next)); + ((FlowContent)this.Parent.Parent).Controls.SetChildIndex(((FormAppButtonGroup)this.Parent).MyGroupButton, ((FlowContent)this.Parent.Parent).Controls.GetChildIndex(next)); + } + else + { + // Neue Anordnung in der gesamten App-Liste + this.Parent.Controls.SetChildIndex(this, this.Parent.Controls.GetChildIndex(next)); + this.StepUpPrevalence(this.Parent.Controls.IndexOf(this) == 0 ? null : this.Parent.Controls[this.Parent.Controls.IndexOf(this) - 1]); + } + } + } + } + } +} diff --git a/GFATask/Controls/AppListButton.Designer.cs b/GFATask/Controls/AppListButton.Designer.cs new file mode 100644 index 0000000..78dd761 --- /dev/null +++ b/GFATask/Controls/AppListButton.Designer.cs @@ -0,0 +1,37 @@ + +namespace GFATask +{ + partial class AppListButton + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/GFATask/Controls/AppListButton.cs b/GFATask/Controls/AppListButton.cs new file mode 100644 index 0000000..46c1b81 --- /dev/null +++ b/GFATask/Controls/AppListButton.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + [ + Browsable(false), + ToolboxItem(false) + ] + public partial class AppListButton : AnimationButton + { + internal string[] _activedirectorygroups = new string[] { }; + /// + /// Sollte die App einer Gruppe zugeordnet sein, wird der Name hier angezeigt + /// + [ + Description("Sollte die App einer Gruppe zugeordnet sein, wird der Name hier angezeigt"), + DefaultValue(typeof(string[]), "") + ] + public string[] ActiveDirectoryGroups + { + get => _activedirectorygroups; + set => _activedirectorygroups = value; + } + + + private AppType _apptype = AppType.None; + /// + /// Definiert den Apptypen des AppButtons + /// + [Description("Definiert den Apptypen des AppButtons")] + virtual public AppType AppType + { + get => _apptype; + set + { + _apptype = value; + //this.AllowDrop = _apptype == AppType.Favorites; + } + } + + + + private Prevalencia _prevelance = new Prevalencia(); + /// + /// Erfasst die Häufigkeit der Klicks um die App nach Beliebtheit anzuordnen + /// + [ + Description("Erfasst die Häufigkeit der Klicks um die App nach Beliebtheit anzuordnen"), + DefaultValue(true) + ] + virtual public Prevalencia Prevalence + { + get => _prevelance; + set => _prevelance = value; + } + + + private bool _imageonly = false; + virtual public bool ImageOnly { + get => _imageonly; + set + { + _imageonly = value; + OnImageOnlyChanged(new EventArgs()); + this.Invalidate(); + } + } + + public virtual void OnImageOnlyChanged(EventArgs e) + { + if (this.ImageOnly) + { + this.Width = this.Height; + } + else + { + this.Width = _actualwidth; + } + } + + + private int _actualwidth = 0; + public int ActualWidth + { + get => _actualwidth; + set + { + _actualwidth = value; + OnImageOnlyChanged(new EventArgs()); + } + } + + + public AppListButton() + { + InitializeComponent(); + } + + + protected override void OnMouseHover(EventArgs e) + { + if (this.ContextMenuStrip != null && this.ContextMenuStrip.Items.Count > 0) + { + int menusize = (int)(this.BorderBounds.Height * 72 / this.CreateGraphics().DpiX / 2); + } + + base.OnMouseHover(e); + } + + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + if(e.Button == MouseButtons.Right) + { + if (this.ContextMenuStrip != null && this.ContextMenuStrip.Items.Count > 0) + this.ContextMenuStrip.Show(this, new Point(this.Padding.Left, this.ClientRectangle.Bottom)); + } + } + + protected override void OnMouseEnter(EventArgs e) + { + ToolTip.ShowAlways = true; + if(Config.User.NecessaryClick) + ToolTip.SetToolTip(this, this.ToolTipText); + else + ToolTip.SetToolTip(this, this.ToolTipText); + //ToolTip.Show(this.ToolTipText, this, new Point(0, this.Height)); + base.OnMouseEnter(e); + } + + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + this.ImageSize = new Size(this.BorderBounds.Height - this.Padding.Vertical - this.Margin.Vertical, this.BorderBounds.Height - this.Padding.Vertical - this.Margin.Vertical); + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + if (e.Button == MouseButtons.Left && !this.ClientRectangle.Contains(e.Location)) + { + this.DoDragDrop(this, DragDropEffects.Copy); + } + } + + protected override void OnPaint(PaintEventArgs pe) + { + base.OnPaint(pe); + + if (_imageonly) + { + //pe.Graphics.SetClip(new Rectangle(TextBounds.X + 3, TextBounds.Y, TextBounds.Width - 3, TextBounds.Height)); + //pe.Graphics.Clear(this.BackColor); + } + } + } +} diff --git a/GFATask/Controls/AppListPanel.Designer.cs b/GFATask/Controls/AppListPanel.Designer.cs new file mode 100644 index 0000000..fe9f3c5 --- /dev/null +++ b/GFATask/Controls/AppListPanel.Designer.cs @@ -0,0 +1,45 @@ + +namespace GFATask +{ + partial class AppListPanel + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.SuspendLayout(); + flowcontent = new FlowContent(); + flowcontent.WrapContents = true; + flowcontent.AutoScroll = true; + flowcontent.Dock = System.Windows.Forms.DockStyle.Fill; + this.Controls.Add(flowcontent); + this.ResumeLayout(false); + } + FlowContent flowcontent; + + #endregion + } +} diff --git a/GFATask/Controls/AppListPanel.cs b/GFATask/Controls/AppListPanel.cs new file mode 100644 index 0000000..a6998f8 --- /dev/null +++ b/GFATask/Controls/AppListPanel.cs @@ -0,0 +1,1457 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Windows.Forms.Layout; +using System.Xml; + +namespace GFATask +{ + public partial class AppListPanel : Panel + { + /// + /// Ist die Maus im heruntergedrückten Zustand + /// + private bool mousedown = false; + + /// + /// Definiert den Bereich in dem der Name der Appliste angezeigt werden soll + /// + private Rectangle textbounds = Rectangle.Empty; + + /// + /// Gibt den Bereich zum vergrößern der Appliste an + /// + private Rectangle gripbounds = Rectangle.Empty; + + /// + /// Gibt die aktuelle Höhe aus. Sobald sich die Höhe der AppList ändert, wird diese hier aktualisiert + /// + private int tempheight = 0; + + + private List _sortedlist = new List(); + /// + /// Beinhaltet alle App-Steuerelemente nach der Ausführung der Methode "CreateButtons" + /// + [Browsable(false)] + public List SortedList + { + get => _sortedlist; + private set => _sortedlist = value; + } + + + private bool _islast = false; + /// + /// Handelt es sich um die unterste Liste im GFA-Task, wird diese an in der Höhe die verbeleibende Fläche angepasst + /// + [Browsable(false)] + public bool IsLast + { + get => _islast; + set + { + _islast = value; + _resizing = !value; + if (_islast) + { + this.Height = Forms.Main.Height - Forms.Main.Padding.Vertical - Forms.Main.ActionRegionHeight - XObjects.AllAppListPanels.Where(alp => alp.Showing && !alp.IsLast).Sum(alp => alp.Height); + this.SetMinmimumSize(); + } + else + { + this.Dock = DockStyle.Top; + if(!this.DesignMode) + this.Height = Accessor.GetListProperties(_apptype).Height; + } + } + } + + + private bool _showing = false; + /// + /// Definiert, ob das Panel sichtbar ist, oder nicht + /// + public bool Showing + { + get => _showing; + set + { + _showing = value; + this.Visible = _showing; + } + } + + + private AppType _apptype = AppType.None; + /// + /// Definiert den Apptypen der in des AppListPanels + /// + [Description("Definiert den Apptypen der in des AppListPanels")] + public AppType AppType + { + get => _apptype; + set + { + _apptype = value; + this.AllowDrop = _apptype == AppType.Favorites; + } + } + + + private bool _grouping = false; + /// + /// Definiert, ob die AppButtons des Panels gruppiert werden, oder nicht + /// + public bool Grouping { + get => _grouping; + set + { + _grouping = value; + this.Invalidate(); + } + } + + + /// + /// Ein angepasstes FlowLayoutPanel, welches in das AppListPanel integriert wurde + /// + [Browsable(false)] + public FlowContent FlowContent + { + get => flowcontent; + } + + + private Color _bordercolor = SystemColors.ActiveBorder; + /// + /// Bestimmt die Rahmenfarbe des AppListPanels + /// + [ + Description("Bestimmt die Rahmenfarbe des AppListPanels"), + DefaultValue(typeof(Color), "ActiveBorder") + ] + public Color BorderColor + { + get => _bordercolor; + set + { + _bordercolor = value; + } + } + + + private string _listname = "ListName"; + /// + /// Bestimmt den Text, der auf der linken Seite, vertikal dargestellt werden soll + /// + [ + Description("Bestimmt den Text, der auf der linken Seite, vertikal dargestellt werden soll"), + DefaultValue("ListName") + ] + public string ListName + { + get => _listname; + set + { + _listname = value; + textbounds = new Rectangle(new Point(0, 0), new Size((int)Math.Floor(TextRenderer.MeasureText(_listname, this.Font).Height * 1.5), this.Height)); + this.SetListNamePadding(); + this.SetMinmimumSize(); + this.Invalidate(textbounds); + } + } + + + private Point _border = new Point(2, 2); + /// + /// Bestimmt die Breite der Trennungslinien in der Vertikalen und Horizontalen + /// + [ + Description("Bestimmt die Breite der Trennungslinien in der Vertikalen und Horizontalen"), + DefaultValue(typeof(Size), "2,2") + ] + public Point Border + { + get => _border; + set + { + _border = value; + this.Invalidate(); + } + } + + + private bool _resizing = true; + /// + /// Bestimmt, ob sich das AppListPanel vergrößern lässt, oder nicht + /// + [ + Description("Bestimmt, ob sich das AppListPanel vergrößern lässt, oder nicht"), + DefaultValue(true) + ] + public bool Resizing + { + get => _resizing; + set + { + _resizing = value; + this.Invalidate(); + } + } + + + public AppListPanel() + { + InitializeComponent(); + this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.EnableNotifyMessage | ControlStyles.ResizeRedraw, true); + tempheight = this.Height; + this.SetListNamePadding(); + this.SetMinmimumSize(); + this.AutoSizeMode = AutoSizeMode.GrowAndShrink; + } + + /// + /// Liest dynamisch die vorhandenen Citrix-Anwendungen aus dem Startmenü aus. Diese werden nie in einer Liste gespeichert und sind immer nur zur Laufzeit verfügbar + /// + /// + private void GetCitrixApps(Models.AppList applist) + { + applist.Apps = applist.Apps.Except(AppLists.Citrix.Apps.ToArray()).ToList(); + string icaselfservice = Paths.Citrix.ICASelfService.FullName; + string ctxappslocalization = Paths.Citrix.Apps.Directory; + XmlDocument xml = new XmlDocument(); + if(new DirectoryInfo(ctxappslocalization).GetFiles("*.xml", SearchOption.TopDirectoryOnly).Length != 0) + { + xml.Load(new DirectoryInfo(ctxappslocalization).GetFiles("*.xml", SearchOption.TopDirectoryOnly).First().OpenRead()); + xml.SelectNodes(Config.Main.Citrix.XMLNodes).Cast().ToList().ForEach(node => + { + Func value = name => node.SelectSingleNode(name).InnerText; + Models.App app = new Models.App() { ID = AppLists.Citrix.Apps.Count + 1, Execute = new Models.Execute[] { new Models.Execute() { Command = icaselfservice, Args = value("LaunchCommandLine") } }, Group = value("Category"), Name = value("FriendlyName") }; + + if(Directory.Exists(EnvironmentManager.VariableConverter(@"%appdata%\Citrix\SelfService\Icons\", true))) + { + FileInfo[] icons = new DirectoryInfo(EnvironmentManager.VariableConverter(@"%appdata%\Citrix\SelfService\Icons\", true)).GetFiles(value("FriendlyName").Replace(" ", "") + "_*.*"); + if (icons.Length > 0) + { + string icon = Path.GetFileName(icons.First().FullName); + if (icon != null) + app.Icon = icon; + } + } + applist.Apps.Add(app); + }); + } + } + + + /// + /// Fügt dem AppListPanel die gewünschte AppListe hinzu und generiert daraus die AppButtons + /// + /// + /// + async public void CreateButtons(Models.AppList applist) + { + flowcontent.Controls.Clear(); + if (_apptype == AppType.Citrix) + { + this.GetCitrixApps(applist); + } + this.SuspendLayout(); + await Task.Run(async () => + { + if (await XObjects.IsADGroupFinish) + { + try + { + foreach (var button in this.GetSortedButtons(applist)) + { + this.Invoke(new MethodInvoker(delegate + { + this.Controls.Add(button); + })); + await Task.Delay(5); + } + this.Invalidate(); + if (_apptype == AppType.User) + XObjects.LoadingPanel.Loading = false; + } + catch (Exception ex) + { + Log.EventLog.Write("AppListPanel CreateButtons", LogClassification.CriticalError, ex); + } + } + }); + + if (this.InvokeRequired) + this.Invoke(new MethodInvoker(delegate { this.ResumeLayout(); })); + else + this.ResumeLayout(); + } + + + /// + /// Wandelt eine Models.App in einen AppButton für das AppListPanel um + /// + /// Die Models.App aus der die Informationen ausgelesen werden + /// + private AppButton CreateAppButton(Models.App app) + { + AppButton appbutton = app.ToAppButton(Cast.IconPath(_apptype, app.Icon), new Padding(Config.User.Apps.Margin)); + appbutton.Size = Config.User.Apps.Size; + appbutton.AppType = _apptype; + appbutton.Name = Cast.AppButtonName(_apptype, app); + appbutton.GroupName = app.Group; + appbutton.Description = app.Description; + appbutton.ID = app.ID; + appbutton.ActiveDirectoryGroups = app.ActiveDirectoryGroups; + appbutton.Visible = Cast.AppVisibility(app); + appbutton.Prevalence = Accessor.GetPrevalencia(_apptype, app.ID); + appbutton.WordWrap = false; + appbutton.SetDefaultDesign(); + appbutton.Execute = app.Execute; + appbutton.ImageAlign = AnchorStyles.Left; + return appbutton; + } + + + /// + /// Sortiert die innere Liste der AppButtons nach Beliebtheit, oder Name + /// + public void SortListButtons() + { + if (Config.User.Prevalence) + _sortedlist.Sort(new Comparer.ButtonCompareByPrevalence()); + else + _sortedlist.Sort(new Comparer.ButtonCompareByName()); + Comparer.SortAllButtons(flowcontent.Controls, Config.User.Prevalence); + } + + + /// + /// Fügt dem AppListPanel einen neuen AppButton hinzu + /// + /// Die Models.App App + public void AddAppButton(Models.App app) + { + // --> Er versucht es als Gruppe zu erstellen!!!! + if (!AddAppToGroupButton(app)) + { + AppButton appbutton = this.CreateAppButton(app); + this.Controls.Add(appbutton); + flowcontent.Controls.SetChildIndex(appbutton, Comparer.SortButton(flowcontent.Controls, appbutton, Config.User.Prevalence)); + _sortedlist.Add(appbutton); + this.Invalidate(textbounds); + } + } + + + /// + /// Fügt einem bereits bestehenden GroupButton eine neue App hinzu. Wenn bereits eine App mit dem Gruppennamen enthalten ist, wird die Gruppe neu erstellt, + /// andernfalls wird der AppButton der bestehenden Gruppe hinzugefügt + /// + /// Die Models.App App + /// + public bool AddAppToGroupButton(Models.App app) + { + if (!_grouping || app.Group == null || app.Group == "") + return false; + var appstogroupbutton = Accessor.GetAppList(_apptype).Apps.FindAll(modelsapp => modelsapp.Group == app.Group).Union(new Models.App[] { app }).Where(modelsapp => Cast.AppVisibility(modelsapp)).ToArray(); + + // Erstellt eine neue Gruppe anhand einer Auflistung von 2 und mehr Models.App mit dem gleichen Gruppennamen. Der GroupButton ist bereits in dem AppListPanel enthalten + if (_grouping && appstogroupbutton != null && appstogroupbutton.Length > 1 && _sortedlist.OfType().Select(groupbutton => groupbutton.Name).Contains(Cast.GroupButtonName(_apptype, app.Group))) + { + try + { + GroupButton groupbutton = (GroupButton)_sortedlist.Find(button => button.Name == Cast.GroupButtonName(_apptype, app.Group) && button is GroupButton); + groupbutton.ContainedApps.Add(app); + groupbutton.ContainedAppButtons.Add(this.CreateAppButton(app)); + return true; + } + catch (Exception ex) + { + Log.EventLog.Write($"Konnte App {app.Name} nicht der Gruppe hinzufügen", LogClassification.MediumError, ex); + return true; + } + } + // Erstellt eine neue Gruppe, sofern 2 und mehr Models.App mit gleichen Gruppennamen vorhanden sind, jedoch noch kein GroupButton in der AppListPanel enthalten ist + else if(_grouping && appstogroupbutton.Length == 2) + { + try + { + GroupButton groupbutton = this.AddGroupButton(appstogroupbutton); + this.Controls.Add(groupbutton); + this.RemoveButton(appstogroupbutton[0]); + //flowcontent.Controls.SetChildIndex(groupbutton, Comparer.SortButton(flowcontent.Controls, groupbutton, Config.User.Prevalence)); + return true; + } + catch (Exception ex) + { + Log.EventLog.Write("Konnte Gruppe nicht erstellen", LogClassification.MediumError, ex); + return true; + } + } + return false; + } + + + /// + /// Fügt dem AppListPanel einen neuen GroupButton hinzu + /// + /// + public GroupButton AddGroupButton(Models.App[] appsToGroupButton) + { + GroupButton groupbutton = appsToGroupButton.ToGroupButton(_apptype, new Padding(Config.User.Apps.Margin)); + Prevalencia prevalence = groupbutton.ContainedAppButtons.ToList().Find(app => app.Prevalence.CountClicks == groupbutton.ContainedAppButtons.Max(appbutton => appbutton.Prevalence.CountClicks)).Prevalence; + groupbutton.Prevalence = prevalence; + appsToGroupButton.ToList().ForEach(app => + { + flowcontent.Controls.OfType().ToList().RemoveAll(appbutton => + { + bool check = appbutton.Name == Cast.AppButtonName(_apptype, app); + if(check) _sortedlist.Remove(appbutton); + return check; + }); + }); + _sortedlist.Add(groupbutton); + this.SortListButtons(); + this.Invalidate(textbounds); + return groupbutton; + } + + + /// + /// Löscht den angegebenen GroupButton aus dem AppListPanel. Es kann angegeben werden, ob alle dazugehörigen Apps der Gruppe ebenfalls entfernt werden sollen + /// + /// GroupButton-Name + /// Sollen alle zugehörigen AppButtons ebenfalls gelöscht werden, oder der letzte AppButton dem AppListPanel hinzugefügt werden + public void RemoveGroupButton(string name, bool removecontainedapps = false) + { + _sortedlist.RemoveAll(button => button.Name == name); + GroupButton groupbutton = (GroupButton)flowcontent.Controls[name]; + if (groupbutton != null) + { + if (removecontainedapps) + { + groupbutton.ContainedApps.Clear(); + groupbutton.ContainedAppButtons.Clear(); + } + else if (groupbutton.ContainedApps.Count > 0 && !removecontainedapps) + { + AppButton appbutton_rescued = groupbutton.ContainedAppButtons.First(); + if (appbutton_rescued.Visible) + { + this.Controls.Add(appbutton_rescued); + _sortedlist.Add(appbutton_rescued); + } + } + } + flowcontent.Controls.RemoveByKey(name); + this.SortListButtons(); + } + + + /// + /// Löscht einen AppButton aus einem AppListPanel anhand des Apptypen und der App aus der JSON-Datei + /// + /// Findet anhand des Typen das gewünschte AppListPanel + /// Die JSON-App mit der der AppButton gefunden und entfernt wird + public void RemoveButton(Models.App app) + { + if (flowcontent.Controls.ContainsKey(Cast.AppButtonName(_apptype, app))) + { + Control appbutton = flowcontent.Controls.Find(Cast.AppButtonName(_apptype, app), false)[0]; + flowcontent.Controls.Remove(appbutton); + } + else if (_sortedlist.OfType().ToList().Exists(groupbutton => groupbutton.Name == Cast.GroupButtonName(_apptype, app.Group))) + { + GroupButton groupbutton = _sortedlist.OfType().ToList().Find(groupbtn => groupbtn.Name == Cast.GroupButtonName(_apptype, app.Group)); + groupbutton.RemoveApp(app); + } + this.Invalidate(textbounds); + } + + + /// + /// Entfernt die Gruppe, sofern nur noch eine App darin enthalten ist + /// + /// Der Schlüsselname des GroupButton. Nicht zu verwechseln mit dem GroupName, also der Eigenschaft GroupButton.Text + public void RemoveGroupButtonIfNeeded(string groupbuttonname, bool removecontainedapps = false) + { + GroupButton groupbutton = _sortedlist.OfType().ToList().Find(groupbtn => groupbtn.Name == groupbuttonname); + if (groupbutton != null && groupbutton.ContainedAppButtons.Count(appbutton => appbutton.Visible) == 1) + this.RemoveGroupButton(groupbuttonname, removecontainedapps); + } + + + + /// + /// Ersetzt einen AppButton anhand einer bearbeiteten Models.App + /// + /// Die Models.App App die die überschreibbaren Eigenschaften für den AppButton enthält + public bool ReplaceButton(Models.App replacing_app) + { + bool accepted = false; + try + { + Models.App existing_app = Accessor.GetAppList(_apptype).Apps.Find(app => app.ID == replacing_app.ID); + AppButton replacing_appbutton = null; + bool groupexists = _sortedlist.Exists(groupbtn => groupbtn.Name == Cast.GroupButtonName(_apptype, existing_app.Group)); + // Wenn der AppButton in einem GroupButton enthalten ist + if (groupexists) + { + GroupButton groupbutton = _sortedlist.Find(groupbtn => groupbtn.Name == Cast.GroupButtonName(_apptype, existing_app.Group)) as GroupButton; + replacing_appbutton = groupbutton.ContainedAppButtons[groupbutton.ContainedAppButtons.ToList().FindIndex(button => button.Name == Cast.AppButtonName(_apptype, existing_app))]; + + if (replacing_app.Prototype) + { + //this.RemoveButton(existing_app); + replacing_appbutton.Visible = Cast.AppVisibility(replacing_app); + this.RemoveGroupButtonIfNeeded(groupbutton.Name, false); + } + + if (replacing_appbutton.GroupName != replacing_app.Group) + { + this.RemoveButton(existing_app); + this.AddAppButton(replacing_app); + } + + groupbutton.Invalidate(); + } + else + { + replacing_appbutton = _sortedlist[_sortedlist.FindIndex(button => button.Name == Cast.AppButtonName(_apptype, existing_app))] as AppButton; + this.RemoveButton(existing_app); + this.AddAppButton(replacing_app); + } + replacing_appbutton.Text = replacing_app.Name; + replacing_appbutton.Description = replacing_app.Description; + replacing_appbutton.Execute = replacing_app.Execute; + replacing_appbutton.Name = Cast.AppButtonName(_apptype, replacing_app); + replacing_appbutton.Image = File.Exists(Cast.IconPath(_apptype, replacing_app.Icon)) ? Image.FromStream(File.Open(Cast.IconPath(_apptype, replacing_app.Icon), FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) : new Bitmap(1, 1); + replacing_appbutton.GroupName = replacing_app.Group; + replacing_appbutton.Visible = !replacing_app.Prototype; + replacing_appbutton.ActiveDirectoryGroups = replacing_app.ActiveDirectoryGroups; + accepted = true; + this.Invalidate(textbounds); + } + catch (Exception ex) + { + Log.EventLog.Write("AppButton nicht ersetzbar", LogClassification.MediumError, ex); + accepted = false; + } + this.SortListButtons(); + return accepted; + } + + + /// + /// Sortiert die AppButtons und GroupButtons nach Beliebtheit, oder Namen + /// + /// + /// + public List GetSortedButtons(Models.AppList applist) + { + _sortedlist.Clear(); + + if (_grouping) + { + IEnumerable> grouped = (from app in applist.Apps group app by app.Group); + grouped.ToList().ForEach(async (group) => + { + if (group.Count(app => Cast.AppVisibility(app)) >= 2 && group.Key != string.Empty) + { + this.Invoke(new MethodInvoker(delegate + { + try + { + this.AddGroupButton(group.Select(app => app).ToArray()); + } + catch (Exception ex) + { + Log.EventLog.Write("Konnte App-Gruppe nicht erstellen", LogClassification.CriticalError, ex); + } + })); + await Task.Delay(1); + } + else if (group.Count(app => Cast.AppVisibility(app)) < 2 || group.Key == string.Empty) + { + group.Select(app => app).ToList().ForEach(async app => + { + this.Invoke(new MethodInvoker(delegate + { + try + { + AppButton appbutton = this.CreateAppButton(app); + _sortedlist.Add(appbutton); + } + catch (Exception ex) + { + Log.EventLog.Write("Konnte App nicht erstellen", LogClassification.CriticalError, ex); + } + })); + await Task.Delay(1); + }); + } + }); + } + else + { + applist.Apps.ForEach(async app => + { + _sortedlist.Add(this.CreateAppButton(app)); + await Task.Delay(1); + }); + } + this.SortListButtons(); + return _sortedlist; + } + + + /// + /// Legt die kleinstmögliche Höhe des AppListPanels fest. Dies ist immer die gesamte Höhe des vertikal dargestellten Textes + /// + private void SetMinmimumSize() + { + this.MinimumSize = new Size(this.MinimumSize.Width, (int)Math.Floor(TextRenderer.MeasureText(_listname, this.Font).Width * (decimal)1.2)); + } + + + /// + /// Eine Methode um hinzugefügte Steuerelemente nicht über dem ListName anzuordnen + /// + public void SetListNamePadding() + { + this.Padding = new Padding(textbounds.Width, this.Padding.Top, this.Padding.Right, this.Padding.Bottom); + } + + + protected override void OnHandleCreated(EventArgs e) + { + base.OnHandleCreated(e); + this.FindForm().LocationChanged += AppListPanel_LocationChanged; + } + + + private void AppListPanel_LocationChanged(object sender, EventArgs e) + { + var _this = sender as FormMain; + this.Invalidate(textbounds); + } + + + protected override void OnMouseDown(MouseEventArgs e) + { + //if(e.Button == MouseButtons.Right) + //{ + // this.ContextMenuStrip = new ContextMenuStrip(); + + // var drag = new DragDropDataType("clipboard"); + // int new_id = AppLists.Favorites.Apps == null || AppLists.Favorites.Apps.Count == 0 ? 1 : AppLists.Favorites.Apps.Max(app => app.ID) + 1; + // MessageBox.Show(drag.DragAs.GetDescription()); + + // if (!(drag.DragAs == DragType.Html || drag.DragAs == DragType.Text || drag.DragAs == DragType.Directory)) + // return; + + // if (drag.DragAs == DragType.Text || drag.DragAs == DragType.Html) + // { + // this.ContextMenuStrip.Items.Add("Webseite eingfügen", null, (s, evt) => + // { + // // Versucht einen Namen anhand eines Webseiten-Links zu generieren + // string name_try = drag.Data.ToString(); + // if (Config.Main.WebDomains.Any(dom => name_try.Contains(dom))) + // { + // string domain = Config.Main.WebDomains.First(dom => name_try.Contains(dom)); + // if (name_try.Contains("http://")) + // name_try = name_try.Substring(name_try.IndexOf("http://"), name_try.LastIndexOf(domain) + domain.Length); + // else if (name_try.Contains("https://")) + // name_try = name_try.Substring(name_try.IndexOf("https://"), name_try.LastIndexOf(domain) + domain.Length); + // else if (name_try.StartsWith("www.")) + // name_try = name_try.Substring(name_try.IndexOf("www."), name_try.LastIndexOf(domain) + domain.Length); + // else if (name_try.Where(chr => chr == '/').Count() > 0) + // name_try = name_try.Substring(0, name_try.IndexOf("/")); + // } + // var msgbox = XObjects.MessageBox("Neuen Namen für die App eingeben", NotifyButtons.OkCancel, NotifyType.TextBox, new Size(350, 150), "Wie soll die App heißen", name_try); + // if (msgbox.Result == DialogResult.OK) + // { + // string sys_webbrowsericon = "webbrowser.png"; + // string appiconname = msgbox.Value.ToString() + // .Replace(@"\", "_") + // .Replace(@"/", "_") + // .Replace(@":", "_") + // .Replace(@"*", "_") + // .Replace(@"?", "_") + // .Replace("\"", "_") + // .Replace(@"<", "_") + // .Replace(@">", "_") + // .Replace(@"|", "_"); + + // Models.App appnew = new Models.App() + // { + // ActiveDirectoryGroups = null, + // Group = "", + // Description = "Öffnet die verlinkte Internetadresse mit dem Microsoft Edge Browser", + // ID = new_id, + // Icon = appiconname, + // Prototype = false, + // Name = msgbox.Value.ToString(), + // Created = DateTime.Now, + // LastModified = DateTime.Now, + // Execute = new Models.Execute[] { new Models.Execute() { Args = "", Command = drag.Data.ToString() } } + // }; + // if (File.Exists($@"{Paths.Icons.Directory}\System\{sys_webbrowsericon}")) + // { + // using (FileStream fs_image = new FileStream($@"{Paths.Icons.Directory}\System\{sys_webbrowsericon}", FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite)) + // { + // using (Image img = new Bitmap(fs_image)) + // { + // img.Save(Paths.Favorites.Icons.Directory + appiconname); + // AlternateWebbrowser.DrawWebBrowserIcon(img); + // } + // } + // } + // Creator.AddApp(AppType.Favorites, appnew); + // } + // }); + + // } + // else if (drag.DragAs == DragType.File) + // { + // this.ContextMenuStrip.Items.Add("Datei verknüpfen", null, (s, evt) => + // { + // bool manyfiles = ((string[])drag.Data).Length > 1; + // List appstogroup = new List(); + // ((string[])drag.Data).ToList().ForEach(filename => + // { + // string imagename = $"{Path.GetFileNameWithoutExtension(filename)}({Path.GetExtension(filename).Replace(".", "")}).png"; + // Task.WaitAll(Task.Factory.StartNew(delegate + // { + // try + // { + // ((Icon)Icon.ExtractAssociatedIcon(filename)).ToBitmap().Save($@"{Paths.Favorites.Icons.Directory}\{imagename}"); + // } + // catch (Exception ex) + // { + // Log.EventLog.Write("Bild nicht gespeichert", LogClassification.LowError, ex); + + // } + // })); + + // Models.App appnew = new Models.App() + // { + // ActiveDirectoryGroups = null, + // Group = new FileInfo(filename).Directory.Name, + // Description = $"Startet {Path.GetFileName(filename)}", + // ID = AppLists.Favorites.Apps.Max(app => app.ID) + 1, + // Icon = imagename, + // Prototype = false, + // Created = DateTime.Now, + // LastModified = DateTime.Now, + // Name = Path.GetFileName(filename), + // Execute = new Models.Execute[] + // { + // new Models.Execute() { Args = "", Command = filename } + // } + // }; + // appstogroup.Add(appnew); + // try + // { + // Creator.AddApp(AppType.Favorites, appnew); + // } + // catch (Exception ex) + // { + // Log.EventLog.Write("App per Drag'n Drop nicht erstellt", LogClassification.CriticalError, ex); + // } + // }); + // if (manyfiles) + // { + // this.AddGroupButton(appstogroup.ToArray()); + // } + // }); + + // } + // else if (drag.DragAs == DragType.Directory) + // { + // this.ContextMenuStrip.Items.Add("Ordner verknüpfen", null, (s, evt) => + // { + // string path = ((string[])drag.Data)[0]; + // string directoryname = new DirectoryInfo(path).Name; + // string icon = "folder.png"; + // var msgbox = XObjects.MessageBox($"Soll der Ordner gruppiert werden?" + + // $"\n\"Ja\": Inhalt wird unter dem Namen \"{directoryname}\" gruppiert." + + // $"\n\"Nein\" Öffnet den Ort beim klicken der App im Windows-Explorer", NotifyButtons.YesNoCancel, NotifyType.Message, new Size(400, 200), "Verknüpfung erstellen", null); + // if (msgbox.Result == DialogResult.No) + // { + // Models.App appnew = new Models.App() + // { + // ActiveDirectoryGroups = null, + // Group = null, + // Description = $"Öffnet das Verzeichnis \"{directoryname}\"", + // ID = new_id, + // Icon = File.Exists($@"{Paths.Icons.Directory}\System\{icon}") ? icon : null, + // Prototype = false, + // Name = directoryname, + // Created = DateTime.Now, + // LastModified = DateTime.Now, + // Execute = new Models.Execute[] + // { + // new Models.Execute() { Args = "", Command = path } + // } + // }; + // if (File.Exists($@"{Paths.Icons.Directory}\System\{icon}")) + // File.Copy($@"{Paths.Icons.Directory}\System\{icon}", Paths.Favorites.Icons.Directory + @"folder.png", true); + // Creator.AddApp(AppType.Favorites, appnew); + // } + // else if (msgbox.Result == DialogResult.Yes) + // { + // var di = new DirectoryInfo(((string[])drag.Data)[0]); + // if (di.GetDirectories().Length > 0) + // File.Copy($@"{Paths.Icons.Directory}\System\{icon}", Paths.Favorites.Icons.Directory + icon, !File.Exists($@"{Paths.Favorites.Icons.Directory}\System\{icon}")); + // di.GetDirectories("*", SearchOption.TopDirectoryOnly).ToList().ForEach(dir => + // { + // Models.App appnew = new Models.App() + // { + // ActiveDirectoryGroups = null, + // Group = di.Name, + // Description = $"Öffnet das Verzeichnis \"{dir.Name}\"", + // ID = new_id, + // Icon = File.Exists($@"{Paths.Icons.Directory}\System\{icon}") ? icon : null, + // Prototype = false, + // Name = dir.Name, + // Created = DateTime.Now, + // LastModified = DateTime.Now, + // Execute = new Models.Execute[] + // { + // new Models.Execute() { Args = "", Command = dir.FullName } + // } + // }; + // Creator.AddApp(AppType.Favorites, appnew); + // new_id++; + // }); + // di.GetFiles("*", SearchOption.TopDirectoryOnly).ToList().ForEach(file => + // { + // if (file.Name.ToLower() != "thumbs.db") + // { + // string imagename = $"{Path.GetFileNameWithoutExtension(file.Name)}({Path.GetExtension(file.Name).Replace(".", "")}).png"; + // try + // { + // Task.WaitAll(Task.Factory.StartNew(delegate + // { + // try + // { + // Icon.ExtractAssociatedIcon(file.FullName).ToBitmap().Save($@"{Paths.Favorites.Icons.Directory}{imagename}"); + // } + // catch (Exception ex) + // { + // //Log.EventLog.Write($"Symbol von \"{imagename}\" nicht zulässig", LogClassification.LowError, ex); + // } + // })); + // } + // catch (Exception ex) + // { + // Log.EventLog.Write("Bild nicht gespeichert", LogClassification.LowError, ex); + // } + + + // Models.App appnew = new Models.App() + // { + // ActiveDirectoryGroups = null, + // Group = file.Directory.Name, + // ID = new_id, + // Icon = imagename, + // Name = file.Name, + // Created = DateTime.Now, + // LastModified = DateTime.Now, + // Execute = new Models.Execute[] + // { + // new Models.Execute() { Args = "", Command = file.FullName } + // } + // }; + // Creator.AddApp(AppType.Favorites, appnew); + // new_id++; + // } + // }); + // } + // path = null; + // }); + // this.ContextMenuStrip.Show(Cursor.Position); + // } + + + + + //} + if(e.Button == MouseButtons.Left) + mousedown = _resizing && gripbounds.Contains(this.PointToClient(MousePosition)); + base.OnMouseDown(e); + } + + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + bool gripin = gripbounds.Contains(this.PointToClient(MousePosition)); + if (_resizing && gripin) + { + Cursor.Current = Cursors.SizeNS; + } + if (mousedown) + { + this.Height = this.PointToClient(MousePosition).Y - this.ClientRectangle.Top; + this.Update(); + } + } + + + protected override void OnMouseUp(MouseEventArgs e) + { + if (this.Created) + { + if (mousedown) + { + Accessor.GetListProperties(_apptype).Height = this.Height; + JSON.Save(JSONConfig.User); + Win32API.SendMessage(Forms.Main.Handle, (int)WM.ENTERSIZEMOVE, 0, 0); + Win32API.SendMessage(Forms.Main.Handle, (int)WM.EXITSIZEMOVE, 0, 0); + } + } + mousedown = false; + base.OnMouseUp(e); + } + + + protected override void OnScroll(ScrollEventArgs se) + { + base.OnScroll(se); + if (se.ScrollOrientation == ScrollOrientation.VerticalScroll) + { + this.Invalidate(); + } + } + + protected override void OnMouseWheel(MouseEventArgs e) + { + base.OnMouseWheel(e); + if (this.Created) + { + this.Invalidate(); + } + } + + + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + + if (this.Height != tempheight && !this.DesignMode) + { + textbounds = new Rectangle(new Point(0, 0), new Size((int)Math.Floor(TextRenderer.MeasureText(_listname, this.Font).Height * 1.5), this.Height)); + this.SetListNamePadding(); + tempheight = this.Height; + if (XObjects.AllAppListPanels != null && XObjects.AllAppListPanels.All(applist => applist.Created)) + { + XObjects.AllAppListPanels.ForEach(applist => applist.Update()); + } + this.Invalidate(); + } + gripbounds = new Rectangle(this.ClientRectangle.Left, this.ClientRectangle.Bottom - this.Padding.Bottom, this.Width, this.Padding.Bottom); + } + + protected override void OnFontChanged(EventArgs e) + { + base.OnFontChanged(e); + textbounds = new Rectangle(new Point(0, 0), new Size((int)Math.Floor(TextRenderer.MeasureText(_listname, this.Font).Height * 1.5), this.Height)); + this.SetMinmimumSize(); + this.Invalidate(); + } + + + protected override void OnPaddingChanged(EventArgs e) + { + base.OnPaddingChanged(e); + this.Padding = new Padding( + this.Padding.Left < textbounds.Width ? textbounds.Width : this.Padding.Left, + this.Padding.Top < _border.Y ? _border.Y : this.Padding.Top, + this.Padding.Right < _border.X ? _border.X : this.Padding.Right, + this.Padding.Bottom < _border.Y ? _border.Y : this.Padding.Bottom); + } + + protected override void OnControlAdded(ControlEventArgs e) + { + base.OnControlAdded(e); + if (e.Control != flowcontent) + { + flowcontent.Controls.Add(e.Control); + this.Controls.Remove(e.Control); + } + } + + + protected override void OnControlRemoved(ControlEventArgs e) + { + if (e.Control != flowcontent) + flowcontent.Controls.Remove(e.Control); + base.OnControlRemoved(e); + } + + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; + e.Graphics.DrawString(_listname, this.Font, new SolidBrush(Coloring.GetReadableForeColor(this.BackColor)), textbounds, new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center, FormatFlags = StringFormatFlags.DirectionVertical }); + e.Graphics.DrawLine(new Pen(_bordercolor, _border.X), new Point(textbounds.Right - _border.X, textbounds.Top), new Point(textbounds.Right - _border.X, textbounds.Bottom)); + if (_resizing) + { + e.Graphics.DrawLine(new Pen(_bordercolor, _border.Y), new Point(e.ClipRectangle.Left, e.ClipRectangle.Bottom - _border.Y), new Point(e.ClipRectangle.Right, e.ClipRectangle.Bottom - _border.Y)); + } + } + + + protected override void OnDragOver(DragEventArgs drgevent) + { + base.OnDragOver(drgevent); + if (_apptype == AppType.Favorites) + { + drgevent.Effect = DragDropEffects.Copy; + using (Graphics g = flowcontent.CreateGraphics()) + g.DrawRectangle(new Pen(Config.Main.Colors.Window.Action, Config.Main.Sizes.List.Border.Y) { Alignment = System.Drawing.Drawing2D.PenAlignment.Inset }, new Rectangle(new Point(0, 0), new Size(flowcontent.ClientRectangle.Width - Config.Main.Sizes.List.Border.Y, flowcontent.ClientRectangle.Height - Config.Main.Sizes.List.Border.Y))); + } + } + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + _showing = Visible; + if (this.Created) + { + Accessor.SetLastAppListPanel(); + Forms.Main.SetMinimumSize(); + Forms.Main.SetStartValue(); + Config.User.Window.Size = Forms.Main.Size; + JSON.Save(JSONConfig.User); + } + } + + protected override void OnDragLeave(EventArgs e) + { + base.OnDragLeave(e); + if (_apptype == AppType.Favorites) + using (Graphics g = flowcontent.CreateGraphics()) + g.Clear(this.BackColor); + } + + protected override void OnDragDrop(DragEventArgs drgevent) + { + base.OnDragDrop(drgevent); + DragDropDataType drag = new DragDropDataType(drgevent); + int new_id = AppLists.Favorites.Apps == null || AppLists.Favorites.Apps.Count == 0 ? 1 : AppLists.Favorites.Apps.Max(app => app.ID) + 1; + + this.DoDrop(drag, new_id); + + if (_apptype == AppType.Favorites) + using (Graphics g = flowcontent.CreateGraphics()) + g.Clear(this.BackColor); + this.Invalidate(textbounds); + } + + + public void DoDrop(DragDropDataType drag, int new_id) + { + Models.App favorite_app = new Models.App(); + if (drag.DragAs == DragType.AppButton) + { + try + { + AppButton appproperties = drag.Data as AppButton; + favorite_app = new Models.App() + { + ActiveDirectoryGroups = appproperties.ActiveDirectoryGroups, + Execute = new Models.Execute[] { + new Models.Execute() { + Command = Creator.AppLinkCommand(appproperties.AppType, appproperties.ID) + } + }, + //Execute = appproperties.Execute, + Group = appproperties.GroupName, + Description = appproperties.Description, + Icon = appproperties.Image == new Bitmap(1, 1) ? null : Accessor.GetAppList(appproperties.AppType).Apps.Find(app => app.ID == appproperties.ID).Icon, + Prototype = !appproperties.Visible, + Name = appproperties.Text, + Created = DateTime.Now, + LastModified = DateTime.Now + }; + + if (AppLists.Favorites.Apps.Any(app => app.Name == ((AppButton)drag.Data).Text)) + { + // Wenn der Name der App bereits existiert wird dieser überschrieben + Models.App existing_app = AppLists.Favorites.Apps.Find(app => app.Name == ((AppButton)drag.Data).Text); + bool differences = false; + + // Ein vergleich der beiden Apps + for (int i = 0; i < existing_app.GetType().GetProperties().Length; i++) + { + // Existiert eine Veränderung in irgendeiner Eigenschaft, wird gefragt, ob die App ersetzt werden soll + if (existing_app.GetType().GetProperties()[i].GetValue(existing_app, null) == null || existing_app.GetType().GetProperties()[i].Name == "ID") + continue; + System.Reflection.PropertyInfo appdummy = existing_app.GetType().GetProperties()[i]; + object existing = existing_app.GetType().GetProperties()[i].GetValue(existing_app, null).GetType() == typeof(string[]) ? + string.Join("\n", (string[])existing_app.GetType().GetProperties()[i].GetValue(existing_app, null)) : + existing_app.GetType().GetProperties()[i].GetValue(existing_app, null).GetType() == typeof(Models.Execute[]) ? + string.Join("\n\n", ((Models.Execute[])existing_app.GetType().GetProperties()[i].GetValue(existing_app, null)).Select(exec => exec.Command + "\n" + exec.Args)) : + existing_app.GetType().GetProperties()[i].GetValue(existing_app, null); + + object replacing = (favorite_app.GetType().GetProperties()[i].GetValue(favorite_app, null) == null) ? "" : favorite_app.GetType().GetProperties()[i].GetValue(favorite_app, null).GetType() == typeof(string[]) ? + string.Join("\n", (string[])favorite_app.GetType().GetProperties()[i].GetValue(favorite_app, null)) : + favorite_app.GetType().GetProperties()[i].GetValue(favorite_app, null).GetType() == typeof(Models.Execute[]) ? + string.Join("\n\n", ((Models.Execute[])favorite_app.GetType().GetProperties()[i].GetValue(favorite_app, null)).Select(exec => exec.Command + "\n" + exec.Args)) : + favorite_app.GetType().GetProperties()[i].GetValue(favorite_app, null); + + if (!existing.Equals(replacing)) + { + differences = true; + break; + } + } + + // Sind keine Unterschiede zwischen der vorhanden und der zu ersetzenden App vorhanden, wird der Vorgang abgebrochen + if (!differences) + return; + + var msgbox = XObjects.MessageBox("Der Name der App wird bereits in den Favoriten verwendet. Wenn Sie auf \"Ja\" klicken, wird die App überschrieben. Auf \"Nein\" und es wird eine neue App erstellt", NotifyButtons.YesNoCancel, NotifyType.Message, new Size(300, 200), "App ersetzen durch neue App", null); + + if (msgbox.Result == DialogResult.Yes) + { + favorite_app.ID = existing_app.ID; + Creator.StreamCopy(Cast.IconPath(appproperties.AppType, Accessor.GetAppList(appproperties.AppType).Apps.Find(app => app.ID == appproperties.ID).Icon), Cast.IconPath(AppType.Favorites, Accessor.GetAppList(appproperties.AppType).Apps.Find(app => app.ID == appproperties.ID).Icon), + (stream) => + { + Creator.ReplaceApp(AppType.Favorites, favorite_app); + }); + } + else if (msgbox.Result == DialogResult.No) + { + favorite_app.ID = new_id; + Creator.StreamCopy(Cast.IconPath(appproperties.AppType, Accessor.GetAppList(appproperties.AppType).Apps.Find(app => app.ID == appproperties.ID).Icon), Cast.IconPath(AppType.Favorites, $"{favorite_app.Name} ({Accessor.GetAppList(_apptype).Apps.Count(app => app.Name.StartsWith(favorite_app.Name))}).png"), + (stream) => + { + favorite_app.Name += $" ({Accessor.GetAppList(_apptype).Apps.Count(app => app.Name.StartsWith(favorite_app.Name))})"; + favorite_app.Icon = $"{favorite_app.Name}.png"; + Creator.AddApp(AppType.Favorites, favorite_app); + }); + } + else if (msgbox.Result == DialogResult.Cancel) + { + return; + } + } + else + { + // Die App wird automatisch erstellt und / oder gruppiert + favorite_app.ID = new_id; + File.Copy(Cast.IconPath(appproperties.AppType, Accessor.GetAppList(appproperties.AppType).Apps.Find(app => app.ID == appproperties.ID).Icon), Cast.IconPath(AppType.Favorites, Accessor.GetAppList(appproperties.AppType).Apps.Find(app => app.ID == appproperties.ID).Icon), true); + Creator.AddApp(AppType.Favorites, favorite_app); + } + this.SortListButtons(); + } + catch (Exception ex) + { + Log.EventLog.Write("DragDropDataType DoDrop - AppButton || FavoriteApp", LogClassification.CriticalError, ex); + } + } + else if (drag.DragAs == DragType.GroupButton) + { + try + { + GroupButton clone = (drag.Data as GroupButton); + List clones = CloneList(clone.ContainedApps).ToList(); + string[] usedicons = new string[0]; + clones.ForEach(app => + { + if (!Accessor.GetAppList(AppType.Favorites).Apps.Exists(favapp => favapp.Name == app.Name)) + { + Models.App favorite = new Models.App() + { + ID = new_id, + Description = app.Description, + ActiveDirectoryGroups = app.ActiveDirectoryGroups, + Created = DateTime.Now, + LastModified = DateTime.Now, + Execute = new Models.Execute[] { new Models.Execute() { Command = Creator.AppLinkCommand(clone.AppType, app.ID) } }, + Group = app.Group, + Name = app.Name, + Icon = app.Icon, + Prototype = app.Prototype + }; + try + { + if (!usedicons.ToList().Exists(icon => icon == app.Icon) && app.Icon != "" && app.Icon != null) + { + File.Copy($@"{Paths.Icons.Directory}\{app.Icon}", Paths.Favorites.Icons.Directory + @"\" + app.Icon, true); + Array.Resize(ref usedicons, usedicons.Length + 1); + usedicons[usedicons.Length - 1] = app.Icon; + } + } + catch (Exception ex) + { + Log.EventLog.Write("Bild nicht gespeichert", LogClassification.LowError, ex); + } + Creator.AddApp(AppType.Favorites, favorite); + new_id++; + } + }); + usedicons = null; + //this.AddGroupButton(clones.ToArray()); + this.SortListButtons(); + } + catch (Exception ex) + { + Log.EventLog.Write("DragDropDataType DoDrop - GroupButton || FavoriteApp", LogClassification.CriticalError, ex); + } + } + else if (drag.DragAs == DragType.Text || drag.DragAs == DragType.Html) + { + // Versucht einen Namen anhand eines Webseiten-Links zu generieren + string name_try = drag.Data.ToString(); + if (Config.Main.WebDomains.Any(dom => name_try.Contains(dom))) + { + string domain = Config.Main.WebDomains.First(dom => name_try.Contains(dom)); + if (name_try.Contains("http://")) + name_try = name_try.Substring(name_try.IndexOf("http://"), name_try.LastIndexOf(domain) + domain.Length); + else if (name_try.Contains("https://")) + name_try = name_try.Substring(name_try.IndexOf("https://"), name_try.LastIndexOf(domain) + domain.Length); + else if (name_try.StartsWith("www.")) + name_try = name_try.Substring(name_try.IndexOf("www."), name_try.LastIndexOf(domain) + domain.Length); + else if (name_try.Where(chr => chr == '/').Count() > 0) + name_try = name_try.Substring(0, name_try.IndexOf("/")); + } + var msgbox = XObjects.MessageBox("Neuen Namen für die App eingeben", NotifyButtons.OkCancel, NotifyType.TextBox, new Size(350, 150), "Wie soll die App heißen", name_try); + if (msgbox.Result == DialogResult.OK) + { + string sys_webbrowsericon = "webbrowser.png"; + string appiconname = msgbox.Value.ToString() + .Replace(@"\", "_") + .Replace(@"/", "_") + .Replace(@":", "_") + .Replace(@"*", "_") + .Replace(@"?", "_") + .Replace("\"", "_") + .Replace(@"<", "_") + .Replace(@">", "_") + .Replace(@"|", "_"); + + Models.App appnew = new Models.App() + { + ActiveDirectoryGroups = null, + Group = "", + Description = $"Öffnet die verlinkte Internetadresse {msgbox.Value.ToString()} mit dem Microsoft Edge Browser", + ID = new_id, + Icon = appiconname, + Prototype = false, + Name = msgbox.Value.ToString(), + Created = DateTime.Now, + LastModified = DateTime.Now, + Execute = new Models.Execute[] { new Models.Execute() { Args = "", Command = drag.Data.ToString() } } + }; + if (File.Exists($@"{Paths.Icons.Directory}\System\{sys_webbrowsericon}")) + { + using (FileStream fs_image = new FileStream($@"{Paths.Icons.Directory}\System\{sys_webbrowsericon}", FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite)) + { + using (Image img = new Bitmap(fs_image)) + { + img.Save(Paths.Favorites.Icons.Directory + appiconname); + AlternateWebbrowser.DrawWebBrowserIcon(img); + } + } + } + Creator.AddApp(AppType.Favorites, appnew); + } + } + else if (drag.DragAs == DragType.File) + { + bool manyfiles = ((string[])drag.Data).Length > 1; + List appstogroup = new List(); + ((string[])drag.Data).ToList().ForEach(filename => + { + string imagename = $"{Path.GetFileNameWithoutExtension(filename)}({Path.GetExtension(filename).Replace(".", "")}).png"; + Task.WaitAll(Task.Factory.StartNew(delegate + { + try + { + ((Icon)Icon.ExtractAssociatedIcon(filename)).ToBitmap().Save($@"{Paths.Favorites.Icons.Directory}\{imagename}"); + } + catch (Exception ex) + { + Log.EventLog.Write("Bild nicht gespeichert", LogClassification.LowError, ex); + return; + } + })); + try + { + Models.App appnew = new Models.App() + { + ActiveDirectoryGroups = null, + Group = new FileInfo(filename).Directory.Name, + Description = $"Startet {Path.GetFileName(filename)}", + ID = new_id, + Icon = imagename, + Prototype = false, + Created = DateTime.Now, + LastModified = DateTime.Now, + Name = Path.GetFileName(filename), + Execute = new Models.Execute[] + { + new Models.Execute() { Args = "", Command = filename } + } + }; + appstogroup.Add(appnew); + Creator.AddApp(AppType.Favorites, appnew); + } + catch (Exception ex) + { + Log.EventLog.Write("App per Drag'n Drop nicht erstellt", LogClassification.CriticalError, ex); + } + }); + if (manyfiles) + { + this.AddGroupButton(appstogroup.ToArray()); + } + } + else if (drag.DragAs == DragType.Directory) + { + string path = ((string[])drag.Data)[0]; + string directoryname = new DirectoryInfo(path).Name; + string icon = "folder.png"; + var msgbox = XObjects.MessageBox($"Soll der Ordner gruppiert werden?" + + $"\n\"Ja\": Inhalt wird unter dem Namen \"{directoryname}\" gruppiert." + + $"\n\"Nein\" Öffnet den Ort beim klicken der App im Windows-Explorer", NotifyButtons.YesNoCancel, NotifyType.Message, new Size(400,200), "Verknüpfung erstellen", null); + if (msgbox.Result == DialogResult.No) + { + Models.App appnew = new Models.App() + { + ActiveDirectoryGroups = null, + Group = null, + Description = $"Öffnet das Verzeichnis \"{directoryname}\"", + ID = new_id, + Icon = File.Exists($@"{Paths.Icons.Directory}\System\{icon}") ? icon : null, + Prototype = false, + Name = directoryname, + Created = DateTime.Now, + LastModified = DateTime.Now, + Execute = new Models.Execute[] + { + new Models.Execute() { Args = "", Command = path } + } + }; + if (File.Exists($@"{Paths.Icons.Directory}\System\{icon}")) + File.Copy($@"{Paths.Icons.Directory}\System\{icon}", Paths.Favorites.Icons.Directory + @"folder.png", true); + Creator.AddApp(AppType.Favorites, appnew); + } + else if (msgbox.Result == DialogResult.Yes) + { + var di = new DirectoryInfo(((string[])drag.Data)[0]); + if (di.GetDirectories().Length > 0) + File.Copy($@"{Paths.Icons.Directory}\System\{icon}", Paths.Favorites.Icons.Directory + icon, !File.Exists($@"{Paths.Favorites.Icons.Directory}\System\{icon}")); + di.GetDirectories("*", SearchOption.TopDirectoryOnly).ToList().ForEach(dir => + { + Models.App appnew = new Models.App() + { + ActiveDirectoryGroups = null, + Group = di.Name, + Description = $"Öffnet das Verzeichnis \"{dir.Name}\"", + ID = new_id, + Icon = File.Exists($@"{Paths.Icons.Directory}\System\{icon}") ? icon : null, + Prototype = false, + Name = dir.Name, + Created = DateTime.Now, + LastModified = DateTime.Now, + Execute = new Models.Execute[] + { + new Models.Execute() { Args = "", Command = dir.FullName } + } + }; + Creator.AddApp(AppType.Favorites, appnew); + new_id++; + }); + di.GetFiles("*", SearchOption.TopDirectoryOnly).ToList().ForEach(file => + { + if (file.Name.ToLower() != "thumbs.db") + { + string imagename = $"{Path.GetFileNameWithoutExtension(file.Name)}({Path.GetExtension(file.Name).Replace(".", "")}).png"; + try + { + Task.WaitAll(Task.Factory.StartNew(delegate + { + try + { + Icon.ExtractAssociatedIcon(file.FullName).ToBitmap().Save($@"{Paths.Favorites.Icons.Directory}{imagename}"); + } + catch (Exception ex) + { + //Log.EventLog.Write($"Symbol von \"{imagename}\" nicht zulässig", LogClassification.LowError, ex); + } + })); + } + catch (Exception ex) + { + Log.EventLog.Write("Bild nicht gespeichert", LogClassification.LowError, ex); + } + + + Models.App appnew = new Models.App() + { + ActiveDirectoryGroups = null, + Group = file.Directory.Name, + ID = new_id, + Icon = imagename, + Name = file.Name, + Created = DateTime.Now, + LastModified = DateTime.Now, + Execute = new Models.Execute[] + { + new Models.Execute() { Args = "", Command = file.FullName } + } + }; + Creator.AddApp(AppType.Favorites, appnew); + new_id++; + } + }); + } + path = null; + } + } + + + /// + /// Kopiert die Apps einer AppGruppe in eine Liste, ohne die Originale zu verändern + /// + /// Die Liste, aus der die Apps entnommen werden + /// + public static IEnumerable CloneList(List oldList) + { + foreach (var item in oldList) + { + yield return new Models.App() { ID = item.ID, ActiveDirectoryGroups = item.ActiveDirectoryGroups, Execute = item.Execute, Group = item.Group, Icon = item.Icon, Name = item.Name, Prototype = item.Prototype }; + } + } + } + + + [Browsable(false), ToolboxItem(false)] + public class FlowContent : FlowLayoutPanel + { + public FlowContent() : base() + { + this.AutoSizeMode = AutoSizeMode.GrowAndShrink; + } + } +} diff --git a/GFATask/Controls/GroupButton.Designer.cs b/GFATask/Controls/GroupButton.Designer.cs new file mode 100644 index 0000000..9bd31e4 --- /dev/null +++ b/GFATask/Controls/GroupButton.Designer.cs @@ -0,0 +1,37 @@ + +namespace GFATask +{ + partial class GroupButton + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/GFATask/Controls/GroupButton.cs b/GFATask/Controls/GroupButton.cs new file mode 100644 index 0000000..5ef0dc5 --- /dev/null +++ b/GFATask/Controls/GroupButton.cs @@ -0,0 +1,309 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace GFATask +{ + [Browsable(false), ToolboxItem(false)] + public partial class GroupButton : AppListButton + { + private Collection _containedappbuttons = new Collection(); + public Collection ContainedAppButtons + { + get => _containedappbuttons; + set + { + _containedappbuttons = value; + } + } + + + private List _containedapps = new List(); + public List ContainedApps + { + get => _containedapps; + set + { + _containedapps = value; + } + } + + + private FormAppButtonGroup _appbuttongroup; + public FormAppButtonGroup AppButtonGroup { get => _appbuttongroup; } + + + private ContextMenuStrip _contextmenustrip = new ContextMenuStrip(); + new public ContextMenuStrip ContextMenuStrip + { + get + { + XObjects.ContextMenuStrip = _contextmenustrip; + return _contextmenustrip; + } + set + { + _contextmenustrip = value; + _contextmenustrip.Items.Clear(); + + if (AppType == AppType.Favorites) + { + _contextmenustrip.Items.Add(new ToolStripMenuItem("Umbennen", null, (sender, e) => + { + var msgbox = XObjects.MessageBox($"{this.Text}", NotifyButtons.YesNo, NotifyType.TextBox, new Size(250, 150), $"{this.Text} umbenennen", this.Text); + if(msgbox.Result == DialogResult.Yes) + { + _containedapps.ForEach(app => + { + app.Group = msgbox.Value.ToString(); + Creator.ReplaceApp(AppType, app); + }); + + this.Text = msgbox.Value.ToString(); + _contextmenustrip.Items["remove_applistbutton"].Text = $"{this.Text} entfernen"; + this.Name = Cast.GroupButtonName(AppType, this.Text); + } + }, "rename_applistbutton")); + _contextmenustrip.Items.Add(new ToolStripMenuItem($"{this.Text} entfernen", null, (s, evt) => + { + for (int i = _containedapps.Count - 1; i >= 0; i--) + { + Creator.RemoveApp(AppType, _containedapps[i]); + } + Accessor.GetAppListPanel(AppType).RemoveGroupButton(this.Name, true); + }, "remove_applistbutton")); + } + else + { + _contextmenustrip.Items.Add(new ToolStripMenuItem($"{this.Text} zu Favoriten hinzufügen", null, (s, evt) => + { + List clones = new List(); + string[] usedicons = new string[0]; + _containedapps.ForEach(app => + { + app.ID = AppLists.Favorites.Apps.Max(listapp => listapp.ID) + 1; + try + { + if (!usedicons.ToList().Exists(icon => icon == app.Icon) && app.Icon != "" && app.Icon != null) + { + File.Copy($@"{Paths.Icons.Directory}\{app.Icon}", Paths.Favorites.Icons.Directory + @"\" + app.Icon, true); + Array.Resize(ref usedicons, usedicons.Length + 1); + usedicons[usedicons.Length - 1] = app.Icon; + } + } + catch (Exception ex) + { + Log.EventLog.Write("Bild nicht gespeichert", LogClassification.LowError, ex); + } + clones.Add(app); + Creator.AddApp(AppType.Favorites, app); + }); + usedicons = null; + Accessor.GetAppListPanel(AppType.Favorites).AddGroupButton(clones.ToArray()); + }, "to_favorites")); + } + } + } + + public override AppType AppType + { + get => base.AppType; set + { + base.AppType = value; + this.ContextMenuStrip = _contextmenustrip; + } + } + + + public GroupButton() + { + InitializeComponent(); + _containedappbuttons.CollectionChanged += _containedappbuttons_CollectionChanged; + ContextMenuStrip.SetDefaultDesign(); + this.ToolTipText = "Apps: "; + } + + + public void RemoveApp(Models.App app) + { + if(_containedappbuttons.ToList().Exists(appbutton => appbutton.Name == Cast.AppButtonName(AppType, app))) + _containedappbuttons.Remove(_containedappbuttons.First(appbutton => appbutton.Name == Cast.AppButtonName(AppType, app))); + _containedapps.Remove(app); + if(_appbuttongroup != null) + { + if(_appbuttongroup.MyGroupButton == this) + { + _appbuttongroup.RemoveButton(app); + } + } + } + + + private void _containedappbuttons_CollectionChanged(object sender, System.Collections.Events.CollectionChangedEventArgs e) + { + + if (e.ChangeType == CollectionChangeType.Add) + { + foreach (var adgroup in e.Element.ActiveDirectoryGroups != null ? e.Element.ActiveDirectoryGroups : new string[] { "" }) + { + if (!_activedirectorygroups.Contains(adgroup)) + { + Array.Resize(ref _activedirectorygroups, _activedirectorygroups.Length + 1); + _activedirectorygroups[_activedirectorygroups.Length - 1] = adgroup; + } + } + e.Element.MouseDown += Element_MouseDown; + } + else if (e.ChangeType == CollectionChangeType.Remove) + { + e.Element.MouseDown -= Element_MouseDown; + if (_containedappbuttons.Count == 1) + { + Accessor.GetAppListPanel(AppType).RemoveGroupButtonIfNeeded(this.Name); + if (_appbuttongroup != null && _appbuttongroup.Visible) + { + _appbuttongroup.Close(); + } + } + } + + if (Config.User.Prevalence) + this.Image = _containedappbuttons + .Where(button => button.Visible) + .OrderBy(button => button.Prevalence.CountClicks) + .Take(4) + .Select(button => new Bitmap(button.Image)).ToArray() + .Merge(new Size(this.ImageSize.Width + 2, this.ImageSize.Height + 2), 2); + else + this.Image = _containedappbuttons + .Where(button => button.Visible) + .OrderBy(button => button.Text) + .Take(4) + .Select(button => new Bitmap(button.Image)).ToArray() + .Merge(new Size(this.ImageSize.Width + 2, this.ImageSize.Height + 2), 2); + + + this.Invalidate(); + } + + private void Element_MouseDown(object sender, MouseEventArgs e) + { + Prevalence = Accessor.GetPrevalencia(AppType, _containedappbuttons.ToList().Find(app => app.Prevalence.CountClicks == _containedappbuttons.Max(appbutton => appbutton.Prevalence.CountClicks)).ID ); + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + string appcountstring = _containedapps.Count(app => Cast.AppVisibility(app)).ToString(); + GraphicsPath appCountRect; + appCountRect = Visualization.RoundedRectangle.Create(new Rectangle( + new Point(ImageBounds.Right - (int)(e.Graphics.MeasureString(appcountstring, this.Font).Width / 4) - 3, this.BorderBounds.Y + this.BorderSize), + new Size((int)e.Graphics.MeasureString(appcountstring, this.Font).Height - 1, (int)e.Graphics.MeasureString(appcountstring, this.Font).Height - 1)), 5); + e.Graphics.SetClip(new Rectangle(this.TextBounds.Location, new Size(this.TextBounds.Width , this.TextBounds.Height))); + e.Graphics.Clear(this.BackColor); + + e.Graphics.SetClip(this.ClientRectangle); + e.Graphics.FillPath(Brushes.Red, appCountRect); + e.Graphics.DrawString(appcountstring, this.Font, Brushes.White, appCountRect.GetBounds(), new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center, FormatFlags = StringFormatFlags.NoClip | StringFormatFlags.NoWrap, Trimming = StringTrimming.None }); + + + if (!this.ImageOnly) + { + e.Graphics.DrawString(Text, this.Font, new SolidBrush(this.ForeColor), new Rectangle((int)appCountRect.GetBounds().Right, this.TextBounds.Y + this.BorderSize + this.Radius, this.BorderBounds.Right - (int)appCountRect.GetBounds().Right - this.BorderSize - this.Radius, this.TextBounds.Height - (this.Radius * 2) - (this.BorderSize * 2)), new StringFormat() { Alignment = StringAlignment.Near, LineAlignment = StringAlignment.Center, FormatFlags = StringFormatFlags.NoClip | StringFormatFlags.NoWrap, Trimming = StringTrimming.EllipsisCharacter }); + //e.Graphics.DrawString(Text, this.Font, new SolidBrush(this.ForeColor), new Rectangle((int)appCountRect.GetBounds().Right, this.TextBounds.Y + this.BorderSize + this.Radius, this.BorderBounds.Right - (int)appCountRect.GetBounds().Right - this.BorderSize - this.Radius, this.TextBounds.Height - (this.Radius * 2) - (this.BorderSize * 2)), new StringFormat() { Alignment = StringAlignment.Near, LineAlignment = StringAlignment.Center, FormatFlags = StringFormatFlags.NoClip | StringFormatFlags.NoWrap, Trimming = StringTrimming.None }); + } + else + { + this.Width = (int)appCountRect.GetBounds().Right; + } + } + + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + + this.ImageSize = new Size(this.BorderBounds.Height - this.Padding.Vertical - this.Margin.Vertical, this.BorderBounds.Height - this.Padding.Vertical - this.Margin.Vertical); + } + + + protected override void OnLocationChanged(EventArgs e) + { + base.OnLocationChanged(e); + if (_appbuttongroup != null && _appbuttongroup.MyGroupButton == this) + { + // Wenn der obere Bereich des GroupButtons, oben aus dem AppListPanel austritt + if (this.Top < 0) + { + // Wenn der untere Bereich des GroupButtons, oben aus dem AppListPanel austritt + if (this.Bottom < 0) + { + _appbuttongroup.DesktopLocation = new Point(_appbuttongroup.Left, this.Parent.RectangleToScreen(this.Parent.Bounds).Top - this.Parent.Margin.Top - this.Parent.Parent.Padding.Top - _appbuttongroup.GripSize + 1); + } + // Oder, wenn der untere Bereich des GroupButtons noch sichtbar ist + else + { + _appbuttongroup.DesktopLocation = new Point(_appbuttongroup.Left, this.Parent.RectangleToScreen(this.Bounds).Bottom - _appbuttongroup.GripSize + 1); + } + } + // Wenn der obere Bereich des GroupButtons, im AppListPanel sichtbar ist + else if (this.Top > 0) + { + // Aber der untere Bereich des GroupButtons, unten aus dem AppListPanel austritt + if (this.Bottom > this.Parent.Bottom) + _appbuttongroup.DesktopLocation = new Point(_appbuttongroup.Left, this.Parent.RectangleToScreen(this.Parent.Bounds).Bottom - this.Parent.Padding.Vertical); + // Oder, wenn der untere Bereich des GroupButtons, unten aus dem GFATask austritt + else if (RectangleToScreen(this.DisplayRectangle).Bottom > Forms.Main.DesktopBounds.Bottom - Forms.Main.GripSize) + _appbuttongroup.DesktopLocation = new Point(_appbuttongroup.Left, Forms.Main.DesktopBounds.Bottom - Forms.Main.GripSize - _appbuttongroup.GripSize + 1 + Forms.Main.BorderWidth); + // Alle anderen Möglichkeiten korrigieren die Position des ButtonGroup-Fensters unterhalb des GroupButtons + else + _appbuttongroup.DesktopLocation = new Point(_appbuttongroup.Left, this.Parent.RectangleToScreen(this.Bounds).Bottom - _appbuttongroup.GripSize + 1); + } + } + } + + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + if (e.Button == MouseButtons.Left && !Forms.AppButtonGroup.Visible) + { + _appbuttongroup = Forms.AppButtonGroup; + _appbuttongroup.MyGroupButton = this; + _appbuttongroup.Text = this.Text; + _appbuttongroup.Icon = Icon.FromHandle(new Bitmap(this.Image).GetHicon()); + _appbuttongroup.DesktopLocation = this.PointToScreen(new Point(0 - _appbuttongroup.GripSize + 1, this.Height - _appbuttongroup.GripSize + 1)); + _appbuttongroup.TopMost = true; + Accessor.OpenForm("AppButtonGroup", owner: Forms.Main, closeifopen: true); + } + } + + protected override void OnMouseEnter(EventArgs e) + { + this.ToolTipText = $"Apps:\n{string.Join("\n", _containedapps.OrderBy(app => app.Name).Select(app => app.Name))}"; + base.OnMouseEnter(e); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + if (this.ClientRectangle.Contains(e.Location) && e.Button == MouseButtons.Right ) + { + try + { + this.ContextMenuStrip.Show(this, new Point(this.Padding.Left, this.ClientRectangle.Bottom)); + } + catch (Exception ex) + { + Log.EventLog.Write($"Kontextmenü des GroupButtons {this.Text} fehlerhaft", LogClassification.LowError, ex); + } + } + } + } +} diff --git a/GFATask/Forms/FormAdmin.Designer.cs b/GFATask/Forms/FormAdmin.Designer.cs new file mode 100644 index 0000000..3721b3a --- /dev/null +++ b/GFATask/Forms/FormAdmin.Designer.cs @@ -0,0 +1,216 @@ + +namespace GFATask +{ + partial class FormAdmin + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panelUC = new System.Windows.Forms.Panel(); + this.flpAdminMenu = new System.Windows.Forms.FlowLayoutPanel(); + this.abtnApps = new System.Windows.Forms.AnimationButton(); + this.abtnGeneral = new System.Windows.Forms.AnimationButton(); + this.abtnSettings = new System.Windows.Forms.AnimationButton(); + this.abtnFeatures = new System.Windows.Forms.AnimationButton(); + this.abtnAppClickCounter = new System.Windows.Forms.AnimationButton(); + this.animationButton1 = new System.Windows.Forms.AnimationButton(); + this.tableLayoutPanel1.SuspendLayout(); + this.flpAdminMenu.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.panelUC, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.flpAdminMenu, 0, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 39); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(980, 401); + this.tableLayoutPanel1.TabIndex = 1; + // + // panelUC + // + this.panelUC.Dock = System.Windows.Forms.DockStyle.Fill; + this.panelUC.Location = new System.Drawing.Point(3, 48); + this.panelUC.Name = "panelUC"; + this.panelUC.Size = new System.Drawing.Size(974, 350); + this.panelUC.TabIndex = 3; + // + // flpAdminMenu + // + this.flpAdminMenu.Controls.Add(this.abtnApps); + this.flpAdminMenu.Controls.Add(this.abtnGeneral); + this.flpAdminMenu.Controls.Add(this.abtnSettings); + this.flpAdminMenu.Controls.Add(this.abtnFeatures); + this.flpAdminMenu.Controls.Add(this.abtnAppClickCounter); + this.flpAdminMenu.Controls.Add(this.animationButton1); + this.flpAdminMenu.Dock = System.Windows.Forms.DockStyle.Fill; + this.flpAdminMenu.Location = new System.Drawing.Point(3, 3); + this.flpAdminMenu.Name = "flpAdminMenu"; + this.flpAdminMenu.Size = new System.Drawing.Size(974, 39); + this.flpAdminMenu.TabIndex = 4; + // + // abtnApps + // + this.abtnApps.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.abtnApps.AutoSizeWidth = false; + this.abtnApps.Image = null; + this.abtnApps.ImageBackColor = System.Drawing.Color.Empty; + this.abtnApps.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnApps.Location = new System.Drawing.Point(3, 0); + this.abtnApps.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.abtnApps.Name = "abtnApps"; + this.abtnApps.Size = new System.Drawing.Size(140, 35); + this.abtnApps.TabIndex = 3; + this.abtnApps.Tag = "ucAdminApps"; + this.abtnApps.Text = "Apps"; + this.abtnApps.TextBounds = new System.Drawing.Rectangle(1, 1, 138, 33); + this.abtnApps.ToolTipText = ""; + // + // abtnGeneral + // + this.abtnGeneral.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.abtnGeneral.AutoSizeWidth = false; + this.abtnGeneral.Image = null; + this.abtnGeneral.ImageBackColor = System.Drawing.Color.Empty; + this.abtnGeneral.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnGeneral.Location = new System.Drawing.Point(149, 0); + this.abtnGeneral.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.abtnGeneral.Name = "abtnGeneral"; + this.abtnGeneral.Size = new System.Drawing.Size(140, 35); + this.abtnGeneral.TabIndex = 4; + this.abtnGeneral.Tag = "ucAdminGeneral"; + this.abtnGeneral.Text = "Allgemein"; + this.abtnGeneral.TextBounds = new System.Drawing.Rectangle(1, 1, 138, 33); + this.abtnGeneral.ToolTipText = ""; + // + // abtnSettings + // + this.abtnSettings.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.abtnSettings.AutoSizeWidth = false; + this.abtnSettings.Image = null; + this.abtnSettings.ImageBackColor = System.Drawing.Color.Empty; + this.abtnSettings.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnSettings.Location = new System.Drawing.Point(295, 0); + this.abtnSettings.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.abtnSettings.Name = "abtnSettings"; + this.abtnSettings.Size = new System.Drawing.Size(140, 35); + this.abtnSettings.TabIndex = 6; + this.abtnSettings.Tag = "ucAdminDesigns"; + this.abtnSettings.Text = "Designs"; + this.abtnSettings.TextBounds = new System.Drawing.Rectangle(1, 1, 138, 33); + this.abtnSettings.ToolTipText = ""; + this.abtnSettings.WordWrap = true; + // + // abtnFeatures + // + this.abtnFeatures.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.abtnFeatures.AutoSizeWidth = false; + this.abtnFeatures.Image = null; + this.abtnFeatures.ImageBackColor = System.Drawing.Color.Empty; + this.abtnFeatures.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnFeatures.Location = new System.Drawing.Point(441, 0); + this.abtnFeatures.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.abtnFeatures.Name = "abtnFeatures"; + this.abtnFeatures.Size = new System.Drawing.Size(140, 35); + this.abtnFeatures.TabIndex = 5; + this.abtnFeatures.Tag = "ucAdminNewsFeeds"; + this.abtnFeatures.Text = "News Feeds"; + this.abtnFeatures.TextBounds = new System.Drawing.Rectangle(1, 1, 138, 33); + this.abtnFeatures.ToolTipText = ""; + this.abtnFeatures.WordWrap = true; + // + // abtnAppClickCounter + // + this.abtnAppClickCounter.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.abtnAppClickCounter.AutoSizeWidth = false; + this.abtnAppClickCounter.Image = null; + this.abtnAppClickCounter.ImageBackColor = System.Drawing.Color.Empty; + this.abtnAppClickCounter.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnAppClickCounter.Location = new System.Drawing.Point(587, 0); + this.abtnAppClickCounter.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.abtnAppClickCounter.Name = "abtnAppClickCounter"; + this.abtnAppClickCounter.Size = new System.Drawing.Size(140, 35); + this.abtnAppClickCounter.TabIndex = 8; + this.abtnAppClickCounter.Tag = "ucAdminAppClickCounter"; + this.abtnAppClickCounter.Text = "App Click Counter"; + this.abtnAppClickCounter.TextBounds = new System.Drawing.Rectangle(1, 1, 138, 33); + this.abtnAppClickCounter.ToolTipText = ""; + // + // animationButton1 + // + this.animationButton1.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.animationButton1.AutoSizeWidth = false; + this.animationButton1.Image = null; + this.animationButton1.ImageBackColor = System.Drawing.Color.Empty; + this.animationButton1.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.animationButton1.Location = new System.Drawing.Point(733, 0); + this.animationButton1.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.animationButton1.Name = "animationButton1"; + this.animationButton1.Size = new System.Drawing.Size(140, 35); + this.animationButton1.TabIndex = 7; + this.animationButton1.Tag = "ucAdminHelp"; + this.animationButton1.Text = "Hilfethemen"; + this.animationButton1.TextBounds = new System.Drawing.Rectangle(1, 1, 138, 33); + this.animationButton1.ToolTipText = ""; + // + // FormAdmin + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.ClientSize = new System.Drawing.Size(1000, 450); + this.Controls.Add(this.tableLayoutPanel1); + this.DesktopAnchor = System.Windows.Forms.DesktopAnchor.Center; + this.Name = "FormAdmin"; + this.Padding = new System.Windows.Forms.Padding(10, 39, 10, 10); + this.RegionBounds = new System.Drawing.Rectangle(19, 19, 1000, 450); + this.Text = "Administration"; + this.tableLayoutPanel1.ResumeLayout(false); + this.flpAdminMenu.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panelUC; + private System.Windows.Forms.FlowLayoutPanel flpAdminMenu; + private System.Windows.Forms.AnimationButton abtnApps; + private System.Windows.Forms.AnimationButton abtnGeneral; + private System.Windows.Forms.AnimationButton abtnFeatures; + private System.Windows.Forms.AnimationButton abtnSettings; + private System.Windows.Forms.AnimationButton animationButton1; + private System.Windows.Forms.AnimationButton abtnAppClickCounter; + } +} \ No newline at end of file diff --git a/GFATask/Forms/FormAdmin.cs b/GFATask/Forms/FormAdmin.cs new file mode 100644 index 0000000..f2eb896 --- /dev/null +++ b/GFATask/Forms/FormAdmin.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class FormAdmin : FormEx + { + public ucAdminApps UcAdminApps { get; } = new ucAdminApps() { Dock = DockStyle.Fill }; + public ucAdminGeneral UcAdminGeneral { get; } = new ucAdminGeneral() { Dock = DockStyle.Fill }; + public ucAdminNewsFeeds UcAdminNewsFeeds { get; } = new ucAdminNewsFeeds() { Dock = DockStyle.Fill }; + public ucAdminDesigns UcAdminDesigns { get; } = new ucAdminDesigns() { Dock = DockStyle.Fill }; + public ucAdminHelp UcAdminHelp { get; } = new ucAdminHelp() { Dock = DockStyle.Fill }; + public ucAdminAppClickCounter UcAdminAppClickCounter { get; } = new ucAdminAppClickCounter() { Dock = DockStyle.Fill }; + + private AnimationButton clickedbutton = null; + + int loginfails = 0; + + public FormAdmin() + { + InitializeComponent(); + this.SetDefaultDesign(); + + + panelUC.Controls.AddRange(new Control[] { UcAdminApps, UcAdminGeneral, UcAdminNewsFeeds, UcAdminDesigns, UcAdminHelp, UcAdminAppClickCounter }); + this.Icon = Icon.FromHandle(new Bitmap(File.OpenRead(Paths.Icons.Directory + @"System\administration.png")).GetHicon()); + Accumulations.Controls(flpAdminMenu).OfType().ToList().ForEach(button => + { + button.MouseClick += OpenUserControl; + button.Paint += Button_Paint; + }); + OpenUserControl(abtnApps, new MouseEventArgs(MouseButtons.Left, 0, 0, 0, 0)); + + + } + + private void Button_Paint(object sender, PaintEventArgs e) + { + if((clickedbutton != null && (sender as AnimationButton).Equals(clickedbutton) && (sender as AnimationButton).BorderSize == 0)) + { + e.Graphics.DrawLine(new Pen(Config.Main.Colors.Apps.Hover.Border, 3), new Point(0, e.ClipRectangle.Bottom - 3 ), new Point(e.ClipRectangle.Right, e.ClipRectangle.Bottom - 3)); + } + } + + private void OpenUserControl(object sender, MouseEventArgs e) + { + if(e.Button == MouseButtons.Left) + { + var button = sender as AnimationButton; + clickedbutton = button; + Accumulations.Controls(this).OfType().ToList().ForEach(btn => btn.Invalidate()); + if (button.BorderSize > 0 || button.BorderColor == button.BackColor) + { + button.BorderColor = Color.Green; + Accumulations.Controls(this).OfType().Where(btn => btn != button).ToList().ForEach(btn => btn.BorderColor = Config.Main.Colors.Apps.Default.Border); + } + panelUC.Controls[button.Tag.ToString()].Dock = DockStyle.Fill; + panelUC.Controls[button.Tag.ToString()].BringToFront(); + panelUC.Controls[button.Tag.ToString()].Invalidate(); + } + } + + + + + public void Login() + { + Task.Run(delegate + { + Forms.Main.Invoke(new MethodInvoker(async delegate + { + if (Forms.AppButtonGroup != null && Forms.AppButtonGroup.Visible) + Forms.AppButtonGroup.Close(); + + if (await XObjects.IsAdmin) + { + this.Visible = true; + return; + } + + var msgbox = XObjects.MessageBox( + loginfails == 0 ? "Administratorkennwort" : + $"Das Kennwort war falsch. Nochmal!", NotifyButtons.OkCancel, NotifyType.Login, new Size(250, 200), "Administrationsbereich", null); + + if (msgbox.Result == DialogResult.OK) + { + if (msgbox.Value.ToString() == new string(Config.Main.Administration.Accounts.Login.SecurePassword.Select(chr => (char)chr).ToArray())) + { + this.Visible = true; + } + else + { + loginfails++; + this.Login(); + } + } + else if (msgbox.Result == DialogResult.Cancel) + { + return; + } + })); + }); + } + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (this.Visible) + { + XObjects.Delay.Increase(); + this.TopMost = true; + } + } + + + protected override void OnBackColorChanged(EventArgs e) + { + base.OnBackColorChanged(e); + + flpAdminMenu.SetDefaultDesign(); + flpAdminMenu.Controls.OfType().ToList().ForEach(abtn => abtn.SetDefaultDesign()); + } + + + protected override void OnFormClosing(FormClosingEventArgs e) + { + if(e.CloseReason == CloseReason.UserClosing) + this.Visible = false; + e.Cancel = e.CloseReason == CloseReason.UserClosing; + base.OnFormClosing(e); + } + } +} diff --git a/GFATask/Forms/FormAdmin.resx b/GFATask/Forms/FormAdmin.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/Forms/FormAdmin.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/Forms/FormAppButtonGroup.Designer.cs b/GFATask/Forms/FormAppButtonGroup.Designer.cs new file mode 100644 index 0000000..5d3c334 --- /dev/null +++ b/GFATask/Forms/FormAppButtonGroup.Designer.cs @@ -0,0 +1,71 @@ + +namespace GFATask +{ + partial class FormAppButtonGroup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.flpAppbuttons = new System.Windows.Forms.FlowLayoutPanel(); + this.SuspendLayout(); + // + // flpAppbuttons + // + this.flpAppbuttons.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.flpAppbuttons.Dock = System.Windows.Forms.DockStyle.Fill; + this.flpAppbuttons.Location = new System.Drawing.Point(10, 39); + this.flpAppbuttons.Margin = new System.Windows.Forms.Padding(0); + this.flpAppbuttons.Name = "flpAppbuttons"; + this.flpAppbuttons.Size = new System.Drawing.Size(288, 178); + this.flpAppbuttons.TabIndex = 1; + // + // FormAppButtonGroup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.ClientSize = new System.Drawing.Size(308, 227); + this.Controls.Add(this.flpAppbuttons); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Moveable = false; + this.Name = "FormAppButtonGroup"; + this.Padding = new System.Windows.Forms.Padding(10, 39, 10, 10); + this.RegionBounds = new System.Drawing.Rectangle(15, 15, 308, 227); + this.Resizable = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.SystemMenu = false; + this.Text = "FormAppButtonGroup"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.FlowLayoutPanel flpAppbuttons; + } +} \ No newline at end of file diff --git a/GFATask/Forms/FormAppButtonGroup.cs b/GFATask/Forms/FormAppButtonGroup.cs new file mode 100644 index 0000000..7e36023 --- /dev/null +++ b/GFATask/Forms/FormAppButtonGroup.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class FormAppButtonGroup : FormEx + { + private GroupButton _mygroupbutton = null; + public GroupButton MyGroupButton + { + get => _mygroupbutton; + set + { + _mygroupbutton = value; + _apptype = _mygroupbutton.AppType; + } + } + + + private AppType _apptype; + public AppType AppType { get => _apptype; set => _apptype = value; } + + + public FormAppButtonGroup() + { + InitializeComponent(); + } + + + protected override void OnVisibleChanged(EventArgs e) + { + if (this.Visible) + { + flpAppbuttons.Controls.AddRange(_mygroupbutton.ContainedAppButtons.ToArray()); + Comparer.SortAllButtons(flpAppbuttons.Controls, Config.User.Prevalence); + this.Sizing(); + this.SetDefaultDesign(); + } + else + { + flpAppbuttons.Controls.Clear(); + } + base.OnVisibleChanged(e); + + } + + + public void Sizing() + { + if (_mygroupbutton != null) + { + int appcounts = _mygroupbutton.ContainedAppButtons.Where(appbutton => appbutton.Visible).ToList().Count; + int columns = Config.User.GroupListColumnCount; + int border = this.Padding.Horizontal; + int vborder = this.Padding.Vertical; + Size appsize = new Size((Config.User.Apps.ImageOnly ? Config.User.Apps.Size.Height : Config.User.Apps.Size.Width) + (Config.User.Apps.Margin * 2), Config.User.Apps.Size.Height + (Config.User.Apps.Margin * 2)); + + int width, height; + + width = (appsize.Width * (appcounts < columns ? appcounts : columns)) < ((TextRenderer.MeasureText(this.Text, this.Font).Width + (this.TitlebarHeight * 4) + this.Icon.Size.Width) / appsize.Width) * appsize.Width ? + (((TextRenderer.MeasureText(this.Text, this.Font).Width + (this.TitlebarHeight * 4) + this.Icon.Size.Width) / appsize.Width) * appsize.Width) + border : + (appsize.Width * (appcounts < columns ? appcounts : columns)) + border; + + height = (((int)Math.Ceiling((appsize.Width * appcounts) / (double)width)) * appsize.Height) + vborder; + this.Size = new Size(width, height); + } + } + + /// + /// Löscht einen AppButton aus einem AppListPanel anhand des Apptypen und der App aus der JSON-Datei + /// + /// Findet anhand des Typen das gewünschte AppListPanel + /// Die JSON-App mit der der AppButton gefunden und entfernt wird + public void RemoveButton(Models.App app) + { + try + { + if (_mygroupbutton != null) + { + + if (flpAppbuttons.Controls.ContainsKey(app.ID + "_" + _apptype.ToString() + "_" + app.Name)) + { + Control appbutton = flpAppbuttons.Controls.Find(Cast.AppButtonName(_apptype, app), false)[0]; + flpAppbuttons.Controls.Remove(appbutton); + _mygroupbutton.ContainedApps.Remove(app); + _mygroupbutton.ContainedAppButtons.Remove(appbutton as AppButton); + //if(_mygroupbutton.ContainedApps.Exists(_app => _app.ID == app.ID)) + // _mygroupbutton.ContainedAppButtons.Remove((AppButton)appbutton); + } + + if (_mygroupbutton.ContainedAppButtons.Count <= 1 && flpAppbuttons.Controls.Count > 0) + { + AppListPanel panel = Accessor.GetAppListPanel(_apptype); + panel.RemoveGroupButton(_mygroupbutton.Name); + this.Close(); + } + else + { + this.Sizing(); + } + } + } + catch (Exception ex) + { + Log.EventLog.Write("FormAppButtonGroup RemoveButton-Fehler", LogClassification.CriticalError, ex); + } + } + + + public bool ReplaceButton(Models.App replacing_app) => + this.ReplaceButton(_apptype, replacing_app); + + + public bool ReplaceButton(AppType apptype, Models.App replacing_app) + { + if (apptype == AppType.None) + return false; + Models.App existing_app = Accessor.GetAppList(apptype).Apps.Find(app => app.ID == _mygroupbutton.ContainedAppButtons.ToList().Find(button => button.Name == Cast.AppButtonName(apptype, replacing_app)).ID); + if (existing_app != null) + { + AppButton appbutton = _mygroupbutton.ContainedAppButtons.Select(button => button).ToList().Find(button => button.Name == Cast.AppButtonName(apptype, existing_app)); + int cur_index = _mygroupbutton.ContainedAppButtons.ToList().IndexOf(appbutton); + appbutton.Name = Cast.AppButtonName(apptype, replacing_app); + appbutton.Text = replacing_app.Name; + appbutton.ActiveDirectoryGroups = replacing_app.ActiveDirectoryGroups; + appbutton.Prevalence = Accessor.GetPrevalencia(apptype, replacing_app.ID); + appbutton.Execute = replacing_app.Execute; + appbutton.Visible = Cast.AppVisibility(replacing_app); + appbutton.Image = Image.FromStream(File.OpenRead(Cast.IconPath(apptype, replacing_app.Icon))); + _mygroupbutton.ContainedAppButtons[cur_index] = appbutton; + Comparer.SortAllButtons(flpAppbuttons.Controls, Config.User.Prevalence); + return true; + } + return false; + } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + this.Visible = false; + e.Cancel = e.CloseReason == CloseReason.UserClosing; + base.OnFormClosing(e); + } + } +} diff --git a/GFATask/Forms/FormAppButtonGroup.resx b/GFATask/Forms/FormAppButtonGroup.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/Forms/FormAppButtonGroup.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/Forms/FormAppCreator.Designer.cs b/GFATask/Forms/FormAppCreator.Designer.cs new file mode 100644 index 0000000..25114c7 --- /dev/null +++ b/GFATask/Forms/FormAppCreator.Designer.cs @@ -0,0 +1,500 @@ + +namespace GFATask +{ + partial class FormAppCreator + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.tbAppname = new System.Windows.Forms.TextBox(); + this.tbGroup = new System.Windows.Forms.TextBox(); + this.rtbADGroups = new System.Windows.Forms.RichTextBox(); + this.dgvExecutes = new System.Windows.Forms.DataGridView(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.picbox = new System.Windows.Forms.PictureBox(); + this.lIconPath = new System.Windows.Forms.Label(); + this.abtnCheckADGroupName = new System.Windows.Forms.AnimationButton(); + this.abtnSave = new System.Windows.Forms.AnimationButton(); + this.abtnCancel = new System.Windows.Forms.AnimationButton(); + this.label7 = new System.Windows.Forms.Label(); + this.abtnIconPath = new System.Windows.Forms.AnimationButton(); + this.cbAppType = new System.Windows.Forms.ComboBox(); + this.switchPrototype = new System.Windows.Forms.SwitchButton(); + this.labelPrototype = new System.Windows.Forms.Label(); + this.lID = new System.Windows.Forms.Label(); + this.lIsNew = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.tbDescription = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgvExecutes)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picbox)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(65, 96); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(57, 13); + this.label1.TabIndex = 1; + this.label1.Text = "App Name"; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(36, 191); + this.label2.Margin = new System.Windows.Forms.Padding(0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(86, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Gruppieren nach"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(56, 285); + this.label3.Margin = new System.Windows.Forms.Padding(0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(66, 13); + this.label3.TabIndex = 3; + this.label3.Text = "AD Gruppen"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(67, 385); + this.label4.Margin = new System.Windows.Forms.Padding(0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(55, 13); + this.label4.TabIndex = 4; + this.label4.Text = "Ausführen"; + // + // tbAppname + // + this.tbAppname.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbAppname.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tableLayoutPanel1.SetColumnSpan(this.tbAppname, 4); + this.tbAppname.Location = new System.Drawing.Point(127, 92); + this.tbAppname.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.tbAppname.Name = "tbAppname"; + this.tbAppname.Size = new System.Drawing.Size(388, 20); + this.tbAppname.TabIndex = 2; + // + // tbGroup + // + this.tbGroup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbGroup.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tableLayoutPanel1.SetColumnSpan(this.tbGroup, 4); + this.tbGroup.Location = new System.Drawing.Point(127, 187); + this.tbGroup.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.tbGroup.Name = "tbGroup"; + this.tbGroup.Size = new System.Drawing.Size(388, 20); + this.tbGroup.TabIndex = 4; + // + // rtbADGroups + // + this.rtbADGroups.AutoWordSelection = true; + this.rtbADGroups.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.tableLayoutPanel1.SetColumnSpan(this.rtbADGroups, 4); + this.rtbADGroups.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtbADGroups.Location = new System.Drawing.Point(127, 285); + this.rtbADGroups.Margin = new System.Windows.Forms.Padding(5, 0, 0, 40); + this.rtbADGroups.Name = "rtbADGroups"; + this.rtbADGroups.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; + this.rtbADGroups.Size = new System.Drawing.Size(388, 60); + this.rtbADGroups.TabIndex = 6; + this.rtbADGroups.Text = ""; + // + // dgvExecutes + // + this.dgvExecutes.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dgvExecutes.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dgvExecutes.BackgroundColor = System.Drawing.Color.White; + this.dgvExecutes.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvExecutes.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None; + this.dgvExecutes.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.tableLayoutPanel1.SetColumnSpan(this.dgvExecutes, 5); + this.dgvExecutes.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvExecutes.GridColor = System.Drawing.SystemColors.ControlDarkDark; + this.dgvExecutes.Location = new System.Drawing.Point(127, 390); + this.dgvExecutes.Margin = new System.Windows.Forms.Padding(5); + this.dgvExecutes.MultiSelect = false; + this.dgvExecutes.Name = "dgvExecutes"; + this.dgvExecutes.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + this.dgvExecutes.RowHeadersWidth = 24; + this.dgvExecutes.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.dgvExecutes.RowTemplate.Height = 24; + this.dgvExecutes.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; + this.dgvExecutes.Size = new System.Drawing.Size(549, 90); + this.dgvExecutes.TabIndex = 8; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 6; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 122F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 103F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 70F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 84F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45.18272F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 54.81728F)); + this.tableLayoutPanel1.Controls.Add(this.label1, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.dgvExecutes, 1, 9); + this.tableLayoutPanel1.Controls.Add(this.label3, 0, 8); + this.tableLayoutPanel1.Controls.Add(this.label4, 0, 9); + this.tableLayoutPanel1.Controls.Add(this.rtbADGroups, 1, 8); + this.tableLayoutPanel1.Controls.Add(this.label6, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.label2, 0, 5); + this.tableLayoutPanel1.Controls.Add(this.label5, 0, 10); + this.tableLayoutPanel1.Controls.Add(this.picbox, 3, 10); + this.tableLayoutPanel1.Controls.Add(this.lIconPath, 4, 10); + this.tableLayoutPanel1.Controls.Add(this.abtnCheckADGroupName, 5, 8); + this.tableLayoutPanel1.Controls.Add(this.abtnSave, 5, 11); + this.tableLayoutPanel1.Controls.Add(this.abtnCancel, 4, 11); + this.tableLayoutPanel1.Controls.Add(this.label7, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.abtnIconPath, 1, 10); + this.tableLayoutPanel1.Controls.Add(this.tbGroup, 1, 5); + this.tableLayoutPanel1.Controls.Add(this.tbAppname, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.cbAppType, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.switchPrototype, 1, 6); + this.tableLayoutPanel1.Controls.Add(this.labelPrototype, 0, 6); + this.tableLayoutPanel1.Controls.Add(this.lID, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.lIsNew, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.label8, 0, 4); + this.tableLayoutPanel1.Controls.Add(this.tbDescription, 1, 4); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 39); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 13; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(681, 571); + this.tableLayoutPanel1.TabIndex = 10; + // + // label6 + // + this.label6.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(104, 26); + this.label6.Margin = new System.Windows.Forms.Padding(0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(18, 13); + this.label6.TabIndex = 13; + this.label6.Text = "ID"; + // + // label5 + // + this.label5.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(81, 496); + this.label5.Margin = new System.Windows.Forms.Padding(0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(41, 13); + this.label5.TabIndex = 10; + this.label5.Text = "Symbol"; + // + // picbox + // + this.picbox.Anchor = System.Windows.Forms.AnchorStyles.None; + this.picbox.Location = new System.Drawing.Point(321, 487); + this.picbox.Margin = new System.Windows.Forms.Padding(0); + this.picbox.Name = "picbox"; + this.picbox.Size = new System.Drawing.Size(32, 30); + this.picbox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.picbox.TabIndex = 15; + this.picbox.TabStop = false; + this.picbox.Paint += new System.Windows.Forms.PaintEventHandler(this.picbox_Paint); + // + // lIconPath + // + this.lIconPath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lIconPath.AutoSize = true; + this.tableLayoutPanel1.SetColumnSpan(this.lIconPath, 2); + this.lIconPath.Location = new System.Drawing.Point(379, 496); + this.lIconPath.Margin = new System.Windows.Forms.Padding(0); + this.lIconPath.Name = "lIconPath"; + this.lIconPath.Size = new System.Drawing.Size(302, 13); + this.lIconPath.TabIndex = 11; + this.lIconPath.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // abtnCheckADGroupName + // + this.abtnCheckADGroupName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.abtnCheckADGroupName.AutoSizeWidth = false; + this.abtnCheckADGroupName.Image = null; + this.abtnCheckADGroupName.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnCheckADGroupName.ImageBackColor = System.Drawing.Color.Empty; + this.abtnCheckADGroupName.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnCheckADGroupName.ImageMargin = 3; + this.abtnCheckADGroupName.ImagePadding = 0; + this.abtnCheckADGroupName.Location = new System.Drawing.Point(520, 285); + this.abtnCheckADGroupName.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.abtnCheckADGroupName.Name = "abtnCheckADGroupName"; + this.abtnCheckADGroupName.Padding = new System.Windows.Forms.Padding(0, 0, 15, 0); + this.abtnCheckADGroupName.Size = new System.Drawing.Size(161, 50); + this.abtnCheckADGroupName.TabIndex = 7; + this.abtnCheckADGroupName.Text = "Namen überprüfen"; + this.abtnCheckADGroupName.TextBounds = new System.Drawing.Rectangle(2, 2, 142, 46); + this.abtnCheckADGroupName.ToolTipText = ""; + this.abtnCheckADGroupName.WordWrap = true; + this.abtnCheckADGroupName.Click += new System.EventHandler(this.abtnCheckADGroupName_Click); + // + // abtnSave + // + this.abtnSave.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.abtnSave.AutoSizeWidth = false; + this.abtnSave.Image = null; + this.abtnSave.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnSave.ImageBackColor = System.Drawing.Color.Empty; + this.abtnSave.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnSave.ImageMargin = 3; + this.abtnSave.ImagePadding = 0; + this.abtnSave.Location = new System.Drawing.Point(532, 522); + this.abtnSave.Margin = new System.Windows.Forms.Padding(5, 0, 20, 0); + this.abtnSave.Name = "abtnSave"; + this.abtnSave.Padding = new System.Windows.Forms.Padding(0, 0, 15, 0); + this.abtnSave.Size = new System.Drawing.Size(129, 30); + this.abtnSave.TabIndex = 11; + this.abtnSave.Text = "Speichern"; + this.abtnSave.TextBounds = new System.Drawing.Rectangle(1, 1, 107, 28); + this.abtnSave.ToolTipText = ""; + this.abtnSave.Click += new System.EventHandler(this.abtnSave_Click); + // + // abtnCancel + // + this.abtnCancel.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.abtnCancel.AutoSizeWidth = false; + this.abtnCancel.Image = null; + this.abtnCancel.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnCancel.ImageBackColor = System.Drawing.Color.Empty; + this.abtnCancel.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnCancel.ImageMargin = 3; + this.abtnCancel.ImagePadding = 0; + this.abtnCancel.Location = new System.Drawing.Point(384, 522); + this.abtnCancel.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.abtnCancel.Name = "abtnCancel"; + this.abtnCancel.Padding = new System.Windows.Forms.Padding(0, 0, 15, 0); + this.abtnCancel.Size = new System.Drawing.Size(131, 30); + this.abtnCancel.TabIndex = 10; + this.abtnCancel.Text = "Abbrechen"; + this.abtnCancel.TextBounds = new System.Drawing.Rectangle(2, 2, 112, 26); + this.abtnCancel.ToolTipText = ""; + this.abtnCancel.Click += new System.EventHandler(this.abtnCancel_Click); + // + // label7 + // + this.label7.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(71, 61); + this.label7.Margin = new System.Windows.Forms.Padding(0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(51, 13); + this.label7.TabIndex = 18; + this.label7.Text = "App Liste"; + // + // abtnIconPath + // + this.abtnIconPath.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.abtnIconPath.AutoSizeWidth = false; + this.tableLayoutPanel1.SetColumnSpan(this.abtnIconPath, 2); + this.abtnIconPath.Image = global::GFATask.Properties.Resources.magnifier; + this.abtnIconPath.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Height; + this.abtnIconPath.ImageBackColor = System.Drawing.Color.Empty; + this.abtnIconPath.ImageBounds = new System.Drawing.Rectangle(5, 5, 20, 20); + this.abtnIconPath.ImageMargin = 3; + this.abtnIconPath.ImagePadding = 0; + this.abtnIconPath.ImageSize = new System.Drawing.Size(20, 20); + this.abtnIconPath.Location = new System.Drawing.Point(127, 487); + this.abtnIconPath.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.abtnIconPath.Name = "abtnIconPath"; + this.abtnIconPath.Size = new System.Drawing.Size(168, 30); + this.abtnIconPath.TabIndex = 9; + this.abtnIconPath.Text = "Symbol suchen"; + this.abtnIconPath.TextBounds = new System.Drawing.Rectangle(25, 2, 141, 26); + this.abtnIconPath.ToolTipText = ""; + this.abtnIconPath.Click += new System.EventHandler(this.abtnIconPath_Click); + // + // cbAppType + // + this.cbAppType.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.tableLayoutPanel1.SetColumnSpan(this.cbAppType, 2); + this.cbAppType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppType.FormattingEnabled = true; + this.cbAppType.Location = new System.Drawing.Point(127, 57); + this.cbAppType.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.cbAppType.Name = "cbAppType"; + this.cbAppType.Size = new System.Drawing.Size(121, 21); + this.cbAppType.TabIndex = 1; + this.cbAppType.SelectedIndexChanged += new System.EventHandler(this.cbAppType_SelectedIndexChanged); + // + // switchPrototype + // + this.switchPrototype.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switchPrototype.BackColor = System.Drawing.Color.White; + this.switchPrototype.ButtonWidth = 35; + this.switchPrototype.CheckThreeState = false; + this.switchPrototype.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switchPrototype.ColorInactive = System.Drawing.Color.OrangeRed; + this.switchPrototype.Location = new System.Drawing.Point(135, 237); + this.switchPrototype.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switchPrototype.Name = "switchPrototype"; + this.switchPrototype.RoundedButton = true; + this.tableLayoutPanel1.SetRowSpan(this.switchPrototype, 2); + this.switchPrototype.ShowBoarder = false; + this.switchPrototype.Size = new System.Drawing.Size(80, 25); + this.switchPrototype.TabIndex = 5; + this.switchPrototype.Text = "switchButton1"; + // + // labelPrototype + // + this.labelPrototype.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.labelPrototype.AutoSize = true; + this.labelPrototype.Location = new System.Drawing.Point(76, 243); + this.labelPrototype.Margin = new System.Windows.Forms.Padding(0); + this.labelPrototype.Name = "labelPrototype"; + this.tableLayoutPanel1.SetRowSpan(this.labelPrototype, 2); + this.labelPrototype.Size = new System.Drawing.Size(46, 13); + this.labelPrototype.TabIndex = 27; + this.labelPrototype.Text = "Prototyp"; + // + // lID + // + this.lID.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lID.AutoSize = true; + this.lID.Location = new System.Drawing.Point(127, 26); + this.lID.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.lID.Name = "lID"; + this.lID.Size = new System.Drawing.Size(18, 13); + this.lID.TabIndex = 14; + this.lID.Text = "ID"; + // + // lIsNew + // + this.lIsNew.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lIsNew.AutoSize = true; + this.lIsNew.Location = new System.Drawing.Point(230, 26); + this.lIsNew.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.lIsNew.Name = "lIsNew"; + this.lIsNew.Size = new System.Drawing.Size(33, 13); + this.lIsNew.TabIndex = 20; + this.lIsNew.Text = "[Neu]"; + // + // label8 + // + this.label8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(50, 130); + this.label8.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(72, 13); + this.label8.TabIndex = 28; + this.label8.Text = "Beschreibung"; + // + // tbDescription + // + this.tbDescription.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tableLayoutPanel1.SetColumnSpan(this.tbDescription, 4); + this.tbDescription.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbDescription.Location = new System.Drawing.Point(127, 130); + this.tbDescription.Margin = new System.Windows.Forms.Padding(5, 10, 0, 10); + this.tbDescription.Multiline = true; + this.tbDescription.Name = "tbDescription"; + this.tbDescription.Size = new System.Drawing.Size(388, 40); + this.tbDescription.TabIndex = 3; + // + // FormAppCreator + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(701, 620); + this.Controls.Add(this.tableLayoutPanel1); + this.DesktopAnchor = System.Windows.Forms.DesktopAnchor.Center; + this.Name = "FormAppCreator"; + this.Padding = new System.Windows.Forms.Padding(10, 39, 10, 10); + this.RegionBounds = new System.Drawing.Rectangle(19, 19, 701, 620); + this.Resizable = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.SystemMenu = false; + this.Text = "Erstellen, oder editieren einer App"; + ((System.ComponentModel.ISupportInitialize)(this.dgvExecutes)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picbox)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox tbAppname; + private System.Windows.Forms.TextBox tbGroup; + private System.Windows.Forms.RichTextBox rtbADGroups; + private System.Windows.Forms.AnimationButton abtnCheckADGroupName; + private System.Windows.Forms.DataGridView dgvExecutes; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.AnimationButton abtnIconPath; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label lIconPath; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label lID; + private System.Windows.Forms.PictureBox picbox; + private System.Windows.Forms.AnimationButton abtnSave; + private System.Windows.Forms.AnimationButton abtnCancel; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox cbAppType; + private System.Windows.Forms.Label lIsNew; + private System.Windows.Forms.SwitchButton switchPrototype; + private System.Windows.Forms.Label labelPrototype; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox tbDescription; + } +} \ No newline at end of file diff --git a/GFATask/Forms/FormAppCreator.cs b/GFATask/Forms/FormAppCreator.cs new file mode 100644 index 0000000..7601fa5 --- /dev/null +++ b/GFATask/Forms/FormAppCreator.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.DirectoryServices; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class FormAppCreator : FormEx + { + public FormAppCreator() + { + InitializeComponent(); + this.ResetControls(); + cbAppType.Items.AddRange(Enum.GetNames(typeof(AppType)).Where(name => name != "None" || name != "Citrix").ToArray()); + + if (!dgvExecutes.Columns.Contains("colBefehl")) dgvExecutes.Columns.Add("colBefehl", "Befehl"); + if (!dgvExecutes.Columns.Contains("colArgumente")) dgvExecutes.Columns.Add("colArgumente", "Argumente"); + this.Icon = Icon.FromHandle(new Bitmap(File.OpenRead(Paths.Icons.Directory + @"System\new.png")).GetHicon()); + this.DesktopAnchor = DesktopAnchor.Center; + this.SetDefaultDesign(); + dgvExecutes.BackgroundColor = this.BackColor; + dgvExecutes.DefaultCellStyle.BackColor = this.BackColor; + dgvExecutes.EnableHeadersVisualStyles = false; + dgvExecutes.RowHeadersDefaultCellStyle.BackColor = this.BackColor; + dgvExecutes.DefaultCellStyle.ForeColor = this.ForeColor; + dgvExecutes.DefaultCellStyle.Font = this.Font; + } + + private void abtnCheckADGroupName_Click(object sender, EventArgs e) + { + rtbADGroups.Text.Split(';').ToList().ForEach(groupname => + { + var settledgroupname = groupname.Replace(" ", ""); + if (ActiveDirectory.GroupExists(settledgroupname).Item1) + rtbADGroups.Text = rtbADGroups.Text.Replace(settledgroupname, ActiveDirectory.GroupExists(settledgroupname).Item2) + Environment.NewLine; + }); + } + + /// + /// Fügt den entsprechenden Steuerelementen die Informationen der App hinzu um diese editieren zu können + /// + /// + public void GetEditableItem(AppType apptype, Models.App app) + { + this.ResetControls(); + cbAppType.Text = apptype.ToString(); + lID.Text = app.ID.ToString(); + lIsNew.Text = string.Empty; + tbAppname.Text = app.Name; + tbDescription.Text = app.Description; + tbGroup.Text = app.Group; + switchPrototype.Checked = app.Prototype; + if (apptype != AppType.Favorites) + { + labelPrototype.Visible = true; + switchPrototype.Visible = true; + rtbADGroups.Enabled = true; + abtnCheckADGroupName.Enabled = true; + } + else + { + labelPrototype.Visible = false; + switchPrototype.Checked = false; + switchPrototype.Visible = false; + rtbADGroups.Enabled = false; + abtnCheckADGroupName.Enabled = false; + } + + cbAppType.Enabled = false; + if (app.ActiveDirectoryGroups != null) + rtbADGroups.Text = string.Join("; ", app.ActiveDirectoryGroups); + app.Execute.ToList().ForEach(exec => + { + dgvExecutes.Rows.Add(exec.Command, exec.Args); + }); + lIconPath.Tag = Cast.IconPath(apptype, app.Icon); + lIconPath.Text = Path.GetFileName(app.Icon); + if (File.Exists(lIconPath.Tag.ToString())) + { + using (FileStream fs = new FileStream(lIconPath.Tag.ToString(), FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + picbox.Image = Image.FromStream(fs); + } + } + } + + + private void abtnIconPath_Click(object sender, EventArgs e) + { + var ofd = new OpenFileDialog() { Multiselect = false, Filter = "Image Files(.JPG; .JPEG; .JPE; .BMP; .GIF; .PNG)|*.JPG;*.JPEG;*.JPE;*.BMP;*.GIF;*.PNG" }; + if (lIconPath.Tag != null && lIconPath.Text != string.Empty) + ofd.InitialDirectory = Path.GetDirectoryName(lIconPath.Tag.ToString()); + else + { + ofd.InitialDirectory = Paths.Icons.Directory; + lIconPath.Text = "[Kein Symbol]"; + } + + if (ofd.ShowDialog(this) == DialogResult.OK) + { + lIconPath.Text = ofd.SafeFileName; + lIconPath.Tag = ofd.FileName; + using (FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + picbox.Image = Image.FromStream(fs); + } + } + } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing) + { + this.Visible = false; + e.Cancel = true; + } + base.OnFormClosing(e); + } + + + public void ResetControls() + { + labelPrototype.Visible = true; + switchPrototype.Visible = true; + lIsNew.Text = "[Neu]"; + lID.Text = string.Empty; + tbAppname.Clear(); + tbDescription.Clear(); + tbGroup.Clear(); + cbAppType.Enabled = true; + switchPrototype.Checked = true; + cbAppType.Text = string.Empty; + rtbADGroups.Clear(); + dgvExecutes.Rows.Clear(); + picbox.Image = new Bitmap(picbox.Width, picbox.Height); + lIconPath.Text = "[Kein Symbol]"; + } + + private void abtnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void abtnSave_Click(object sender, EventArgs e) + { + if (cbAppType.Text == "") + { + XObjects.MessageBox("App Liste auswählen", NotifyButtons.OK, NotifyType.Message, new Size(125, 100), "App Liste", null); + } + else + { + Models.AppList applist = Accessor.GetAppList(cbAppType.Text); + // Ersetzt vorhandene App + if (int.TryParse(lID.Text, out _) && applist.Apps.Exists(app => app.ID == int.Parse(lID.Text))) + { + Models.App appitem = applist.Apps.Find(app => app.ID == int.Parse(lID.Text)).Copy(); + appitem.Name = tbAppname.Text; + appitem.Group = tbGroup.Text; + appitem.Description = tbDescription.Text; + appitem.Prototype = switchPrototype.Checked; + appitem.ActiveDirectoryGroups = rtbADGroups.Text.Split(';').Length == 0 || rtbADGroups.Text == "" ? null : rtbADGroups.Text.Split(';'); + appitem.Execute = dgvExecutes.Rows.Cast().Where(row => !row.IsNewRow).Select(row => + new Models.Execute() + { + Command = row.Cells[0].Value == null ? null : row.Cells[0].Value.ToString(), + Args = row.Cells[1].Value == null ? null : row.Cells[1].Value.ToString() + }).ToArray(); + if(lIconPath.Text != string.Empty) + { + if((AppType)Enum.Parse(typeof(AppType), cbAppType.Text, true) == AppType.Favorites) + { + if (lIconPath.Tag.ToString() != Cast.IconPath(AppType.Favorites, lIconPath.Text)) + Creator.StreamCopy(lIconPath.Tag.ToString(), Cast.IconPath(AppType.Favorites, lIconPath.Text), null); + } + else + { + if (lIconPath.Tag != null && !File.Exists($"{Paths.Icons.Directory}{lIconPath.Text}") && File.Exists(lIconPath.Tag.ToString())) + Creator.StreamCopy(lIconPath.Tag.ToString(), $"{Paths.Icons.Directory}{lIconPath.Text}", (fs) => + { + Forms.Administration.UcAdminApps.imageList.Images.Add(Path.GetFileName(fs.Name), Image.FromStream(fs)); + }); + } + appitem.Icon = lIconPath.Text; + } + Creator.ReplaceApp(cbAppType.Text, appitem); + } + else + { + // Erstellt neue App + Models.App app_new = new Models.App() + { + ID = applist.Apps.Max(app => app.ID) + 1, + Name = tbAppname.Text, + Description = tbDescription.Text, + Group = tbGroup.Text, + Icon = lIconPath.Text, + Created = DateTime.Now, + LastModified = DateTime.Now, + Prototype = switchPrototype.Checked, + ActiveDirectoryGroups = rtbADGroups.Text.Split(';').Length == 0 ? null : rtbADGroups.Text.Split(';'), + Execute = dgvExecutes.Rows.Cast().Where(row => !row.IsNewRow).Select(row => + new Models.Execute() + { + Command = row.Cells[0].Value == null ? null : row.Cells[0].Value.ToString(), + Args = row.Cells[1].Value == null ? null : row.Cells[1].Value.ToString() + }).ToArray() + }; + + + if (lIconPath.Tag != null && !File.Exists($"{Paths.Icons.Directory}{lIconPath.Text}")) + Creator.StreamCopy(lIconPath.Tag.ToString(), $"{Paths.Icons.Directory}{lIconPath.Text}", (fs) => + { + Forms.Administration.UcAdminApps.imageList.Images.Add(Path.GetFileName(fs.Name), Image.FromStream(fs)); + }); + //File.Copy(lIconPath.Tag.ToString(), $"{Paths.Icons.Directory}{lIconPath.Text}", true); + + Creator.AddApp(cbAppType.Text, app_new); + } + + + this.ResetControls(); + this.Close(); + } + + } + + private void picbox_Paint(object sender, PaintEventArgs e) + { + + } + + private void cbAppType_SelectedIndexChanged(object sender, EventArgs e) + { + if(this.Created) + { + lID.Text = (Accessor.GetAppList(cbAppType.Text).Apps.Max(app => app.ID) + 1).ToString(); + rtbADGroups.Enabled = cbAppType.Text != AppType.Favorites.ToString(); + } + } + } +} diff --git a/GFATask/Forms/FormAppCreator.resx b/GFATask/Forms/FormAppCreator.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/Forms/FormAppCreator.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/Forms/FormGroups.Designer.cs b/GFATask/Forms/FormGroups.Designer.cs new file mode 100644 index 0000000..ea4cf92 --- /dev/null +++ b/GFATask/Forms/FormGroups.Designer.cs @@ -0,0 +1,177 @@ + +namespace GFATask +{ + partial class FormGroups + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + GFATask.Prevalencia prevalencia1 = new GFATask.Prevalencia(); + this.lLoading = new System.Windows.Forms.Label(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.abtnRefresh = new GFATask.AppListButton(); + this.lvGroups = new System.Windows.Forms.ListViewEx(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.SuspendLayout(); + // + // lLoading + // + this.lLoading.Location = new System.Drawing.Point(7, 7); + this.lLoading.Margin = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.lLoading.Name = "lLoading"; + this.lLoading.Size = new System.Drawing.Size(539, 30); + this.lLoading.TabIndex = 3; + this.lLoading.Text = "Loading"; + this.lLoading.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(10, 39); + this.splitContainer1.Margin = new System.Windows.Forms.Padding(0); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.abtnRefresh); + this.splitContainer1.Panel1.Controls.Add(this.lLoading); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.lvGroups); + this.splitContainer1.Size = new System.Drawing.Size(1424, 299); + this.splitContainer1.SplitterDistance = 36; + this.splitContainer1.SplitterWidth = 5; + this.splitContainer1.TabIndex = 0; + // + // abtnRefresh + // + this.abtnRefresh.ActiveDirectoryGroups = new string[0]; + this.abtnRefresh.ActualWidth = 0; + this.abtnRefresh.AppType = System.AppType.None; + this.abtnRefresh.AutoSizeWidth = false; + this.abtnRefresh.Dock = System.Windows.Forms.DockStyle.Right; + this.abtnRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.abtnRefresh.Image = global::GFATask.Properties.Resources.magnifier; + this.abtnRefresh.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnRefresh.ImageBackColor = System.Drawing.Color.Empty; + this.abtnRefresh.ImageBounds = new System.Drawing.Rectangle(5, 1, 34, 34); + this.abtnRefresh.ImageMargin = 3; + this.abtnRefresh.ImageOnly = false; + this.abtnRefresh.ImagePadding = 0; + this.abtnRefresh.ImageSize = new System.Drawing.Size(34, 34); + this.abtnRefresh.Location = new System.Drawing.Point(1232, 0); + this.abtnRefresh.Margin = new System.Windows.Forms.Padding(0); + this.abtnRefresh.Name = "abtnRefresh"; + prevalencia1.AppType = System.AppType.None; + prevalencia1.CountClicks = 0; + prevalencia1.ID = 0; + this.abtnRefresh.Prevalence = prevalencia1; + this.abtnRefresh.Size = new System.Drawing.Size(192, 36); + this.abtnRefresh.TabIndex = 4; + this.abtnRefresh.Text = "Wiederhole Suche"; + this.abtnRefresh.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.abtnRefresh.TextBounds = new System.Drawing.Rectangle(39, 2, 151, 32); + this.abtnRefresh.ToolTipText = ""; + this.abtnRefresh.Click += new System.EventHandler(this.abtnRefresh_Click); + // + // lvGroups + // + this.lvGroups.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.lvGroups.ColumnFont = new System.Drawing.Font("Segoe UI", 9F); + this.lvGroups.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.lvGroups.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvGroups.HideSelection = false; + this.lvGroups.Location = new System.Drawing.Point(0, 0); + this.lvGroups.Margin = new System.Windows.Forms.Padding(4); + this.lvGroups.Name = "lvGroups"; + this.lvGroups.Size = new System.Drawing.Size(1424, 258); + this.lvGroups.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.lvGroups.TabIndex = 2; + this.lvGroups.UseCompatibleStateImageBehavior = false; + this.lvGroups.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Name"; + this.columnHeader1.Width = 345; + // + // columnHeader2 + // + this.columnHeader2.Text = "SID"; + this.columnHeader2.Width = 248; + // + // columnHeader3 + // + this.columnHeader3.Text = "Beschreibung"; + this.columnHeader3.Width = 463; + // + // FormGroups + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.ClientSize = new System.Drawing.Size(1444, 348); + this.Controls.Add(this.splitContainer1); + this.Margin = new System.Windows.Forms.Padding(4, 2, 4, 2); + this.MinimizeBox = false; + this.Name = "FormGroups"; + this.Padding = new System.Windows.Forms.Padding(10, 39, 10, 10); + this.RegionBounds = new System.Drawing.Rectangle(19, 19, 1444, 348); + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.SystemMenu = false; + this.Text = "Meine Gruppen"; + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label lLoading; + private System.Windows.Forms.SplitContainer splitContainer1; + private AppListButton abtnRefresh; + private System.Windows.Forms.ListViewEx lvGroups; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + } +} \ No newline at end of file diff --git a/GFATask/Forms/FormGroups.cs b/GFATask/Forms/FormGroups.cs new file mode 100644 index 0000000..6aa6c12 --- /dev/null +++ b/GFATask/Forms/FormGroups.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.DirectoryServices.AccountManagement; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + + public partial class FormGroups : FormEx + { + public FormGroups() + { + InitializeComponent(); + + lvGroups.DoubleBuffer(true); + // Lädt das Layout des GFATask + this.SetDefaultDesign(); + lvGroups.SortByColumn(0); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + lLoading.ForeColor = Coloring.GetReadableForeColor(lLoading.BackColor); + + } + + public void AddADGroup(GroupPrincipal group) + { + var item = new ListViewItem(new string[] { group.Name, group.Sid.Value, group.Description }); + var subSID = new ListViewItem.ListViewSubItem(item, group.Sid.Value); + var subDescription = new ListViewItem.ListViewSubItem(item, group.Description); + item.SubItems.AddRange(new ListViewItem.ListViewSubItem[] { subSID, subDescription }); + + if (lvGroups.InvokeRequired) + { + lvGroups.Invoke(new MethodInvoker(delegate + { + lvGroups.Items.Add(item); + lvGroups.Update(); + lvGroups.Invalidate(); + })); + } + else + { + lvGroups.Items.Add(item); + lvGroups.Update(); + lvGroups.Invalidate(); + } + } + + + /// + /// Durchsucht die Domäne nach Active Directory Gruppen + /// + /// Befindet sich der PC in einer Domäne, dann false, andernfalls true + public void Loading(bool local = false) + { + if (lvGroups.InvokeRequired) + { + lvGroups.Invoke(new MethodInvoker( delegate { lvGroups.Items.Clear(); })); + } + else + { + lvGroups.Items.Clear(); + } + if (!local) + { + lLoading.Loading("Suche nach Gruppen", "Suche abgeschlossen", AD.GetGroups); + } + else + lLoading.Loading("Suche nach Gruppen", "Keine Domäne gefunden", null); + } + + + protected override void OnClosing(CancelEventArgs e) + { + this.Visible = false; + e.Cancel = true; + base.OnClosing(e); + } + + private void abtnRefresh_Click(object sender, EventArgs e) + { + lvGroups.Items.Clear(); + this.Loading(); + } + } +} diff --git a/GFATask/Forms/FormGroups.resx b/GFATask/Forms/FormGroups.resx new file mode 100644 index 0000000..3384984 --- /dev/null +++ b/GFATask/Forms/FormGroups.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 81 + + \ No newline at end of file diff --git a/GFATask/Forms/FormInfo.Designer.cs b/GFATask/Forms/FormInfo.Designer.cs new file mode 100644 index 0000000..84d7627 --- /dev/null +++ b/GFATask/Forms/FormInfo.Designer.cs @@ -0,0 +1,238 @@ + +namespace GFATask +{ + partial class FormInfo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.lCopyright = new System.Windows.Forms.Label(); + this.lOS = new System.Windows.Forms.Label(); + this.lComputer = new System.Windows.Forms.Label(); + this.lText = new System.Windows.Forms.Label(); + this.picLOGO = new System.Windows.Forms.PictureBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.lWebBrowser = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picLOGO)).BeginInit(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 112F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Controls.Add(this.label4, 2, 6); + this.tableLayoutPanel1.Controls.Add(this.lCopyright, 1, 9); + this.tableLayoutPanel1.Controls.Add(this.lOS, 1, 5); + this.tableLayoutPanel1.Controls.Add(this.lComputer, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.lText, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.picLOGO, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label5, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.label1, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.label2, 2, 4); + this.tableLayoutPanel1.Controls.Add(this.lWebBrowser, 1, 7); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 33); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 10; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 56F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(503, 412); + this.tableLayoutPanel1.TabIndex = 1; + // + // lCopyright + // + this.tableLayoutPanel1.SetColumnSpan(this.lCopyright, 3); + this.lCopyright.Dock = System.Windows.Forms.DockStyle.Fill; + this.lCopyright.Location = new System.Drawing.Point(115, 384); + this.lCopyright.Name = "lCopyright"; + this.lCopyright.Size = new System.Drawing.Size(385, 28); + this.lCopyright.TabIndex = 24; + this.lCopyright.Text = "InfoClass.Copyright"; + this.lCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // lOS + // + this.tableLayoutPanel1.SetColumnSpan(this.lOS, 3); + this.lOS.Dock = System.Windows.Forms.DockStyle.Fill; + this.lOS.Location = new System.Drawing.Point(115, 140); + this.lOS.Name = "lOS"; + this.lOS.Size = new System.Drawing.Size(385, 42); + this.lOS.TabIndex = 8; + this.lOS.Text = "InfoClass.OS"; + this.lOS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lComputer + // + this.tableLayoutPanel1.SetColumnSpan(this.lComputer, 3); + this.lComputer.Dock = System.Windows.Forms.DockStyle.Fill; + this.lComputer.Location = new System.Drawing.Point(115, 84); + this.lComputer.Name = "lComputer"; + this.lComputer.Size = new System.Drawing.Size(385, 28); + this.lComputer.TabIndex = 7; + this.lComputer.Text = "InfoClass.Computer"; + this.lComputer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lText + // + this.tableLayoutPanel1.SetColumnSpan(this.lText, 3); + this.lText.Dock = System.Windows.Forms.DockStyle.Fill; + this.lText.Location = new System.Drawing.Point(115, 28); + this.lText.Name = "lText"; + this.lText.Size = new System.Drawing.Size(385, 28); + this.lText.TabIndex = 5; + this.lText.Text = "InfoClass.Program+ProgramCodeName"; + this.lText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picLOGO + // + this.picLOGO.Anchor = System.Windows.Forms.AnchorStyles.None; + this.picLOGO.Location = new System.Drawing.Point(6, 41); + this.picLOGO.Name = "picLOGO"; + this.tableLayoutPanel1.SetRowSpan(this.picLOGO, 6); + this.picLOGO.Size = new System.Drawing.Size(100, 100); + this.picLOGO.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.picLOGO.TabIndex = 6; + this.picLOGO.TabStop = false; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Dock = System.Windows.Forms.DockStyle.Fill; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(209, 0); + this.label5.Margin = new System.Windows.Forms.Padding(0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(195, 28); + this.label5.TabIndex = 20; + this.label5.Text = "Version"; + this.label5.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(209, 56); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(195, 28); + this.label1.TabIndex = 21; + this.label1.Text = "Ihr Computer"; + this.label1.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(209, 112); + this.label2.Margin = new System.Windows.Forms.Padding(0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(195, 28); + this.label2.TabIndex = 22; + this.label2.Text = "Ihr Betriebssystem"; + this.label2.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // lWebBrowser + // + this.lWebBrowser.AutoSize = true; + this.tableLayoutPanel1.SetColumnSpan(this.lWebBrowser, 3); + this.lWebBrowser.Dock = System.Windows.Forms.DockStyle.Fill; + this.lWebBrowser.Location = new System.Drawing.Point(115, 210); + this.lWebBrowser.Name = "lWebBrowser"; + this.lWebBrowser.Size = new System.Drawing.Size(385, 56); + this.lWebBrowser.TabIndex = 25; + this.lWebBrowser.Text = "InfoClass.Browsers"; + this.lWebBrowser.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Fill; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(209, 182); + this.label4.Margin = new System.Windows.Forms.Padding(0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(195, 28); + this.label4.TabIndex = 26; + this.label4.Text = "Verfügbare Webbrowser"; + this.label4.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // FormInfo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(523, 455); + this.Controls.Add(this.tableLayoutPanel1); + this.DesktopAnchor = System.Windows.Forms.DesktopAnchor.Center; + this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormInfo"; + this.Padding = new System.Windows.Forms.Padding(10, 33, 10, 10); + this.RegionBounds = new System.Drawing.Rectangle(15, 15, 523, 455); + this.Resizable = false; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.Text = ""; + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picLOGO)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label lText; + private System.Windows.Forms.PictureBox picLOGO; + private System.Windows.Forms.Label lComputer; + private System.Windows.Forms.Label lOS; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label lCopyright; + private System.Windows.Forms.Label lWebBrowser; + private System.Windows.Forms.Label label4; + } +} \ No newline at end of file diff --git a/GFATask/Forms/FormInfo.cs b/GFATask/Forms/FormInfo.cs new file mode 100644 index 0000000..e096930 --- /dev/null +++ b/GFATask/Forms/FormInfo.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class FormInfo : FormEx + { + LoadingPanel panel = XObjects.LoadingPanel.Clone(); + + public FormInfo() + { + InitializeComponent(); + + this.SetDefaultDesign(); + picLOGO.Image = Image.FromStream(File.OpenRead(Paths.Icons.Directory + @"\System\GFA.png")); + lText.Text = $"{InfoClass.Program} [Codename {InfoClass.ProgramCodeName}]"; + lComputer.Text = $"{InfoClass.Computer } [{InfoClass.IPAdress}]"; + lOS.Text = InfoClass.OperatingSystem; + lCopyright.Text = InfoClass.Copyright; + + label1.Paint += Designer.DrawHeaderLabel; + label2.Paint += Designer.DrawHeaderLabel; + label4.Paint += Designer.DrawHeaderLabel; + label5.Paint += Designer.DrawHeaderLabel; + + lWebBrowser.Text = InfoClass.Browsers; + } + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if(this.Visible) + { + panel = XObjects.LoadingPanel.Clone(); + panel.Loading = true; + this.tableLayoutPanel1.Controls.Add(panel, 1, this.tableLayoutPanel1.RowCount -2); + this.tableLayoutPanel1.SetColumnSpan(panel, this.tableLayoutPanel1.ColumnCount - 1); + } + else + { + panel.Loading = this.Visible; + } + } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + if(e.CloseReason == CloseReason.UserClosing) + { + this.Visible = false; + e.Cancel = true; + } + base.OnFormClosing(e); + } + } +} diff --git a/GFATask/Forms/FormInfo.resx b/GFATask/Forms/FormInfo.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/Forms/FormInfo.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/Forms/FormMain.Designer.cs b/GFATask/Forms/FormMain.Designer.cs new file mode 100644 index 0000000..e017f06 --- /dev/null +++ b/GFATask/Forms/FormMain.Designer.cs @@ -0,0 +1,184 @@ + +namespace GFATask +{ + partial class FormMain + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.applistpanelUser = new GFATask.AppListPanel(); + this.applistpanelMenu = new GFATask.AppListPanel(); + this.applistpanelAdmin = new GFATask.AppListPanel(); + this.applistpanelFavorites = new GFATask.AppListPanel(); + this.applistpanelCitrix = new GFATask.AppListPanel(); + this.SuspendLayout(); + // + // applistpanelUser + // + this.applistpanelUser.AppType = System.AppType.User; + this.applistpanelUser.AutoScroll = true; + this.applistpanelUser.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.applistpanelUser.Border = new System.Drawing.Point(2, 2); + this.applistpanelUser.Dock = System.Windows.Forms.DockStyle.Top; + this.applistpanelUser.Font = new System.Drawing.Font("Calibri", 10F); + this.applistpanelUser.Grouping = false; + this.applistpanelUser.IsLast = false; + this.applistpanelUser.ListName = "Apps"; + this.applistpanelUser.Location = new System.Drawing.Point(10, 328); + this.applistpanelUser.Margin = new System.Windows.Forms.Padding(0); + this.applistpanelUser.MinimumSize = new System.Drawing.Size(0, 42); + this.applistpanelUser.Name = "applistpanelUser"; + this.applistpanelUser.Padding = new System.Windows.Forms.Padding(31, 7, 2, 2); + this.applistpanelUser.Resizing = false; + this.applistpanelUser.Showing = false; + this.applistpanelUser.Size = new System.Drawing.Size(720, 82); + this.applistpanelUser.TabIndex = 7; + this.applistpanelUser.Tag = "user"; + // + // applistpanelMenu + // + this.applistpanelMenu.AppType = System.AppType.Menu; + this.applistpanelMenu.AutoScroll = true; + this.applistpanelMenu.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.applistpanelMenu.Border = new System.Drawing.Point(2, 2); + this.applistpanelMenu.Dock = System.Windows.Forms.DockStyle.Top; + this.applistpanelMenu.Font = new System.Drawing.Font("Calibri", 10F); + this.applistpanelMenu.Grouping = false; + this.applistpanelMenu.IsLast = false; + this.applistpanelMenu.ListName = "Menü"; + this.applistpanelMenu.Location = new System.Drawing.Point(10, 40); + this.applistpanelMenu.Margin = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.applistpanelMenu.MinimumSize = new System.Drawing.Size(0, 49); + this.applistpanelMenu.Name = "applistpanelMenu"; + this.applistpanelMenu.Padding = new System.Windows.Forms.Padding(31, 7, 2, 7); + this.applistpanelMenu.Showing = false; + this.applistpanelMenu.Size = new System.Drawing.Size(720, 61); + this.applistpanelMenu.TabIndex = 3; + this.applistpanelMenu.Tag = "menu"; + // + // applistpanelAdmin + // + this.applistpanelAdmin.AppType = System.AppType.Admin; + this.applistpanelAdmin.AutoScroll = true; + this.applistpanelAdmin.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.applistpanelAdmin.Border = new System.Drawing.Point(2, 2); + this.applistpanelAdmin.Dock = System.Windows.Forms.DockStyle.Top; + this.applistpanelAdmin.Font = new System.Drawing.Font("Calibri", 10F); + this.applistpanelAdmin.Grouping = false; + this.applistpanelAdmin.IsLast = false; + this.applistpanelAdmin.ListName = "Admin"; + this.applistpanelAdmin.Location = new System.Drawing.Point(10, 257); + this.applistpanelAdmin.Margin = new System.Windows.Forms.Padding(0); + this.applistpanelAdmin.MinimumSize = new System.Drawing.Size(0, 52); + this.applistpanelAdmin.Name = "applistpanelAdmin"; + this.applistpanelAdmin.Padding = new System.Windows.Forms.Padding(31, 7, 2, 7); + this.applistpanelAdmin.Showing = false; + this.applistpanelAdmin.Size = new System.Drawing.Size(720, 71); + this.applistpanelAdmin.TabIndex = 6; + this.applistpanelAdmin.Tag = "admin"; + // + // applistpanelFavorites + // + this.applistpanelFavorites.AppType = System.AppType.Favorites; + this.applistpanelFavorites.AutoScroll = true; + this.applistpanelFavorites.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.applistpanelFavorites.Border = new System.Drawing.Point(2, 2); + this.applistpanelFavorites.Dock = System.Windows.Forms.DockStyle.Top; + this.applistpanelFavorites.Font = new System.Drawing.Font("Calibri", 10F); + this.applistpanelFavorites.Grouping = false; + this.applistpanelFavorites.IsLast = false; + this.applistpanelFavorites.ListName = "Favoriten"; + this.applistpanelFavorites.Location = new System.Drawing.Point(10, 172); + this.applistpanelFavorites.Margin = new System.Windows.Forms.Padding(0); + this.applistpanelFavorites.MinimumSize = new System.Drawing.Size(0, 73); + this.applistpanelFavorites.Name = "applistpanelFavorites"; + this.applistpanelFavorites.Padding = new System.Windows.Forms.Padding(31, 7, 2, 7); + this.applistpanelFavorites.Showing = false; + this.applistpanelFavorites.Size = new System.Drawing.Size(720, 85); + this.applistpanelFavorites.TabIndex = 5; + this.applistpanelFavorites.Tag = "favorites"; + // + // applistpanelCitrix + // + this.applistpanelCitrix.AppType = System.AppType.Citrix; + this.applistpanelCitrix.AutoScroll = true; + this.applistpanelCitrix.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.applistpanelCitrix.Border = new System.Drawing.Point(2, 2); + this.applistpanelCitrix.Dock = System.Windows.Forms.DockStyle.Top; + this.applistpanelCitrix.Font = new System.Drawing.Font("Calibri", 10F); + this.applistpanelCitrix.Grouping = false; + this.applistpanelCitrix.IsLast = false; + this.applistpanelCitrix.ListName = "Citrix"; + this.applistpanelCitrix.Location = new System.Drawing.Point(10, 101); + this.applistpanelCitrix.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.applistpanelCitrix.MinimumSize = new System.Drawing.Size(0, 44); + this.applistpanelCitrix.Name = "applistpanelCitrix"; + this.applistpanelCitrix.Padding = new System.Windows.Forms.Padding(31, 7, 2, 7); + this.applistpanelCitrix.Showing = false; + this.applistpanelCitrix.Size = new System.Drawing.Size(720, 71); + this.applistpanelCitrix.TabIndex = 4; + this.applistpanelCitrix.Tag = "citrix"; + // + // FormMain + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(716, 387); + this.ControlBox = false; + this.Controls.Add(this.applistpanelUser); + this.Controls.Add(this.applistpanelMenu); + this.Controls.Add(this.applistpanelAdmin); + this.Controls.Add(this.applistpanelFavorites); + this.Controls.Add(this.applistpanelCitrix); + this.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Moveable = false; + this.Name = "FormMain"; + this.Opacity = 0.5D; + this.Padding = new System.Windows.Forms.Padding(10, 38, 10, 10); + this.RegionBounds = new System.Drawing.Rectangle(15, 15, 716, 387); + this.Resizable = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.Text = "GFATask"; + this.TextAlign = System.Drawing.StringAlignment.Center; + this.TitlebarHeight = 28; + this.TopMost = true; + this.ResumeLayout(false); + + } + + #endregion + + private AppListPanel applistpanelMenu; + private AppListPanel applistpanelCitrix; + private AppListPanel applistpanelFavorites; + private AppListPanel applistpanelAdmin; + private AppListPanel applistpanelUser; + } +} + diff --git a/GFATask/Forms/FormMain.cs b/GFATask/Forms/FormMain.cs new file mode 100644 index 0000000..7374e82 --- /dev/null +++ b/GFATask/Forms/FormMain.cs @@ -0,0 +1,647 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class FormMain : FormEx + { + /// + /// Gibt den aktuell fokusierten Bildschirm aus, auf dem sich der GFA-Task befindet + /// + private Screen currentscreen = null; + + /// + /// Darstellung des Aktionsbereichs des GFA-Task + /// + Rectangle actionregion = new Rectangle(); + + /// + /// Gibt die absoluten Y-Koordinaten für das Aus[0]- und Einblenden[1] an + /// + private int[] start_stop_y = new int[2]; + + /// + /// Speichert den Wert einer einzelnen Einheit ab, die den GFA-Task parallel zum hoch- und runterfahren ein- und ausblendet. + /// Damit endet der Ein- und Ausblendevorgang zeitgleich mit dem hoch- und runterfahren + /// + private double opacitystep; + + + private int _actionregionheight = 1; + /// + /// Zeichenbreite der Aktionslinie des Hauptfensters + /// + public int ActionRegionHeight + { + get => _actionregionheight; set + { + _actionregionheight = value; + this.SetActionRegion(); + this.Invalidate(); + } + } + + + public FormMain() + { + + + if (Config.User.ErrorHandle) + Log.EventLog.StartLoggingUI(Config.Main.LoggerAppPath, ""); + Log.EventLog.SetAutoHandleException(true); + + #region Erstellung der Forms zur Laufzeit / in der selben AppDomain + Forms.Main = this; + Forms.Info = new FormInfo(); + Forms.Groups = new FormGroups(); + Forms.Settings = new FormSettings(); + Forms.Administration = new FormAdmin(); + Forms.AppCreator = new FormAppCreator(); + Forms.AppButtonGroup = new FormAppButtonGroup(); + #endregion + + InitializeComponent(); + + this.UseNewsFeeds(); + Accumulations.Controls(this).Reverse().OfType().ToList().ForEach(applistpanel => + { + XObjects.AllAppListPanels.Add(applistpanel); + }); + + #region Configs + try + { + // Lädt das Layout des GFATask + this.SetDefaultDesign(); + this.Size = Config.User.Window.Size.Height < this.MinimumSize.Height ? new Size(Config.User.Window.Size.Width, this.MinimumSize.Height) : Config.User.Window.Size; + _actionregionheight = Config.User.Window.ActionRegionHeight; + this.SetStartValue(); + } + catch (Exception ex) + { + Log.EventLog.Write("Auslesefehler des Layouts", LogClassification.CriticalError, ex); + } + + try + { + // Lädt die Größe des GFATask + XObjects.Delay = new Delay(Config.User.NecessaryClick ? 0 : Config.User.Delay.Show, Config.User.Delay.Hide, Config.User.Delay.Speed == 100 ? 99 : Config.User.Delay.Speed, start_stop_y[0], start_stop_y[1]); + XObjects.Delay.ValueChanged += Delay_ValueChanged; + this.SetOpacityStep(); + } + catch (Exception ex) + { + Log.EventLog.Write("Delay nicht erstellt", LogClassification.CriticalError, ex); + } + + try + { + // Richtet den GFATask am Bildschirm aus + this.DesktopAlign(); + } + catch (Exception ex) + { + Log.EventLog.Write("Fehler in GFATask-Koordinaten", LogClassification.MediumError, ex); + } + #endregion + + #region AppListPanels / Apperstellung + // Richtet im Falle einer Falschsortierung die AppListPanels richtig aus + this.Controls.SetChildIndex(applistpanelMenu, 4); + this.Controls.SetChildIndex(applistpanelCitrix, 3); + this.Controls.SetChildIndex(applistpanelFavorites, 2); + this.Controls.SetChildIndex(applistpanelAdmin, 1); + this.Controls.SetChildIndex(applistpanelUser, 0); + + // Lädt die Größe der entsprechenden Appliste aus der Config.User Datei + XObjects.AllAppListPanels.ForEach(panel => + { + try + { + panel.Height = Accessor.GetListProperties(panel.AppType).Height; + } + catch (Exception ex) + { + Log.EventLog.Write(string.Format("Größenfehler in AppListPanel {0}", panel.Tag.ToString().First().ToString() + panel.Tag.ToString().Skip(1).ToString().ToLower()), LogClassification.CriticalError, ex); + } + }); + + this.CreateAppListPanels(); + + Accessor.SetLastAppListPanel(); + #endregion + + #region Active Directory Groups + try + { + // Lädt die Active Directory-Gruppen in das FormGroup + Forms.Groups.Loading(); + } + catch (Exception ex) + { + Log.EventLog.Write("AD Gruppen konnten nicht ausgelesen werden", LogClassification.CriticalError, ex); + } + #endregion + + #region Systemkontextmenü + this.RemoveSysMenuItem(SystemContextMenuEntry.Maximieren | SystemContextMenuEntry.Minimieren | SystemContextMenuEntry.Schließen | SystemContextMenuEntry.Seperator); + this.AddSysMenuItem(new ToolStripMenuItem("Meine Gruppen", null, (sender, e) => Accessor.OpenForm("Groups"))); + this.AddSysMenuItem(new ToolStripMenuItem("Info", null, (sender, e) => { SystemApps.Info(out _); })); + this.InsertSysMenuItem(2, new ToolStripMenuItem("Einstellungen", null, (sender, e) => { SystemApps.Settings(out _); })); + this.InsertSysMenuItem(3, new ToolStripSeparator()); + this.InsertSysMenuItem(4, new ToolStripMenuItem("Konfiguration sichern", null, (sender, e) => { SystemApps.Backup(out _); })); + this.InsertSysMenuItem(5, new ToolStripMenuItem("Konfiguration laden", null, (sender, e) => { SystemApps.LoadBackup(out _); })); + this.InsertSysMenuItem(6, new ToolStripSeparator()); + Task.Run(async delegate + { + if (await XObjects.IsADGroupFinish) + { + if (AD.Groups.Select(group => group.Name).Contains(Config.Main.Administration.ActiveDirectoryGroup)) + { + Forms.Main.Invoke(new MethodInvoker(delegate + { + this.InsertSysMenuItem(7, new ToolStripMenuItem("Administration", null, (sender, e) => { Accessor.OpenForm("Administration"); })); + this.InsertSysMenuItem(8, new ToolStripSeparator()); + this.InsertSysMenuItem(this.SysContextMenu.Items.Count, new ToolStripMenuItem("Beenden", null, (sender, e) => { SystemApps.Kill(out _); })); + })); + } + } + }); + this.InsertSysMenuItem(this.SysContextMenu.Items.Count, new ToolStripMenuItem("Neustart", null, (sender, e) => { SystemApps.Restart(out _); })); + #endregion + + #region Globale Hooks + try + { + // Installiert die Mouse-Hooks + Hooks.Mouse.Install(); + Hooks.Mouse.MouseMove += Hooks.Mouse_Move; + Hooks.Mouse.LeftButtonDown += Hooks.Mouse_Up; + Hooks.Mouse.RightButtonDown += Hooks.Mouse_Up; + + + } + catch (Exception ex) + { + Log.EventLog.Write("Konnte Mouse-Hook nicht installieren", LogClassification.Crash, ex); + throw; + } + + try + { + // Installiert die Tastatur-Hooks für die System-Apps und die SearchBox + // Fängt die Tastenkombinationen ab, sodass sie für Windows nicht mehr erreichbar sind, solange das Programm läuft + Hooks.KeyBoard.Interceptor.RegisterHotKey(Modifier.CTRL, Keys.F1, "info"); + Hooks.KeyBoard.Interceptor.RegisterHotKey(Modifier.CTRL, Keys.F2, "settings"); + Hooks.KeyBoard.Interceptor.RegisterHotKey(Modifier.CTRL, Keys.F3, "admin"); + Hooks.KeyBoard.Interceptor.KeyPressed += Hooks.KeyBoard_Intercept_KeyPress; + } + catch (Exception ex) + { + Log.EventLog.Write("HotKeys konnten nicht registriert werden", LogClassification.MediumError, ex); + } + #endregion + } + + /// + /// Erstellt die App- und GoupButtons in den AppListPanels + /// + public void CreateAppListPanels() + { + try + { + Creator.AppListPanel(applistpanelMenu, AppLists.Menu); + } + catch (Exception ex) + { + Log.EventLog.Write("Apps in Menü-Liste nicht erstellt", LogClassification.CriticalError, ex); + } + + try + { + Creator.AppListPanel(applistpanelCitrix, AppLists.Citrix); + } + catch (Exception ex) + { + Log.EventLog.Write("Apps in Citrix-Liste nicht erstellt", LogClassification.CriticalError, ex); + } + + try + { + Creator.AppListPanel(applistpanelFavorites, AppLists.Favorites); + //Creator.AppListPanel(applistpanelFavorites, AppLists.Favorites); + } + catch (Exception ex) + { + Log.EventLog.Write("Apps in Favoriten-Liste nicht erstellt", LogClassification.CriticalError, ex); + } + + try + { + Creator.AppListPanel(applistpanelAdmin, AppLists.Admin); + } + catch (Exception ex) + { + Log.EventLog.Write("Apps in Admin-Liste nicht erstellt", LogClassification.CriticalError, ex); + } + + try + { + Creator.AppListPanel(applistpanelUser, AppLists.User); + } + catch (Exception ex) + { + Log.EventLog.Write("Apps in User-Apps-Liste nicht erstellt", LogClassification.CriticalError, ex); + } + } + + + /// + /// Richtet den GFA-Task mittig am oberen Rand des angegebenen Bildschirms aus + /// + public void DesktopAlign() + { + try + { + this.SetStartValue(); + this.DesktopLocation = new Point(Desktop.Anchor(this, currentscreen, DesktopAnchor.Top).X, start_stop_y[0]); + } + catch (Exception ex) + { + Log.EventLog.Write("Ausrichtungsfehler am Bildschirm", LogClassification.CriticalError, + new Exception(string.Format("{0}\n\n{1}", "Der Bildschirm auf dem der GFA-Task ausgerichtet werden soll, konnte nicht gefunden werden.", ex.Message), ex.InnerException)); + + //if (Notify.Show("Der ausgewählte Bildschirm konnte nicht gefunden werden. Der GFA-Task wird auf dem Hauptbildschirm dargestellt.\n\n" + + // "Um den eigentlichen Bildschirm wiederherzustellen, öffnen Sie die App \"Einstellungen\" in der Menüliste und wählen dort einen geeigneten Bildschirm aus", NotifyButtons.OK, NotifyType.Message, Designer.Notify(300, 200), null, "SelfService").Result == DialogResult.OK) + //{ + // int primary_id = Array.IndexOf(Screen.AllScreens, Screen.AllScreens.First(scr => scr.Primary)) + 1; + // this.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size; + // this.DesktopLocation = Desktop.Anchor(this, primary_id, DesktopAnchor.Top, (int)-XObjects.Delay.StartValue); + // Config.User.Screen = Screen.AllScreens[ primary_id -1].DeviceName; + // JSON.Save(JSONConfig.User); + //} + } + XObjects.Delay.Decrease(); + } + + + /// + /// Lädt die Symbole der internationalen Welttage, abhängig von den aktivierten Welttages-Zeiträumen im Administrationsbereich + /// + public void UseNewsFeeds() + { + // Der Programmname mit dynamischer Versionierung + this.Text = $"{InfoClass.Program}"; + + // Ist heute mindestens ein internationaler Welttag aktiviert + if (Config.NewsFeeds.Exists(this.GetCurrentNewsFeed())) + { + // Liest alle heutigen internationalen Welttage aus der worldday.json aus + var newsfeeds = Config.NewsFeeds.FindAll(this.GetCurrentNewsFeed()); + newsfeeds.ForEach(newsfeed => this.Text += $" | {newsfeed.Title.Replace("\\n", "\n")}"); + + // Sind heute internationale Welttage aktiv, besitzen diese jedoch keine Symbole, dann wird das Grünflächenamt Logo angezeigt + if (newsfeeds.All(news => news.Icon == null || news.Icon == "")) + { + this.Icon = Icon.FromHandle(new Bitmap(Paths.Icons.Directory + @"\System\GFA.png").GetHicon()); + } + else + { + // Ist heute nur ein internationaler Welttag in der worldday.json Datei aktiv, oder gibt es nur ein Symbol, wird dieses angezeigt + if (newsfeeds.Count == 1 || newsfeeds.Count(news => news.Icon != null && news.Icon != "") == 1) + { + this.Icon = Icon.FromHandle(new Bitmap(Paths.NewsFeeds.Icons.Directory + newsfeeds.Find(w => w.Icon != null && w.Icon != "").Icon).GetHicon()); + } + else + { + // Sind mehrere aktiv, so werden diese in einem Symbol zusammengeführt + this.Icon = Icon.FromHandle(newsfeeds.Where(w => w.Icon != null && System.IO.File.Exists(Paths.NewsFeeds.Icons.Directory + w.Icon)).Select(w => new Bitmap(Paths.NewsFeeds.Icons.Directory + w.Icon)).ToArray().Merge(this.Icon.Size, 2).GetHicon()); + } + } + } + // Sind heute keine internationalen Welttage aktiv, dann wird das Grünflächenamt Logo angezeigt + else + { + this.Text = $"{InfoClass.Program} | Herzlich Willkommen"; + this.Icon = Icon.FromHandle(new Bitmap(Paths.Icons.Directory + @"\System\GFA.png").GetHicon()); + } + } + + + /// + /// Berechnet einen Schritt um beim Abschluss der Delay Funktion den richtigen Transparenzwert zu erhalten + /// + public void SetOpacityStep() => + opacitystep = XObjects.Delay.GetSteps(Config.User.Window.Opacity - .5D); + + + /// + /// Definiert die Start- und Stop-Y-Koordinate für das Erscheinen und Ausblenden des GFATask + /// + public void SetStartValue() + { + // Wenn es den Bildschirm nicht gibt, dann soll der Primäre genommen werden, + // ansonsten wird geprüft, ob der ausgewählte Bildschirm den obersten Punkt aller Bildschirme enthält. + // Wenn nicht, wird der Bildschirm mit dem gerinsten Y-Koordinaten-Wert genutzt + + //if(Config.User.Screen == "DYNAMIC") + //{ + // currentscreen = Screen.FromPoint(Cursor.Position); + //} + //else + //{ + + if (!Screen.AllScreens.ToList().Exists(scr => scr.DeviceName.Replace(@"\\.\", "") == Config.User.Screen)) + { + currentscreen = Screen.PrimaryScreen; + } + else + { + Screen tempscreen = Screen.AllScreens.ToList().Find(scr => scr.DeviceName.Replace(@"\\.\", "") == Config.User.Screen); + if (tempscreen.Bounds.Y != Screen.AllScreens.Min(scr => scr.Bounds.Y) && (tempscreen.Bounds.Right <= Screen.PrimaryScreen.Bounds.Left && tempscreen.Bounds.Left <= Screen.PrimaryScreen.Bounds.Right)) + { + currentscreen = Screen.AllScreens.ToList().Find(scr => scr.Bounds.Y == Screen.AllScreens.Min(s => s.Bounds.Y)); + } + else + { + currentscreen = tempscreen; + } + } + + //currentscreen = Screen.AllScreens.ToList().Find(scr => scr.DeviceName.Replace(@"\\.\", "") == Config.User.Screen) == null ? + //Screen.PrimaryScreen : + //Screen.AllScreens.ToList().Find(scr => scr.DeviceName.Replace(@"\\.\", "") == Config.User.Screen).Bounds.Y == Screen.AllScreens.Min(scr => scr.Bounds.Y) ? + //Screen.AllScreens.ToList().Find(scr => scr.DeviceName.Replace(@"\\.\", "") == Config.User.Screen) : + //Screen.AllScreens.ToList().Find(scr => scr.Bounds.Y == Screen.AllScreens.Min(s => s.Bounds.Y)); + //} + + start_stop_y = new int[] + { + Screen.PrimaryScreen.Bounds.Top +currentscreen.Bounds.Top - (Config.User.Window.Size.Height < this.MinimumSize.Height ? this.MinimumSize.Height : this.Height) + this.GripSize +_actionregionheight - this.BorderWidth, + Screen.PrimaryScreen.Bounds.Top +currentscreen.Bounds.Top - this.GripSize - (this.BorderWidth == 0 ? 1 : this.BorderWidth) + }; + + + //start_stop_y = new int[] + //{ + // (int)Math.Floor((currentscreen.Bounds.Y) * (decimal)Win32API.GetScalingFactor(currentscreen)) - (Config.User.Window.Size.Height < this.MinimumSize.Height ? this.MinimumSize.Height : this.Height) + this.GripSize +_actionregionheight - this.BorderWidth, + // (int)Math.Floor((currentscreen.Bounds.Y) * (decimal)Win32API.GetScalingFactor(currentscreen)) - this.GripSize - (this.BorderWidth == 0 ? 1 : this.BorderWidth) + //}; + + // Eingeklappte Y-Koordinate + XObjects.Delay.StartValue = start_stop_y[0]; + + // Ausgeklappte Y-Koordinate + XObjects.Delay.EndValue = start_stop_y[1]; + + this.SetActionRegion(); + this.SetMaximumSize(); + } + + + /// + /// Anhand der Mindesthöhe der AppListPanels Steuerelemente wird mit dieser Methode die Mindesthöhe des GFATask berechnet + /// + public void SetMinimumSize() + { + this.MinimumSize = new Size(200, XObjects.AllAppListPanels.Where(panel => panel.Showing).Sum(panel => panel.IsLast ? panel.MinimumSize.Height : panel.Height) + this.Padding.Vertical + _actionregionheight); + this.Size = Config.User.Window.Size.Height < this.MinimumSize.Height ? new Size(Config.User.Window.Size.Width, this.MinimumSize.Height + _actionregionheight) : Config.User.Window.Size; + } + + + /// + /// Richtet sich nach der Auflösung des Bildschirms. Der GFATask kann bis maximal zur Taskleiste, abzüglich der GripSize vergrößert werden + /// + public void SetMaximumSize() + { + try + { + this.MaximumSize = new Size(currentscreen.WorkingArea.Width - (this.GripSize * 2), start_stop_y[1] + currentscreen.WorkingArea.Height - this.GripSize); + } + catch (Exception ex) + { + Log.EventLog.Write("Fehler beim skalieren der maximalen Größe", LogClassification.MediumError, ex); + } + } + + + + /// + /// Darstellung des farbigen Elements, welches im unteren Bereich des GFATask dargestellt wird + /// + public void SetActionRegion() + { + // Erstellt das zu zeichnende farbige Element + actionregion = new Rectangle(this.borderbounds.Left, this.borderbounds.Bottom - _actionregionheight + this.BorderWidth, this.borderbounds.Width + this.BorderWidth, _actionregionheight); + } + + + /// + /// Führt das Ein- und Ausblenden des GFATask aus. In der Hook-Klasse wird die Methode angestoßen + /// + public void Delay_ValueChanged(object sender, DelayEventArgs e) + { + switch (e.Direction) + { + case Delay.Prevent.Increase: + this.Invoke(new MethodInvoker(delegate + { + if (this.DesktopLocation.Y < (int)XObjects.Delay.EndValue - XObjects.Delay.Steps) + { + this.DesktopLocation = new Point(this.DesktopLocation.X, this.DesktopLocation.Y + (int)Math.Ceiling(e.Step)); + this.Opacity += opacitystep; + } + else + { + this.DesktopLocation = new Point(this.DesktopLocation.X, (int)XObjects.Delay.EndValue); + this.Opacity = Config.User.Window.Opacity; + } + })); + break; + case Delay.Prevent.Decrease: + if (this.Created) + { + this.Invoke(new MethodInvoker(delegate + { + if (this.DesktopLocation.Y > (int)XObjects.Delay.StartValue + XObjects.Delay.Steps) + { + this.DesktopLocation = new Point(this.DesktopLocation.X, this.DesktopLocation.Y - (int)Math.Ceiling(e.Step)); + this.Opacity -= opacitystep; + } + else + { + this.DesktopLocation = new Point(this.DesktopLocation.X, (int)XObjects.Delay.StartValue); + this.Opacity = .5; + } + })); + } + + break; + } + if (e.CurrentCount == XObjects.Delay.MaxCounts) + { + this.Resizable = true; + this.DesktopLocation = new Point(this.DesktopLocation.X, (int)XObjects.Delay.EndValue); + } + else if (e.CurrentCount == 0) + { + this.Resizable = false; + this.DesktopLocation = new Point(this.DesktopLocation.X, (int)XObjects.Delay.StartValue); + this.Invalidate(); + } + } + + + /// + /// Überprüft, ob für heute ein internationaler Welttag in den Neuigkeiten newsfeeds.json vorhanden ist + /// + /// + private Predicate GetCurrentNewsFeed() + { + return new Predicate(feed => + { + if (feed.Begin.Day > DateTime.DaysInMonth(DateTime.Now.Year, feed.Begin.Month)) + { + feed.Begin.Day = DateTime.DaysInMonth(DateTime.Now.Year, feed.Begin.Month); + JSON.Save(JSONConfig.NewsFeeds); + } + if (feed.End.Day > DateTime.DaysInMonth(DateTime.Now.Year, feed.End.Month)) + { + feed.End.Day = DateTime.DaysInMonth(DateTime.Now.Year, feed.End.Month); + JSON.Save(JSONConfig.NewsFeeds); + } + return feed.Enable && Verifying.BetweenDate(new DateTime(DateTime.Now.Year, feed.Begin.Month, feed.Begin.Day), new DateTime(DateTime.Now.Year, feed.End.Month, feed.End.Day)); + }); + } + + + /// + /// Bei einem Drag'n Drop-Vorgang wird der GFA-Task sofort ausgeklappt + /// + /// + protected override void OnDragEnter(DragEventArgs drgevent) + { + XObjects.Delay.Waiting = new Delay.DelayTime(0, Config.User.Delay.Hide); + XObjects.Delay.Increase(); + base.OnDragEnter(drgevent); + this.Invalidate(); + } + + + protected override void OnSizeChanged(EventArgs e) + { + this.Update(); + if (this.Created) + XObjects.AllAppListPanels.ForEach(applist => applist.FlowContent.Update()); + base.OnSizeChanged(e); + } + + + /// + /// Beim Ändern der Schriftart, wird die neue minimale Höhe ermittelt + /// + /// + protected override void OnFontChanged(EventArgs e) + { + base.OnFontChanged(e); + this.SetMinimumSize(); + } + + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + #region Startet die Ladeanimation + try + { + // Animiert das Ladefenster zu Beginn der App. Schließt dieses, sobald in der AppListe all Apps geladen wurden + XObjects.LoadingPanel.Location = new Point(this.Padding.Left, this.Padding.Top); + XObjects.LoadingPanel.Size = new Size(this.Width - this.Padding.Horizontal, this.Height - this.Padding.Vertical - _actionregionheight); + this.Controls.Add(XObjects.LoadingPanel); + } + catch (Exception ex) + { + Log.EventLog.Write("Kann Ladeanimation nicht starten", LogClassification.LowError, ex); + } + #endregion + + this.SetMinimumSize(); + this.SetStartValue(); + + XObjects.FrontEndRefresh = new FrontEndRefresh(Paths.FrontEndRefresh.FullName) { SelfUpdate = false }; + if(Config.Main.Administration.RemoteFrontEndUpdate) + XObjects.FrontEndRefresh.Start(); + XObjects.FrontEndRefresh.Updated += FrontEndRefreshExecution.Updated; + XObjects.FrontEndRefresh.Error += FrontEndRefreshExecution.OnError; + } + + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + e.Graphics.FillPath(new SolidBrush(Config.Main.Colors.Window.Action), actionregion.ToRoundedRectangle(this.Radius, RectangleCorners.BottomLeft | RectangleCorners.BottomRight)); + + //e.Graphics.FillRectangle(Brushes.AliceBlue, RegionBounds); + } + + + protected override void WndProc(ref Message m) + { + // Beginnt mit dem Vergrößerungsprozess des GFA-Task + if (m.Msg == (int)WM.ENTERSIZEMOVE) + { + XObjects.AllAppListPanels.ForEach(applist => applist.DoubleBuffer(true)); + XObjects.Delay.Increase(); + + } + // Beendet den Vergrößerungsprozess des GFA-Task + if (m.Msg == (int)WM.EXITSIZEMOVE) + { + XObjects.AllAppListPanels.ForEach(applist => applist.DoubleBuffer(false)); + this.DesktopLocation = new Point(Desktop.Anchor(this, currentscreen, DesktopAnchor.Top).X, start_stop_y[1]); + //this.Invoke(new MethodInvoker(delegate { this.DesktopAnchor = new Point(Desktop.Anchor(this, DesktopAnchor.Top, -this.GripSize).X, start_stop_y[1]); })); + Config.User.Window.Size = this.Size; + JSON.Save(JSONConfig.User); + + Accessor.SetLastAppListPanel(); + this.SetMinimumSize(); + this.SetStartValue(); + this.Invalidate(true); + } + base.WndProc(ref m); + } + + + protected override void OnFormClosing(FormClosingEventArgs e) + { + if (e.CloseReason == CloseReason.UserClosing) + { + e.Cancel = true; + } + else + { + Environment.Exit(Environment.ExitCode); + } + base.OnFormClosing(e); + } + + + protected override CreateParams CreateParams + { + get + { + var cp = base.CreateParams; + cp.ExStyle |= (int)WS_EX.WS_EX_TOOLWINDOW | (int)WS_EX.WS_EX_TOPMOST; + return cp; + } + } + } +} diff --git a/GFATask/Forms/FormMain.resx b/GFATask/Forms/FormMain.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/Forms/FormMain.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/Forms/FormSettings.Designer.cs b/GFATask/Forms/FormSettings.Designer.cs new file mode 100644 index 0000000..f95277a --- /dev/null +++ b/GFATask/Forms/FormSettings.Designer.cs @@ -0,0 +1,1323 @@ + +namespace GFATask +{ + partial class FormSettings + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + GFATask.Prevalencia prevalencia1 = new GFATask.Prevalencia(); + this.tableGeneral = new System.Windows.Forms.TableLayoutPanel(); + this.label24 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.label18 = new System.Windows.Forms.Label(); + this.label19 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.panelMargin = new System.Windows.Forms.Panel(); + this.label23 = new System.Windows.Forms.Label(); + this.cbAppSorting = new System.Windows.Forms.ComboBox(); + this.label25 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label26 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label29 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label28 = new System.Windows.Forms.Label(); + this.label27 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.cbScreen = new System.Windows.Forms.ComboBox(); + this.label30 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label31 = new System.Windows.Forms.Label(); + this.switchNecessaryClick = new System.Windows.Forms.SwitchButton(); + this.switch_group_menu = new System.Windows.Forms.SwitchButton(); + this.switch_group_favorites = new System.Windows.Forms.SwitchButton(); + this.switch_show_favorites = new System.Windows.Forms.SwitchButton(); + this.switch_group_user = new System.Windows.Forms.SwitchButton(); + this.switch_show_user = new System.Windows.Forms.SwitchButton(); + this.switch_group_citrix = new System.Windows.Forms.SwitchButton(); + this.switch_show_citrix = new System.Windows.Forms.SwitchButton(); + this.numGrouplistapps = new System.Windows.Forms.NumericEx(); + this.switch_group_admin = new System.Windows.Forms.SwitchButton(); + this.switch_show_admin = new System.Windows.Forms.SwitchButton(); + this.numOpacity = new System.Windows.Forms.NumericEx(); + this.numFontSize = new System.Windows.Forms.NumericEx(); + this.numDelayHide = new System.Windows.Forms.NumericEx(); + this.numDelayShow = new System.Windows.Forms.NumericEx(); + this.numDelaySpeed = new System.Windows.Forms.NumericEx(); + this.abtnVerwerfen = new System.Windows.Forms.AnimationButton(); + this.abtnSubmit = new System.Windows.Forms.AnimationButton(); + this.abtnAnwenden = new System.Windows.Forms.AnimationButton(); + this.numAppHeight = new System.Windows.Forms.NumericEx(); + this.numAppWidth = new System.Windows.Forms.NumericEx(); + this.switchOnlyImage = new System.Windows.Forms.SwitchButton(); + this.numAppMargin = new System.Windows.Forms.NumericEx(); + this.numAppImageRadius = new System.Windows.Forms.NumericEx(); + this.numAppRadius = new System.Windows.Forms.NumericEx(); + this.numAppBorder = new System.Windows.Forms.NumericEx(); + this.numActionRegionWidth = new System.Windows.Forms.NumericEx(); + this.switch_darkmode = new System.Windows.Forms.SwitchButton(); + this.tooltip = new System.Windows.Forms.ToolTipEx(this.components); + this.abtnTestApp = new GFATask.AppListButton(); + this.tableGeneral.SuspendLayout(); + this.panelMargin.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numGrouplistapps)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numOpacity)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numFontSize)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numDelayHide)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numDelayShow)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numDelaySpeed)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppHeight)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppWidth)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppMargin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppImageRadius)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppRadius)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppBorder)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numActionRegionWidth)).BeginInit(); + this.SuspendLayout(); + // + // tableGeneral + // + this.tableGeneral.AutoSize = true; + this.tableGeneral.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableGeneral.ColumnCount = 15; + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 127F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 102F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableGeneral.Controls.Add(this.switchNecessaryClick, 12, 7); + this.tableGeneral.Controls.Add(this.label24, 2, 7); + this.tableGeneral.Controls.Add(this.label6, 8, 2); + this.tableGeneral.Controls.Add(this.label3, 8, 6); + this.tableGeneral.Controls.Add(this.label7, 2, 6); + this.tableGeneral.Controls.Add(this.label5, 2, 1); + this.tableGeneral.Controls.Add(this.label13, 2, 4); + this.tableGeneral.Controls.Add(this.label14, 1, 3); + this.tableGeneral.Controls.Add(this.switch_group_menu, 4, 3); + this.tableGeneral.Controls.Add(this.switch_group_favorites, 6, 3); + this.tableGeneral.Controls.Add(this.switch_show_favorites, 6, 4); + this.tableGeneral.Controls.Add(this.switch_group_user, 10, 3); + this.tableGeneral.Controls.Add(this.switch_show_user, 10, 4); + this.tableGeneral.Controls.Add(this.switch_group_citrix, 12, 3); + this.tableGeneral.Controls.Add(this.switch_show_citrix, 12, 4); + this.tableGeneral.Controls.Add(this.label17, 4, 2); + this.tableGeneral.Controls.Add(this.label18, 6, 2); + this.tableGeneral.Controls.Add(this.label19, 10, 2); + this.tableGeneral.Controls.Add(this.label20, 12, 2); + this.tableGeneral.Controls.Add(this.label11, 0, 5); + this.tableGeneral.Controls.Add(this.numGrouplistapps, 4, 5); + this.tableGeneral.Controls.Add(this.label21, 2, 13); + this.tableGeneral.Controls.Add(this.panelMargin, 5, 15); + this.tableGeneral.Controls.Add(this.switch_group_admin, 8, 3); + this.tableGeneral.Controls.Add(this.switch_show_admin, 8, 4); + this.tableGeneral.Controls.Add(this.label23, 2, 8); + this.tableGeneral.Controls.Add(this.numOpacity, 4, 8); + this.tableGeneral.Controls.Add(this.cbAppSorting, 4, 7); + this.tableGeneral.Controls.Add(this.numFontSize, 4, 9); + this.tableGeneral.Controls.Add(this.label25, 2, 9); + this.tableGeneral.Controls.Add(this.label9, 8, 10); + this.tableGeneral.Controls.Add(this.label8, 8, 9); + this.tableGeneral.Controls.Add(this.label1, 9, 8); + this.tableGeneral.Controls.Add(this.numDelayHide, 12, 10); + this.tableGeneral.Controls.Add(this.numDelayShow, 12, 9); + this.tableGeneral.Controls.Add(this.numDelaySpeed, 12, 8); + this.tableGeneral.Controls.Add(this.label26, 9, 7); + this.tableGeneral.Controls.Add(this.label22, 5, 14); + this.tableGeneral.Controls.Add(this.abtnVerwerfen, 8, 20); + this.tableGeneral.Controls.Add(this.abtnSubmit, 10, 20); + this.tableGeneral.Controls.Add(this.abtnAnwenden, 12, 20); + this.tableGeneral.Controls.Add(this.numAppHeight, 4, 20); + this.tableGeneral.Controls.Add(this.label16, 2, 20); + this.tableGeneral.Controls.Add(this.label15, 2, 19); + this.tableGeneral.Controls.Add(this.numAppWidth, 4, 19); + this.tableGeneral.Controls.Add(this.switchOnlyImage, 4, 18); + this.tableGeneral.Controls.Add(this.label29, 2, 18); + this.tableGeneral.Controls.Add(this.label12, 1, 17); + this.tableGeneral.Controls.Add(this.numAppMargin, 4, 17); + this.tableGeneral.Controls.Add(this.numAppImageRadius, 4, 16); + this.tableGeneral.Controls.Add(this.numAppRadius, 4, 15); + this.tableGeneral.Controls.Add(this.numAppBorder, 4, 14); + this.tableGeneral.Controls.Add(this.label28, 2, 16); + this.tableGeneral.Controls.Add(this.label27, 2, 15); + this.tableGeneral.Controls.Add(this.label10, 2, 14); + this.tableGeneral.Controls.Add(this.cbScreen, 4, 11); + this.tableGeneral.Controls.Add(this.numActionRegionWidth, 4, 10); + this.tableGeneral.Controls.Add(this.label30, 1, 10); + this.tableGeneral.Controls.Add(this.label4, 2, 11); + this.tableGeneral.Controls.Add(this.label31, 2, 12); + this.tableGeneral.Controls.Add(this.switch_darkmode, 4, 12); + this.tableGeneral.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableGeneral.Location = new System.Drawing.Point(3, 26); + this.tableGeneral.Margin = new System.Windows.Forms.Padding(0, 33, 0, 0); + this.tableGeneral.Name = "tableGeneral"; + this.tableGeneral.RowCount = 21; + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 0F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableGeneral.Size = new System.Drawing.Size(823, 720); + this.tableGeneral.TabIndex = 0; + // + // label24 + // + this.label24.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point(74, 221); + this.label24.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(77, 13); + this.label24.TabIndex = 53; + this.label24.Text = "App Sortierung"; + // + // label6 + // + this.label6.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(453, 46); + this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(36, 13); + this.label6.TabIndex = 51; + this.label6.Text = "Admin"; + // + // label3 + // + this.label3.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label3, 5); + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(421, 175); + this.label3.Margin = new System.Windows.Forms.Padding(0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(360, 35); + this.label3.TabIndex = 12; + this.label3.Text = "Mausfunktionen"; + this.label3.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label7 + // + this.label7.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label7, 5); + this.label7.Dock = System.Windows.Forms.DockStyle.Fill; + this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label7.Location = new System.Drawing.Point(37, 175); + this.label7.Margin = new System.Windows.Forms.Padding(0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(369, 35); + this.label7.TabIndex = 20; + this.label7.Text = "Erweiterte Einstellungen"; + this.label7.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label5 + // + this.tableGeneral.SetColumnSpan(this.label5, 11); + this.label5.Dock = System.Windows.Forms.DockStyle.Fill; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(37, 0); + this.label5.Margin = new System.Windows.Forms.Padding(0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(744, 35); + this.label5.TabIndex = 19; + this.label5.Text = "Listeneinstellungen"; + this.label5.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label13 + // + this.label13.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(100, 116); + this.label13.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(51, 13); + this.label13.TabIndex = 22; + this.label13.Text = "Anzeigen"; + // + // label14 + // + this.label14.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label14.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label14, 2); + this.label14.Location = new System.Drawing.Point(67, 81); + this.label14.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(84, 13); + this.label14.TabIndex = 23; + this.label14.Text = "Apps gruppieren"; + // + // label17 + // + this.label17.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(208, 46); + this.label17.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(34, 13); + this.label17.TabIndex = 32; + this.label17.Text = "Menü"; + // + // label18 + // + this.label18.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(321, 46); + this.label18.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(51, 13); + this.label18.TabIndex = 33; + this.label18.Text = "Favoriten"; + // + // label19 + // + this.label19.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(581, 46); + this.label19.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(31, 13); + this.label19.TabIndex = 34; + this.label19.Text = "Apps"; + // + // label20 + // + this.label20.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(707, 46); + this.label20.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(29, 13); + this.label20.TabIndex = 35; + this.label20.Text = "Citrix"; + // + // label11 + // + this.label11.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label11.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label11, 3); + this.label11.Location = new System.Drawing.Point(69, 151); + this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(82, 13); + this.label11.TabIndex = 21; + this.label11.Text = "Gruppenspalten"; + // + // label21 + // + this.label21.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label21, 11); + this.label21.Dock = System.Windows.Forms.DockStyle.Fill; + this.label21.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label21.Location = new System.Drawing.Point(37, 420); + this.label21.Margin = new System.Windows.Forms.Padding(0); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(744, 35); + this.label21.TabIndex = 39; + this.label21.Text = "Darstellung"; + this.label21.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // panelMargin + // + this.panelMargin.AutoSize = true; + this.panelMargin.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.panelMargin.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tableGeneral.SetColumnSpan(this.panelMargin, 8); + this.panelMargin.Controls.Add(this.abtnTestApp); + this.panelMargin.Dock = System.Windows.Forms.DockStyle.Fill; + this.panelMargin.Location = new System.Drawing.Point(281, 490); + this.panelMargin.Margin = new System.Windows.Forms.Padding(0); + this.panelMargin.Name = "panelMargin"; + this.tableGeneral.SetRowSpan(this.panelMargin, 4); + this.panelMargin.Size = new System.Drawing.Size(500, 140); + this.panelMargin.TabIndex = 40; + // + // label23 + // + this.label23.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(85, 256); + this.label23.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(66, 13); + this.label23.TabIndex = 22; + this.label23.Text = "Transparenz"; + // + // cbAppSorting + // + this.cbAppSorting.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.cbAppSorting.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppSorting.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppSorting.FormattingEnabled = true; + this.cbAppSorting.Location = new System.Drawing.Point(185, 217); + this.cbAppSorting.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); + this.cbAppSorting.Name = "cbAppSorting"; + this.cbAppSorting.Size = new System.Drawing.Size(93, 21); + this.cbAppSorting.TabIndex = 54; + // + // label25 + // + this.label25.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(87, 291); + this.label25.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(64, 13); + this.label25.TabIndex = 55; + this.label25.Text = "Schriftgröße"; + // + // label9 + // + this.label9.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label9.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label9, 4); + this.label9.Location = new System.Drawing.Point(568, 326); + this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(90, 13); + this.label9.TabIndex = 16; + this.label9.Text = "Ausblenden nach"; + // + // label8 + // + this.label8.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label8.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label8, 4); + this.label8.Location = new System.Drawing.Point(571, 291); + this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(87, 13); + this.label8.TabIndex = 15; + this.label8.Text = "Einblenden nach"; + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label1.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label1, 3); + this.label1.Location = new System.Drawing.Point(573, 256); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(85, 13); + this.label1.TabIndex = 18; + this.label1.Text = "Geschwindigkeit"; + // + // label26 + // + this.label26.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label26.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label26, 3); + this.label26.Location = new System.Drawing.Point(592, 221); + this.label26.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(66, 13); + this.label26.TabIndex = 60; + this.label26.Text = "Nur mit Klick"; + // + // label22 + // + this.tableGeneral.SetColumnSpan(this.label22, 8); + this.label22.Dock = System.Windows.Forms.DockStyle.Fill; + this.label22.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label22.Location = new System.Drawing.Point(281, 455); + this.label22.Margin = new System.Windows.Forms.Padding(0); + this.label22.Name = "label22"; + this.label22.Padding = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.label22.Size = new System.Drawing.Size(500, 35); + this.label22.TabIndex = 68; + this.label22.Text = " Vorschau "; + this.label22.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label16 + // + this.label16.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(118, 686); + this.label16.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(33, 13); + this.label16.TabIndex = 28; + this.label16.Text = "Höhe"; + // + // label15 + // + this.label15.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(117, 641); + this.label15.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(34, 13); + this.label15.TabIndex = 26; + this.label15.Text = "Breite"; + // + // label29 + // + this.label29.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(90, 606); + this.label29.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(61, 13); + this.label29.TabIndex = 67; + this.label29.Text = "Nur Symbol"; + // + // label12 + // + this.label12.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label12.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label12, 3); + this.label12.Location = new System.Drawing.Point(79, 571); + this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(87, 13); + this.label12.TabIndex = 44; + this.label12.Text = "Abstand zu Apps"; + // + // label28 + // + this.label28.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label28.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label28, 2); + this.label28.Location = new System.Drawing.Point(86, 536); + this.label28.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(80, 13); + this.label28.TabIndex = 65; + this.label28.Text = "Symbolrundung"; + // + // label27 + // + this.label27.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(86, 501); + this.label27.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(65, 13); + this.label27.TabIndex = 63; + this.label27.Text = "Apprundung"; + // + // label10 + // + this.label10.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(78, 466); + this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(73, 13); + this.label10.TabIndex = 42; + this.label10.Text = "Rahmenbreite"; + // + // cbScreen + // + this.cbScreen.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.tableGeneral.SetColumnSpan(this.cbScreen, 4); + this.cbScreen.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbScreen.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbScreen.FormattingEnabled = true; + this.cbScreen.Location = new System.Drawing.Point(185, 357); + this.cbScreen.Margin = new System.Windows.Forms.Padding(6, 3, 3, 3); + this.cbScreen.Name = "cbScreen"; + this.cbScreen.Size = new System.Drawing.Size(231, 21); + this.cbScreen.TabIndex = 48; + // + // label30 + // + this.label30.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label30.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label30, 2); + this.label30.Location = new System.Drawing.Point(55, 326); + this.label30.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(96, 13); + this.label30.TabIndex = 69; + this.label30.Text = "Breite Aktionsleiste"; + // + // label4 + // + this.label4.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(97, 361); + this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(54, 13); + this.label4.TabIndex = 47; + this.label4.Text = "Bildschirm"; + // + // label31 + // + this.label31.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(91, 396); + this.label31.Margin = new System.Windows.Forms.Padding(4, 0, 13, 0); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(60, 13); + this.label31.TabIndex = 71; + this.label31.Text = "Dark Mode"; + // + // switchNecessaryClick + // + this.switchNecessaryClick.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switchNecessaryClick.BackColor = System.Drawing.Color.White; + this.switchNecessaryClick.ButtonWidth = 35; + this.switchNecessaryClick.Checked = false; + this.switchNecessaryClick.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switchNecessaryClick.CheckThreeState = false; + this.switchNecessaryClick.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switchNecessaryClick.ColorInactive = System.Drawing.Color.OrangeRed; + this.switchNecessaryClick.Location = new System.Drawing.Point(684, 215); + this.switchNecessaryClick.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switchNecessaryClick.Name = "switchNecessaryClick"; + this.switchNecessaryClick.RoundedButton = true; + this.switchNecessaryClick.ShowBoarder = false; + this.switchNecessaryClick.Size = new System.Drawing.Size(80, 25); + this.switchNecessaryClick.TabIndex = 61; + this.switchNecessaryClick.Text = "switchButton6"; + // + // switch_group_menu + // + this.switch_group_menu.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_group_menu.BackColor = System.Drawing.Color.White; + this.switch_group_menu.ButtonWidth = 35; + this.switch_group_menu.Checked = false; + this.switch_group_menu.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_group_menu.CheckThreeState = false; + this.switch_group_menu.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_group_menu.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_group_menu.Location = new System.Drawing.Point(192, 75); + this.switch_group_menu.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_group_menu.Name = "switch_group_menu"; + this.switch_group_menu.RoundedButton = true; + this.switch_group_menu.ShowBoarder = false; + this.switch_group_menu.Size = new System.Drawing.Size(80, 25); + this.switch_group_menu.TabIndex = 24; + this.switch_group_menu.Text = "switchButton1"; + // + // switch_group_favorites + // + this.switch_group_favorites.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_group_favorites.BackColor = System.Drawing.Color.White; + this.switch_group_favorites.ButtonWidth = 35; + this.switch_group_favorites.Checked = false; + this.switch_group_favorites.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_group_favorites.CheckThreeState = false; + this.switch_group_favorites.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_group_favorites.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_group_favorites.Location = new System.Drawing.Point(309, 75); + this.switch_group_favorites.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_group_favorites.Name = "switch_group_favorites"; + this.switch_group_favorites.RoundedButton = true; + this.switch_group_favorites.ShowBoarder = false; + this.switch_group_favorites.Size = new System.Drawing.Size(80, 25); + this.switch_group_favorites.TabIndex = 25; + this.switch_group_favorites.Text = "switchButton2"; + // + // switch_show_favorites + // + this.switch_show_favorites.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_show_favorites.BackColor = System.Drawing.Color.White; + this.switch_show_favorites.ButtonWidth = 35; + this.switch_show_favorites.Checked = false; + this.switch_show_favorites.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_show_favorites.CheckThreeState = false; + this.switch_show_favorites.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_show_favorites.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_show_favorites.Location = new System.Drawing.Point(309, 110); + this.switch_show_favorites.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_show_favorites.Name = "switch_show_favorites"; + this.switch_show_favorites.RoundedButton = true; + this.switch_show_favorites.ShowBoarder = false; + this.switch_show_favorites.Size = new System.Drawing.Size(80, 25); + this.switch_show_favorites.TabIndex = 26; + this.switch_show_favorites.Text = "switchButton3"; + // + // switch_group_user + // + this.switch_group_user.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_group_user.BackColor = System.Drawing.Color.White; + this.switch_group_user.ButtonWidth = 35; + this.switch_group_user.Checked = false; + this.switch_group_user.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_group_user.CheckThreeState = false; + this.switch_group_user.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_group_user.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_group_user.Location = new System.Drawing.Point(559, 75); + this.switch_group_user.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_group_user.Name = "switch_group_user"; + this.switch_group_user.RoundedButton = true; + this.switch_group_user.ShowBoarder = false; + this.switch_group_user.Size = new System.Drawing.Size(80, 25); + this.switch_group_user.TabIndex = 28; + this.switch_group_user.Text = "switchButton5"; + // + // switch_show_user + // + this.switch_show_user.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_show_user.BackColor = System.Drawing.Color.White; + this.switch_show_user.ButtonWidth = 35; + this.switch_show_user.Checked = false; + this.switch_show_user.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_show_user.CheckThreeState = false; + this.switch_show_user.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_show_user.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_show_user.Location = new System.Drawing.Point(559, 110); + this.switch_show_user.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_show_user.Name = "switch_show_user"; + this.switch_show_user.RoundedButton = true; + this.switch_show_user.ShowBoarder = false; + this.switch_show_user.Size = new System.Drawing.Size(80, 25); + this.switch_show_user.TabIndex = 29; + this.switch_show_user.Text = "switchButton6"; + // + // switch_group_citrix + // + this.switch_group_citrix.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_group_citrix.BackColor = System.Drawing.Color.White; + this.switch_group_citrix.ButtonWidth = 35; + this.switch_group_citrix.Checked = false; + this.switch_group_citrix.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_group_citrix.CheckThreeState = false; + this.switch_group_citrix.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_group_citrix.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_group_citrix.Location = new System.Drawing.Point(684, 75); + this.switch_group_citrix.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_group_citrix.Name = "switch_group_citrix"; + this.switch_group_citrix.RoundedButton = true; + this.switch_group_citrix.ShowBoarder = false; + this.switch_group_citrix.Size = new System.Drawing.Size(80, 25); + this.switch_group_citrix.TabIndex = 30; + this.switch_group_citrix.Text = "switchButton7"; + // + // switch_show_citrix + // + this.switch_show_citrix.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_show_citrix.BackColor = System.Drawing.Color.White; + this.switch_show_citrix.ButtonWidth = 35; + this.switch_show_citrix.Checked = false; + this.switch_show_citrix.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_show_citrix.CheckThreeState = false; + this.switch_show_citrix.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_show_citrix.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_show_citrix.Location = new System.Drawing.Point(684, 110); + this.switch_show_citrix.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_show_citrix.Name = "switch_show_citrix"; + this.switch_show_citrix.RoundedButton = true; + this.switch_show_citrix.ShowBoarder = false; + this.switch_show_citrix.Size = new System.Drawing.Size(80, 25); + this.switch_show_citrix.TabIndex = 31; + this.switch_show_citrix.Text = "switchButton8"; + // + // numGrouplistapps + // + this.numGrouplistapps.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numGrouplistapps.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.tableGeneral.SetColumnSpan(this.numGrouplistapps, 3); + this.numGrouplistapps.Location = new System.Drawing.Point(192, 149); + this.numGrouplistapps.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numGrouplistapps.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numGrouplistapps.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numGrouplistapps.Name = "numGrouplistapps"; + this.numGrouplistapps.Size = new System.Drawing.Size(60, 16); + this.numGrouplistapps.TabIndex = 38; + this.numGrouplistapps.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // switch_group_admin + // + this.switch_group_admin.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_group_admin.BackColor = System.Drawing.Color.White; + this.switch_group_admin.ButtonWidth = 35; + this.switch_group_admin.Checked = false; + this.switch_group_admin.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_group_admin.CheckThreeState = false; + this.switch_group_admin.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_group_admin.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_group_admin.Location = new System.Drawing.Point(434, 75); + this.switch_group_admin.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_group_admin.Name = "switch_group_admin"; + this.switch_group_admin.RoundedButton = true; + this.switch_group_admin.ShowBoarder = false; + this.switch_group_admin.Size = new System.Drawing.Size(80, 25); + this.switch_group_admin.TabIndex = 49; + this.switch_group_admin.Text = "switchButton2"; + // + // switch_show_admin + // + this.switch_show_admin.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_show_admin.BackColor = System.Drawing.Color.White; + this.switch_show_admin.ButtonWidth = 35; + this.switch_show_admin.Checked = false; + this.switch_show_admin.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_show_admin.CheckThreeState = false; + this.switch_show_admin.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_show_admin.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_show_admin.Location = new System.Drawing.Point(434, 110); + this.switch_show_admin.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_show_admin.Name = "switch_show_admin"; + this.switch_show_admin.RoundedButton = true; + this.switch_show_admin.ShowBoarder = false; + this.switch_show_admin.Size = new System.Drawing.Size(80, 25); + this.switch_show_admin.TabIndex = 50; + this.switch_show_admin.Text = "switchButton2"; + // + // numOpacity + // + this.numOpacity.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numOpacity.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numOpacity.DecimalPlaces = 2; + this.numOpacity.Increment = new decimal(new int[] { + 1, + 0, + 0, + 131072}); + this.numOpacity.Location = new System.Drawing.Point(192, 254); + this.numOpacity.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numOpacity.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numOpacity.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 65536}); + this.numOpacity.Name = "numOpacity"; + this.numOpacity.Size = new System.Drawing.Size(60, 16); + this.numOpacity.TabIndex = 39; + this.numOpacity.Value = new decimal(new int[] { + 95, + 0, + 0, + 131072}); + // + // numFontSize + // + this.numFontSize.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numFontSize.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numFontSize.DecimalPlaces = 1; + this.numFontSize.Increment = new decimal(new int[] { + 5, + 0, + 0, + 65536}); + this.numFontSize.Location = new System.Drawing.Point(192, 289); + this.numFontSize.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numFontSize.Maximum = new decimal(new int[] { + 25, + 0, + 0, + 0}); + this.numFontSize.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numFontSize.Name = "numFontSize"; + this.numFontSize.Size = new System.Drawing.Size(60, 16); + this.numFontSize.TabIndex = 56; + this.numFontSize.Value = new decimal(new int[] { + 9, + 0, + 0, + 0}); + // + // numDelayHide + // + this.numDelayHide.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numDelayHide.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numDelayHide.DecimalPlaces = 1; + this.numDelayHide.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numDelayHide.Location = new System.Drawing.Point(684, 324); + this.numDelayHide.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numDelayHide.Maximum = new decimal(new int[] { + 2, + 0, + 0, + 0}); + this.numDelayHide.Name = "numDelayHide"; + this.numDelayHide.Size = new System.Drawing.Size(60, 16); + this.numDelayHide.TabIndex = 14; + // + // numDelayShow + // + this.numDelayShow.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numDelayShow.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numDelayShow.DecimalPlaces = 1; + this.numDelayShow.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.numDelayShow.Location = new System.Drawing.Point(684, 289); + this.numDelayShow.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numDelayShow.Maximum = new decimal(new int[] { + 2, + 0, + 0, + 0}); + this.numDelayShow.Name = "numDelayShow"; + this.numDelayShow.Size = new System.Drawing.Size(60, 16); + this.numDelayShow.TabIndex = 13; + // + // numDelaySpeed + // + this.numDelaySpeed.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numDelaySpeed.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numDelaySpeed.Location = new System.Drawing.Point(684, 254); + this.numDelaySpeed.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numDelaySpeed.Name = "numDelaySpeed"; + this.numDelaySpeed.Size = new System.Drawing.Size(60, 16); + this.numDelaySpeed.TabIndex = 17; + // + // abtnVerwerfen + // + this.abtnVerwerfen.Anchor = System.Windows.Forms.AnchorStyles.None; + this.abtnVerwerfen.AutoSizeWidth = false; + this.abtnVerwerfen.Image = null; + this.abtnVerwerfen.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnVerwerfen.ImageBackColor = System.Drawing.Color.Empty; + this.abtnVerwerfen.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnVerwerfen.ImageMargin = 3; + this.abtnVerwerfen.ImagePadding = 0; + this.abtnVerwerfen.Location = new System.Drawing.Point(421, 675); + this.abtnVerwerfen.Margin = new System.Windows.Forms.Padding(0); + this.abtnVerwerfen.Name = "abtnVerwerfen"; + this.abtnVerwerfen.Size = new System.Drawing.Size(110, 35); + this.abtnVerwerfen.TabIndex = 59; + this.abtnVerwerfen.Text = "Verwerfen"; + this.abtnVerwerfen.TextBounds = new System.Drawing.Rectangle(1, 1, 108, 33); + this.abtnVerwerfen.ToolTipText = ""; + this.abtnVerwerfen.Click += new System.EventHandler(this.abtnVerwerfen_Click); + // + // abtnSubmit + // + this.abtnSubmit.Anchor = System.Windows.Forms.AnchorStyles.None; + this.abtnSubmit.AutoSizeWidth = false; + this.abtnSubmit.Image = null; + this.abtnSubmit.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnSubmit.ImageBackColor = System.Drawing.Color.Empty; + this.abtnSubmit.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnSubmit.ImageMargin = 3; + this.abtnSubmit.ImagePadding = 0; + this.abtnSubmit.Location = new System.Drawing.Point(550, 675); + this.abtnSubmit.Margin = new System.Windows.Forms.Padding(0); + this.abtnSubmit.Name = "abtnSubmit"; + this.abtnSubmit.Size = new System.Drawing.Size(102, 35); + this.abtnSubmit.TabIndex = 58; + this.abtnSubmit.Text = "Übernehmen"; + this.abtnSubmit.TextBounds = new System.Drawing.Rectangle(2, 2, 98, 31); + this.abtnSubmit.ToolTipText = ""; + this.abtnSubmit.Click += new System.EventHandler(this.abtnSubmit_Click); + // + // abtnAnwenden + // + this.abtnAnwenden.Anchor = System.Windows.Forms.AnchorStyles.None; + this.abtnAnwenden.AutoSizeWidth = false; + this.abtnAnwenden.Image = null; + this.abtnAnwenden.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnAnwenden.ImageBackColor = System.Drawing.Color.Empty; + this.abtnAnwenden.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnAnwenden.ImageMargin = 3; + this.abtnAnwenden.ImagePadding = 0; + this.abtnAnwenden.Location = new System.Drawing.Point(675, 675); + this.abtnAnwenden.Margin = new System.Windows.Forms.Padding(0); + this.abtnAnwenden.Name = "abtnAnwenden"; + this.abtnAnwenden.Size = new System.Drawing.Size(102, 34); + this.abtnAnwenden.TabIndex = 57; + this.abtnAnwenden.Text = "Anwenden"; + this.abtnAnwenden.TextBounds = new System.Drawing.Rectangle(1, 1, 100, 32); + this.abtnAnwenden.ToolTipText = ""; + this.abtnAnwenden.Click += new System.EventHandler(this.abtnAnwenden_Click); + // + // numAppHeight + // + this.numAppHeight.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numAppHeight.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numAppHeight.Location = new System.Drawing.Point(192, 684); + this.numAppHeight.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numAppHeight.Maximum = new decimal(new int[] { + 120, + 0, + 0, + 0}); + this.numAppHeight.Minimum = new decimal(new int[] { + 16, + 0, + 0, + 0}); + this.numAppHeight.Name = "numAppHeight"; + this.numAppHeight.Size = new System.Drawing.Size(60, 16); + this.numAppHeight.TabIndex = 27; + this.numAppHeight.Value = new decimal(new int[] { + 16, + 0, + 0, + 0}); + // + // numAppWidth + // + this.numAppWidth.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numAppWidth.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numAppWidth.Location = new System.Drawing.Point(192, 639); + this.numAppWidth.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numAppWidth.Maximum = new decimal(new int[] { + 310, + 0, + 0, + 0}); + this.numAppWidth.Minimum = new decimal(new int[] { + 16, + 0, + 0, + 0}); + this.numAppWidth.Name = "numAppWidth"; + this.numAppWidth.Size = new System.Drawing.Size(60, 16); + this.numAppWidth.TabIndex = 25; + this.numAppWidth.Value = new decimal(new int[] { + 16, + 0, + 0, + 0}); + // + // switchOnlyImage + // + this.switchOnlyImage.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switchOnlyImage.BackColor = System.Drawing.Color.White; + this.switchOnlyImage.ButtonWidth = 35; + this.switchOnlyImage.Checked = false; + this.switchOnlyImage.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switchOnlyImage.CheckThreeState = false; + this.switchOnlyImage.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switchOnlyImage.ColorInactive = System.Drawing.Color.OrangeRed; + this.switchOnlyImage.Location = new System.Drawing.Point(192, 600); + this.switchOnlyImage.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switchOnlyImage.Name = "switchOnlyImage"; + this.switchOnlyImage.RoundedButton = true; + this.switchOnlyImage.ShowBoarder = false; + this.switchOnlyImage.Size = new System.Drawing.Size(80, 25); + this.switchOnlyImage.TabIndex = 66; + this.switchOnlyImage.Text = "switchButton6"; + // + // numAppMargin + // + this.numAppMargin.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numAppMargin.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numAppMargin.Location = new System.Drawing.Point(192, 569); + this.numAppMargin.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numAppMargin.Maximum = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numAppMargin.Name = "numAppMargin"; + this.numAppMargin.Size = new System.Drawing.Size(59, 16); + this.numAppMargin.TabIndex = 45; + // + // numAppImageRadius + // + this.numAppImageRadius.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numAppImageRadius.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numAppImageRadius.Location = new System.Drawing.Point(192, 534); + this.numAppImageRadius.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numAppImageRadius.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numAppImageRadius.Name = "numAppImageRadius"; + this.numAppImageRadius.Size = new System.Drawing.Size(60, 16); + this.numAppImageRadius.TabIndex = 64; + // + // numAppRadius + // + this.numAppRadius.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numAppRadius.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numAppRadius.Location = new System.Drawing.Point(192, 499); + this.numAppRadius.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numAppRadius.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numAppRadius.Name = "numAppRadius"; + this.numAppRadius.Size = new System.Drawing.Size(60, 16); + this.numAppRadius.TabIndex = 62; + // + // numAppBorder + // + this.numAppBorder.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numAppBorder.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numAppBorder.Location = new System.Drawing.Point(192, 464); + this.numAppBorder.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numAppBorder.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numAppBorder.Name = "numAppBorder"; + this.numAppBorder.Size = new System.Drawing.Size(60, 16); + this.numAppBorder.TabIndex = 43; + // + // numActionRegionWidth + // + this.numActionRegionWidth.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numActionRegionWidth.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.numActionRegionWidth.Location = new System.Drawing.Point(192, 324); + this.numActionRegionWidth.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.numActionRegionWidth.Maximum = new decimal(new int[] { + 7, + 0, + 0, + 0}); + this.numActionRegionWidth.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numActionRegionWidth.Name = "numActionRegionWidth"; + this.numActionRegionWidth.Size = new System.Drawing.Size(60, 16); + this.numActionRegionWidth.TabIndex = 70; + this.numActionRegionWidth.Value = new decimal(new int[] { + 3, + 0, + 0, + 0}); + // + // switch_darkmode + // + this.switch_darkmode.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_darkmode.BackColor = System.Drawing.Color.White; + this.switch_darkmode.ButtonWidth = 35; + this.switch_darkmode.Checked = false; + this.switch_darkmode.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_darkmode.CheckThreeState = false; + this.switch_darkmode.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_darkmode.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_darkmode.Location = new System.Drawing.Point(192, 390); + this.switch_darkmode.Margin = new System.Windows.Forms.Padding(13, 5, 4, 5); + this.switch_darkmode.Name = "switch_darkmode"; + this.switch_darkmode.RoundedButton = true; + this.switch_darkmode.ShowBoarder = false; + this.switch_darkmode.Size = new System.Drawing.Size(80, 25); + this.switch_darkmode.TabIndex = 72; + this.switch_darkmode.Text = "switchButton3"; + // + // tooltip + // + this.tooltip.AutoPopDelay = 10000; + this.tooltip.InitialDelay = 500; + this.tooltip.OwnerDraw = true; + this.tooltip.ReshowDelay = 100; + this.tooltip.ShowAlways = true; + this.tooltip.TextFormatFlags = System.Windows.Forms.TextFormatFlags.GlyphOverhangPadding; + // + // abtnTestApp + // + this.abtnTestApp.ActiveDirectoryGroups = new string[0]; + this.abtnTestApp.ActualWidth = 0; + this.abtnTestApp.Animation = false; + this.abtnTestApp.AppType = System.AppType.None; + this.abtnTestApp.AutoSizeWidth = false; + this.abtnTestApp.Image = global::GFATask.Properties.Resources.GFA; + this.abtnTestApp.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnTestApp.ImageBackColor = System.Drawing.Color.Empty; + this.abtnTestApp.ImageBounds = new System.Drawing.Rectangle(5, 1, 26, 26); + this.abtnTestApp.ImageMargin = 3; + this.abtnTestApp.ImageOnly = false; + this.abtnTestApp.ImagePadding = 0; + this.abtnTestApp.ImageSize = new System.Drawing.Size(26, 26); + this.abtnTestApp.Location = new System.Drawing.Point(196, 53); + this.abtnTestApp.Margin = new System.Windows.Forms.Padding(0); + this.abtnTestApp.Name = "abtnTestApp"; + prevalencia1.AppType = System.AppType.None; + prevalencia1.CountClicks = 0; + prevalencia1.ID = 0; + this.abtnTestApp.Prevalence = prevalencia1; + this.abtnTestApp.Size = new System.Drawing.Size(126, 28); + this.abtnTestApp.TabIndex = 22; + this.abtnTestApp.Text = "Test-App"; + this.abtnTestApp.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.abtnTestApp.TextBounds = new System.Drawing.Rectangle(31, 2, 93, 24); + this.abtnTestApp.ToolTipText = ""; + // + // FormSettings + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(830, 750); + this.Controls.Add(this.tableGeneral); + this.DesktopAnchor = System.Windows.Forms.DesktopAnchor.Center; + this.GripSize = 0; + this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormSettings"; + this.Padding = new System.Windows.Forms.Padding(3, 26, 4, 4); + this.RegionBounds = new System.Drawing.Rectangle(15, 15, 830, 750); + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.SystemMenu = false; + this.Text = "Einstellungen"; + this.DpiChanged += new System.Windows.Forms.DpiChangedEventHandler(this.FormSettings_DpiChanged); + this.tableGeneral.ResumeLayout(false); + this.tableGeneral.PerformLayout(); + this.panelMargin.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.numGrouplistapps)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numOpacity)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numFontSize)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numDelayHide)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numDelayShow)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numDelaySpeed)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppHeight)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppWidth)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppMargin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppImageRadius)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppRadius)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppBorder)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numActionRegionWidth)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.TableLayoutPanel tableGeneral; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.NumericEx numDelayShow; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericEx numDelaySpeed; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.SwitchButton switch_group_menu; + private System.Windows.Forms.SwitchButton switch_group_favorites; + private System.Windows.Forms.SwitchButton switch_show_favorites; + private System.Windows.Forms.SwitchButton switch_group_user; + private System.Windows.Forms.SwitchButton switch_show_user; + private System.Windows.Forms.SwitchButton switch_group_citrix; + private System.Windows.Forms.SwitchButton switch_show_citrix; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.NumericEx numGrouplistapps; + private System.Windows.Forms.Panel panelMargin; + private System.Windows.Forms.NumericEx numAppBorder; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.NumericEx numAppMargin; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.NumericEx numAppWidth; + private System.Windows.Forms.NumericEx numOpacity; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.NumericEx numAppHeight; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.ToolTipEx tooltip; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox cbScreen; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.SwitchButton switch_group_admin; + private System.Windows.Forms.SwitchButton switch_show_admin; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.ComboBox cbAppSorting; + private AppListButton abtnTestApp; + private System.Windows.Forms.AnimationButton abtnAnwenden; + private System.Windows.Forms.AnimationButton abtnSubmit; + private System.Windows.Forms.AnimationButton abtnVerwerfen; + private System.Windows.Forms.SwitchButton switchNecessaryClick; + private System.Windows.Forms.NumericEx numFontSize; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.NumericEx numDelayHide; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.NumericEx numAppImageRadius; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.NumericEx numAppRadius; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.SwitchButton switchOnlyImage; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.NumericEx numActionRegionWidth; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.SwitchButton switch_darkmode; + } +} \ No newline at end of file diff --git a/GFATask/Forms/FormSettings.cs b/GFATask/Forms/FormSettings.cs new file mode 100644 index 0000000..8ed34f3 --- /dev/null +++ b/GFATask/Forms/FormSettings.cs @@ -0,0 +1,838 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class FormSettings : FormEx + { + /// + /// Gibt den aktuell fokusierten Bildschirm aus, auf dem sich das Einstellungsfenster befindet. + /// + Screen currentscreen = null; + + + /// + /// Eine Auflistung von gezeichneten Rechtecken, die in Größe, Farbe und Form einem AppButton entsprechen und ringsum um die TestApp angefügt werden + /// + Rectangle[] dummyapps = new Rectangle[0]; + + + /// + /// Eine Auflistung der veränderten Steuerelemente. Dadurch lassen sich einzelne Änderungen rückgängig machen + /// + public List ControlChanges { get; } = new List(); + + + /// + /// Erstellt die ToolTips für die Steuerelemente + /// + private void SetToolTips() + { + tooltip.SetDefaultDesign(); + switch_darkmode.MouseEnter += (sender, e) => tooltip.Show("Die Farben des GFATask werden umgekehrt und Text wird mit weißer Schrift auf schwarzem Hintergrund gezeigt", sender as Control, new Point(0, (sender as Control).Height)); + switch_group_admin .MouseEnter += (sender, e) => tooltip.Show("Sollen die Apps in der Administrator-Liste gruppiert werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_show_admin.MouseEnter += (sender, e) => tooltip.Show("Soll die Administrator-Liste angezeigt werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_group_citrix.MouseEnter += (sender, e) => tooltip.Show("Sollen die Apps in der Citrix-Liste gruppiert werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_show_citrix.MouseEnter += (sender, e) => tooltip.Show("Soll die Citrix-Liste angezeigt werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_group_favorites.MouseEnter += (sender, e) => tooltip.Show("Sollen die Apps in der Favoriten-Liste gruppiert werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_show_favorites.MouseEnter += (sender, e) => tooltip.Show("Soll die Favoriten-Liste angezeigt werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_group_menu.MouseEnter += (sender, e) => tooltip.Show("Sollen die Apps in der Menü-Liste gruppiert werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_group_user.MouseEnter += (sender, e) => tooltip.Show("Sollen die Apps in der Apps-Liste gruppiert werden", sender as Control, new Point(0, (sender as Control).Height)); + switch_show_user.MouseEnter += (sender, e) => tooltip.Show("Soll die Apps-Liste angezeigt werden", sender as Control, new Point(0, (sender as Control).Height)); + numAppBorder.MouseEnter += (sender, e) => tooltip.Show("Zeichnet einen Rahmen um die Apps", sender as Control, new Point(0, (sender as Control).Height)); + numAppHeight.MouseEnter += (sender, e) => tooltip.Show("Verändert die Apps in der Höhe", sender as Control, new Point(0, (sender as Control).Height)); + numAppRadius.MouseEnter += (sender, e) => tooltip.Show("Rundet die App ab", sender as Control, new Point(0, (sender as Control).Height)); + numAppImageRadius.MouseEnter += (sender, e) => tooltip.Show("Rundet den Symbolhintergrund innerhalb der App ab", sender as Control, new Point(0, (sender as Control).Height)); + numAppMargin.MouseEnter += (sender, e) => tooltip.Show("Verändert den Abstand zwischen den Apps", sender as Control, new Point(0, (sender as Control).Height)); + numAppWidth.MouseEnter += (sender, e) => tooltip.Show("Verändert die Apps in der Breite", sender as Control, new Point(0, (sender as Control).Height)); + numDelayHide.MouseEnter += (sender, e) => tooltip.Show("Wartet die angegebene Zeit in Millisekunden, bis der GFA-Task ausgeblendet wird", sender as Control, new Point(0, (sender as Control).Height)); + numDelayShow.MouseEnter += (sender, e) => tooltip.Show("Wartet die angegebene Zeit in Millisekunden, bis der GFA-Task eingeblendet wird." + + "\nWird ignoriert wenn der GFA-Task per Klick eingeblendet wird", sender as Control, new Point(0, (sender as Control).Height)); + numDelaySpeed.MouseEnter += (sender, e) => tooltip.Show("Verändert die Geschwindigkeit des GFA-Task die er zum Ein- und Ausblenden benötigt", sender as Control, new Point(0, (sender as Control).Height)); + numFontSize.MouseEnter += (sender, e) => tooltip.Show("Verändert die Schriftgröße des GFA-Task", sender as Control, new Point(0, (sender as Control).Height)); + numGrouplistapps.MouseEnter += (sender, e) => tooltip.Show("Wenn eine App-Gruppe geöffnet wird, bestimmt dieser Wert die Anzahl der Apps in einer Zeile.\n" + + "Kann vom eigentlichen Wert abweichen, wenn die Anzahl der gruppierten Apps nicht an die angegebene Zahl heranreicht,\n" + + "oder die Breite der Apps nicht der Mindestbreite des Gruppenfensters entspricht", sender as Control, new Point(0, (sender as Control).Height)); + numOpacity.MouseEnter += (sender, e) => tooltip.Show("Verändert die maximale Transparenz des GFA-Task nachdem diese komplett eingeblendet wird", sender as Control, new Point(0, (sender as Control).Height)); + switchNecessaryClick.MouseEnter += (sender, e) => tooltip.Show("Benötigt zum Anzeigen des GFA-Task einen Mausklick am oberen Bildschirmrand", sender as Control, new Point(0, (sender as Control).Height) ); + cbAppSorting.MouseEnter += (sender, e) => tooltip.Show("Sortiert die Apps in den Listen nach" + + "\n\t- Beliebtheit: Sortiert die Apps nach der Nutzung" + + "\n\t- Name: Sortiert die Apps alphabetisch aufsteigend", sender as Control, new Point(0, (sender as Control).Height) ); + numActionRegionWidth.MouseEnter += (sender, e) => tooltip.Show("Setzt die Breite der Linie, am unteren Rand des GFATask", sender as Control, new Point(0, (sender as Control).Height)); + cbScreen.MouseEnter += (sender, e) => tooltip.Show("Wählt den Bildschirm aus, auf dem der GFA-Task angezeigt werden soll", sender as Control, new Point(0, (sender as Control).Height)); + switchOnlyImage.MouseEnter += (sender, e) => tooltip.Show("Die App wird mit Bild, aber ohne Text angezeigt", sender as Control, new Point(0, (sender as Control).Height)); + } + + + /// + /// Zeichnet einen weichen transparenten Übergang + /// + /// Der Bereich + /// 100% Transparenz + /// 0% Transparenz + /// Richtung des Übergangs + /// + private LinearGradientBrush SetBrush(Rectangle rec, Color fromcolor, Color tocolor, WrapMode wrap) => + new LinearGradientBrush(new Rectangle(0, 0, rec.Width <= 0 ? 1 : rec.Width, (int)(rec.Height * .5) <= 0 ? 1 : (int)(rec.Height * .5)), fromcolor, tocolor, 0, false) { WrapMode = wrap }; + + + #region Erstellt die Bindings und EventHandler + /// + /// Erstellt die Bindings und EventHandler für die Listeneinstellungen + /// + private void CreateAppListBindings() + { + switch_group_menu.Checked = Config.User.Lists.Menu.Grouping; + switch_group_menu.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.Menu, "Grouping", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_Menu_Grouping); + }; + + switch_group_citrix.Checked = Config.User.Lists.Citrix.Grouping; + switch_group_citrix.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.Citrix, "Grouping", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_Citrix_Grouping); + }; + + switch_show_citrix.Checked = Config.User.Lists.Citrix.Show; + switch_show_citrix.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.Citrix, "Show", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_Citrix_Showing); + }; + + switch_group_favorites.Checked = Config.User.Lists.Favorites.Grouping; + switch_group_favorites.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.Favorites, "Grouping", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_Favorites_Grouping); + }; + + switch_show_favorites.Checked = Config.User.Lists.Favorites.Show; + switch_show_favorites.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.Favorites, "Show", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_Favorites_Showing); + }; + + Task.Run(async delegate + { + switch_group_admin.Enabled = (await XObjects.IsAdmin); + switch_show_admin.Enabled = (await XObjects.IsAdmin); + + switch_group_admin.Checked = Config.User.Lists.Admin.Grouping; + switch_group_admin.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.Admin, "Grouping", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_Admin_Grouping); + }; + + switch_show_admin.Checked = Config.User.Lists.Admin.Show; + switch_show_admin.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.Admin, "Show", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_Admin_Showing); + }; + }); + + switch_group_user.Checked = Config.User.Lists.User.Grouping; + switch_group_user.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.User, "Grouping", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_User_Grouping); + }; + + switch_show_user.Checked = Config.User.Lists.User.Show; + switch_show_user.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Lists.User, "Show", (sender as SwitchButton), (sender as SwitchButton).Checked, DoIt_User_Showing); + }; + + numGrouplistapps.Value = Config.User.GroupListColumnCount; + numGrouplistapps.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User, "GroupListColumnCount", (sender as NumericEx), (int)(sender as NumericEx).Value, DoIt_GroupListColumnCount); + }; + } + + + /// + /// Erstellt die Bindings und EventHandler für die erweiterten Einstellungen + /// + private void CreateExtendedBindings() + { + cbAppSorting.DataSource = new List(new object[] { new { name = "Name", value = false }, new { name = "Beliebtheit", value = true } }); + cbAppSorting.DisplayMember = "name"; + cbAppSorting.ValueMember = "value"; + cbAppSorting.SelectedValue = Config.User.Prevalence; + cbAppSorting.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.User, "Prevalence", cbAppSorting, (bool)cbAppSorting.SelectedValue, DoIt_Prevalence); }; + + numOpacity.Value = (decimal)Config.User.Window.Opacity; + numOpacity.ValueChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.User.Window, "Opacity", numOpacity, (double)(sender as NumericUpDown).Value, DoIt_Opacity); }; + + numActionRegionWidth.Value = (decimal)Config.User.Window.ActionRegionHeight; + numActionRegionWidth.ValueChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.User.Window, "ActionRegionHeight", numActionRegionWidth, (int)(sender as NumericUpDown).Value, DoIt_ActionRegionWidth); }; + + numFontSize.Value = (decimal)Config.User.Window.FontSize; + numFontSize.ValueChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.User.Window, "FontSize", numFontSize, (float)(sender as NumericUpDown).Value, DoIt_FontSize); } ; + + switch_darkmode.Checked = Config.User.DarkMode; + switch_darkmode.CheckStateChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.User, "DarkMode", switch_darkmode, bool.Parse(switch_darkmode.Checked.ToString()), DoIt_DarkMode); }; + + + this.LoadDisplays(); + cbScreen.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.User, "Screen", cbScreen, cbScreen.Text.Replace(" [Dieser Monitor]","").Replace(" ",""), DoIt_ScreenChange); }; + cbScreen.DropDown += (sender , e) => { + if (this.Created) + cbScreen.SelectedIndex = Screen.AllScreens.Select(scr => scr.DeviceName.Substring(scr.DeviceName.LastIndexOf("\\") + 1)).ToList().FindIndex(scr => scr == Config.User.Screen); + }; + cbScreen.SelectedIndex = Screen.AllScreens.Select(scr => scr.DeviceName.Substring(scr.DeviceName.LastIndexOf("\\") + 1)).ToList().FindIndex(scr => scr == Config.User.Screen); + } + + + /// + /// Erstellt die Bindings und EventHandler für die Verzögerungseinstellungen + /// + public void CreateMouseFunctions() + { + switchNecessaryClick.Checked = Config.User.NecessaryClick; + switchNecessaryClick.CheckStateChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User, "NecessaryClick", switchNecessaryClick, switchNecessaryClick.Checked, DoIt_NecessaryClick); + }; + + numDelayShow.Value = Config.User.NecessaryClick ? 0 : (decimal)Config.User.Delay.Show; + numDelayShow.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Delay, "Show", numDelayShow, (float)(sender as NumericUpDown).Value, DoIt_DelayShow); + }; + + numDelayHide.Value = (decimal)Config.User.Delay.Hide; + numDelayHide.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Delay, "Hide", (Control)sender, (float)(sender as NumericUpDown).Value, DoIt_DelayHide); + }; + + numDelaySpeed.Value = Config.User.Delay.Speed; + numDelaySpeed.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Delay, "Speed", numDelaySpeed, (int)(sender as NumericUpDown).Value, DoIt_Speed); + }; + } + + + /// + /// Erstellt die Bindings und EventHandler für die App-Darstellung + /// + private void CreateDeciptionBindings() + { + abtnTestApp.ActualWidth = Config.User.Apps.Size.Width; + abtnTestApp.SizeChanged += abtnTestApp_SizeChanged; + abtnTestApp.ImageOnly = Config.User.Apps.ImageOnly; + abtnTestApp.Invalidate(); + + switchOnlyImage.Checked = Config.User.Apps.ImageOnly; + switchOnlyImage.CheckStateChanged += (sender, e) => + { + if (this.Created) + { + numAppWidth.Enabled = !switchOnlyImage.Checked; + abtnTestApp.ImageOnly = switchOnlyImage.Checked; + this.SetTestAppPanel(); + + XObjects.PreChanging.Add(Config.User.Apps, "ImageOnly", (Control)sender, switchOnlyImage.Checked, DoIt_AppImageOnly); + } + }; + + numAppWidth.Enabled = !switchOnlyImage.Checked; + numAppWidth.Value = Config.User.Apps.Size.Width; + numAppWidth.Maximum = panelMargin.Width - 2; + numAppWidth.ValueChanged += (sender, e) => + { + if (this.Created && !Config.User.Apps.ImageOnly) + { + abtnTestApp.Width = (int)numAppWidth.Value; + abtnTestApp.ActualWidth = (int)numAppWidth.Value; + XObjects.PreChanging.Add(Config.User.Apps.Size, "Width", (Control)sender, (int)numAppWidth.Value, DoIt_AppWidth); + } + }; + + numAppHeight.Value = Config.User.Apps.Size.Height; + numAppHeight.Maximum = panelMargin.Height - 3; + numAppHeight.ValueChanged += (sender, e) => + { + if (this.Created) + { + abtnTestApp.Height = (int)numAppHeight.Value; + XObjects.PreChanging.Add(Config.User.Apps.Size, "Height", (Control)sender, (int)numAppHeight.Value, DoIt_AppHeight); + } + }; + + numAppBorder.Value = Config.User.Apps.Border; + numAppBorder.ValueChanged += NumAppBorder_ValueChanged; + numAppBorder.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Apps, "Border", (Control)sender, (int)numAppBorder.Value, DoIt_AppBorder); + }; + + numAppRadius.Value = Config.User.Apps.Radius.Button; + numAppRadius.ValueChanged += NumAppRadius_ValueChanged; + numAppRadius.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Apps.Radius, "Button", (Control)sender, (int)numAppRadius.Value, DoIt_AppRadius); + }; + + numAppImageRadius.Value = Config.User.Apps.Radius.Button; + numAppImageRadius.ValueChanged += NumAppImageRadius_ValueChanged; + numAppImageRadius.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Apps.Radius, "Image", (Control)sender, (int)numAppImageRadius.Value, DoIt_AppImageRadius); + }; + + numAppMargin.Value = Config.User.Apps.Margin; + numAppMargin.ValueChanged += NumAppMargin_ValueChanged; + numAppMargin.ValueChanged += (sender, e) => + { + if (this.Created) XObjects.PreChanging.Add(Config.User.Apps, "Margin", (Control)sender, (int)numAppMargin.Value, DoIt_AppMargin); + }; + + panelMargin.Paint += PanelMargin_Paint; + } + #endregion + + + #region DoIt Methoden + private void DoIt_Prevalence(object value) + { + Config.User.Prevalence = (bool)value; + XObjects.AllAppListPanels.ForEach(panel => + { + Comparer.SortAllButtons(panel.FlowContent.Controls, Config.User.Prevalence); + }); + } + + private void DoIt_Opacity(object value) + { + Config.User.Window.Opacity = (double)value; + Config.User.Window.Size = Forms.Main.Size; + Forms.Main.Opacity = (double)value; + Forms.Main.SetOpacityStep(); + } + + private void DoIt_ActionRegionWidth(object value) + { + Config.User.Window.ActionRegionHeight = (int)value; + Forms.Main.ActionRegionHeight = Config.User.Window.ActionRegionHeight; + Forms.Main.SetStartValue(); + Forms.Main.SetOpacityStep(); + XObjects.Delay.Increase(); + } + + + private void DoIt_FontSize(object value) + { + try + { + Config.User.Window.FontSize = Convert.ToSingle(value); + Forms.Administration.SetDefaultDesign(); + Forms.AppButtonGroup.SetDefaultDesign(); + Forms.AppCreator.SetDefaultDesign(); + Forms.Groups.SetDefaultDesign(); + Forms.Settings.SetDefaultDesign(); + Task.Run(delegate + { + Forms.Main.Invoke(new MethodInvoker(delegate + { + Forms.Main.SetDefaultDesign(); + Win32API.SendMessage(Forms.Main.Handle, (int)WM.EXITSIZEMOVE, 0, 0); + + Forms.Main.SetOpacityStep(); + Forms.Main.Invalidate(true); + })); + }); + XObjects.AllAppListPanels.ForEach(panel => panel.Invalidate(true)); + + Config.User.Window.Size = Forms.Main.Size; + } + catch (Exception ex) + { + Log.EventLog.Write("Fehlerhaft Einstellung - FontSize", LogClassification.LowError, ex); + } + + } + + private void DoIt_DarkMode(object value) + { + typeof(Forms).GetProperties().ToList().ForEach(prop => + { + FormEx f = (FormEx)prop.GetValue(typeof(Forms)); + f.SetDefaultDesign(); + }); + } + + private void DoIt_ScreenChange(object value) + { + Config.User.Screen = value.ToString(); + Accessor.SetLastAppListPanel(); + Forms.Main.SetMinimumSize(); + Forms.Main.SetStartValue(); + Forms.Main.DesktopAlign(); + } + + private void DoIt_GroupListColumnCount(object value) + { + Config.User.GroupListColumnCount = (int)value; + //Config.User = JSON.Read(Paths.UserConfig.FullName); + } + + private void DoIt_Menu_Grouping(object value) => + Creator.AppListPanel(Accessor.GetAppListPanel(AppType.Menu), Accessor.GetAppList(AppType.Menu)); + + private void DoIt_Citrix_Grouping(object value) => + Creator.AppListPanel(Accessor.GetAppListPanel(AppType.Citrix), Accessor.GetAppList(AppType.Citrix)); + + private void DoIt_Favorites_Grouping(object value) => + Creator.AppListPanel(Accessor.GetAppListPanel(AppType.Favorites), Accessor.GetAppList(AppType.Favorites)); + + private void DoIt_Admin_Grouping(object value) => + Creator.AppListPanel(Accessor.GetAppListPanel(AppType.Admin), Accessor.GetAppList(AppType.Admin)); + + private void DoIt_User_Grouping(object value) => + Creator.AppListPanel(Accessor.GetAppListPanel(AppType.User), Accessor.GetAppList(AppType.User)); + + private void DoIt_Citrix_Showing(object value) + { + Accessor.GetAppListPanel(AppType.Citrix).Showing = (bool)value; + Accessor.SetLastAppListPanel(); + } + + private void DoIt_Favorites_Showing(object value) + { + Accessor.GetAppListPanel(AppType.Favorites).Showing = (bool)value; + Accessor.SetLastAppListPanel(); + } + + private void DoIt_Admin_Showing(object value) + { + Accessor.GetAppListPanel(AppType.Admin).Showing = (bool)value; + Accessor.SetLastAppListPanel(); + } + + private void DoIt_User_Showing(object value) + { + Accessor.GetAppListPanel(AppType.User).Showing = (bool)value; + Accessor.SetLastAppListPanel(); + } + + private void DoIt_Speed(object value) + { + XObjects.Delay.Reset(Config.User.Delay.Show, Config.User.Delay.Hide, XObjects.Delay.StartValue, XObjects.Delay.EndValue, (int)numDelaySpeed.Value); + Forms.Main.SetOpacityStep(); + Win32API.SendMessage(Forms.Main.Handle, (int)WM.EXITSIZEMOVE, 0, 0); + } + + private void DoIt_NecessaryClick(object value) => + Forms.Main.SetActionRegion(); + + + private void DoIt_DelayShow(object value) + { + XObjects.Delay.Reset((float)value, Config.User.Delay.Hide, XObjects.Delay.StartValue, XObjects.Delay.EndValue, Config.User.Delay.Speed); + } + + private void DoIt_DelayHide(object value) + { + XObjects.Delay.Reset(Config.User.Delay.Show, (float)value, XObjects.Delay.StartValue, XObjects.Delay.EndValue, Config.User.Delay.Speed); + } + + private void DoIt_AppBorder(object value) + { + Config.User.Apps.Border = (int)value; + typeof(Forms).GetProperties().ToList().ForEach(prop => + { + FormEx f = (FormEx)prop.GetValue(typeof(Forms)); + f.SetDefaultDesign(); + }); + XObjects.AllAppListPanels.ForEach(panel => + panel.FlowContent.Controls.OfType().ToList().ForEach(button => button.BorderSize = (int)value)); + } + + private void DoIt_AppRadius(object value) + { + Config.User.Apps.Radius.Button = (int)value; + this.SetDefaultDesign(); + XObjects.AllAppListPanels.ForEach(panel => + panel.FlowContent.Controls.OfType().ToList().ForEach(button => button.Radius = (int)value)); + Forms.Administration.SetDefaultDesign(); + } + + private void DoIt_AppImageRadius(object value) + { + Config.User.Apps.Radius.Image = (int)value; + this.SetDefaultDesign(); + XObjects.AllAppListPanels.ForEach(panel => + panel.FlowContent.Controls.OfType().ToList().ForEach(button => button.ImageRadius = (int)value)); + Forms.Administration.SetDefaultDesign(); + } + + private void DoIt_AppMargin(object value) + { + Config.User.Apps.Margin = (int)value; + this.SetDefaultDesign(); + XObjects.AllAppListPanels.ForEach(panel => + panel.FlowContent.Controls.OfType().ToList().ForEach(button => button.Margin = new Padding((int)value))); + Forms.Administration.SetDefaultDesign(); + } + + private void DoIt_AppImageOnly(object value) + { + this.SetDefaultDesign(); + XObjects.AllAppListPanels.ForEach(panel => + + panel.FlowContent.Controls.OfType().ToList().ForEach(button => + { + if (button.GetType() == typeof(GroupButton)) + { + ((GroupButton)button).ContainedAppButtons.ToList().ForEach(cbtn => + { + cbtn.ImageOnly = (bool)value; + cbtn.ImageMargin = (bool)value ? 0 : 3; + cbtn.ImageAutoSize = ImageAutoSizeDirection.Height; + cbtn.Invalidate(); + }); + } + button.ImageOnly = (bool)value; + button.ImageMargin = (bool)value ? 0 : 3; + button.ImageAutoSize = ImageAutoSizeDirection.Height; + button.Invalidate(); + })); + Forms.Administration.SetDefaultDesign(); + } + + private void DoIt_AppWidth(object value) + { + if (!switchOnlyImage.Checked) + Config.User.Apps.Size = new Size((int)value, Config.User.Apps.Size.Height); + this.SetDefaultDesign(); + XObjects.AllAppListPanels.ForEach(panel => + panel.FlowContent.Controls.OfType().ToList().ForEach(button => + { + if(button.GetType() == typeof(GroupButton)) + { + ((GroupButton)button).ContainedAppButtons.ToList().ForEach(cbtn => + { + cbtn.ActualWidth = (int)value; + cbtn.Width = (int)value; + cbtn.SetDefaultDesign(); + }); + } + button.ActualWidth = (int)value; + button.Width = (int)value; + button.SetDefaultDesign(); + })); + + if (Forms.AppButtonGroup.Visible) + Forms.AppButtonGroup.Sizing(); + + Forms.Administration.SetDefaultDesign(); + } + + private void DoIt_AppHeight(object value) + { + Config.User.Apps.Size = new Size(Config.User.Apps.Size.Width, (int)value); + this.SetDefaultDesign(); + XObjects.AllAppListPanels.ForEach(panel => + { + panel.FlowContent.Controls.OfType().ToList().ForEach(button => button.Height = (int)value); + panel.FlowContent.Controls.OfType().ToList().ForEach(button => button.ContainedAppButtons.ToList().ForEach(cbtn => cbtn.Height = (int)value)); + }); + + if (Forms.AppButtonGroup.Visible) + Forms.AppButtonGroup.Sizing(); + + Forms.Administration.SetDefaultDesign(); + } + #endregion + + + private void SetTestAppPanel() + { + abtnTestApp.Size = switchOnlyImage.Checked ? new Size((int)numAppHeight.Value, (int)numAppHeight.Value) : Config.User.Apps.Size; + abtnTestApp.Animation = true; + abtnTestApp.Location = new Point((panelMargin.Width / 2) - (abtnTestApp.Width / 2), (panelMargin.Height / 2) - (abtnTestApp.Height / 2)); + abtnTestApp.AnimationRegion = AnimationRgn.Both; + abtnTestApp.ImageMargin = switchOnlyImage.Checked ? 0 : 3; + abtnTestApp.ImageAutoSize = ImageAutoSizeDirection.Height; + this.InvalidateDummyApps(); + } + + public void LoadDisplays() + { + cbScreen.DataSource = Screen.AllScreens.Select(scr => new { key = Array.IndexOf(Screen.AllScreens, scr) + 1, value = $"{scr.DeviceName.Substring(scr.DeviceName.LastIndexOf("\\") + 1)} {(scr.Bounds.Contains(this.Bounds.Location) ? "[Dieser Monitor]" : "")}" }).ToList(); + // Fügt das Element DYNAMIC hinzu, was bewirkt, dass der GFATask an dem Bildschirm angeheftet wird, auf dem sich der Mauszeiger befindet - Hat noch nicht so richtig funktioniert + //cbScreen.DataSource = Screen.AllScreens.Select(scr => new { key = Array.IndexOf(Screen.AllScreens, scr) + 1, value = $"{scr.DeviceName.Substring(scr.DeviceName.LastIndexOf("\\") + 1)} {(scr.Bounds.Contains(this.Bounds.Location) ? "[Dieser Monitor]" : "")}" }).Union(new[] { new { key = -2, value = "DYNAMIC" } }).ToList(); + cbScreen.DisplayMember = "Value"; + cbScreen.ValueMember = "Key"; + } + + public FormSettings() + { + InitializeComponent(); + this.SetDefaultDesign(); + + this.CreateAppListBindings(); + this.CreateExtendedBindings(); + this.CreateDeciptionBindings(); + this.CreateMouseFunctions(); + this.SetTestAppPanel(); + + abtnAnwenden.TextAlign = ContentAlignment.MiddleCenter; + abtnSubmit.TextAlign = ContentAlignment.MiddleCenter; + abtnVerwerfen.TextAlign = ContentAlignment.MiddleCenter; + + this.Icon = Icon.FromHandle(new Bitmap(File.Open(Paths.Icons.Directory + "optionen.png", FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)).GetHicon()); + this.DesktopAnchor(DesktopAnchor.Center, this.GripSize); + + tableGeneral.Controls.Cast().Where(ctl => ctl.GetType() != typeof(Label) && ctl.GetType() != typeof(AnimationButton)).ToList().ForEach(ctl => + { + if (typeof(NumericEx) == ctl.GetType()) + { + (ctl as NumericEx).ValueChanged += (s, evt) => + { + AddResetButton(ctl); + }; + } + else if (typeof(SwitchButton) == ctl.GetType()) + { + (ctl as SwitchButton).CheckStateChanged += (s, evt) => + { + AddResetButton(ctl); + }; + } + else if (typeof(ListBox) == ctl.GetType()) + { + (ctl as ListBox).SelectedIndexChanged += (s, evt) => + { + AddResetButton(ctl); + }; + } + else if (typeof(ComboBox) == ctl.GetType()) + { + (ctl as ComboBox).SelectionChangeCommitted += (s, evt) => + { + AddResetButton(ctl); + }; + } + }); + + label3.Paint += Designer.DrawHeaderLabel; + label5.Paint += Designer.DrawHeaderLabel; + label7.Paint += Designer.DrawHeaderLabel; + label21.Paint += Designer.DrawHeaderLabel; + this.InvalidateDummyApps(); + this.SetToolTips(); + } + + + /// + /// Fügt der "Zurücksetzen"-Auflistung das Steuerelement hinzu, damit der alte Wert wiederhergestellt werden kann + /// + /// + private void AddResetButton(Control control) + { + if (!this.ControlChanges.Select(change => change.Control).Contains(control)) + { + TableControlChange change = new TableControlChange(tableGeneral, control.Location, 25); + change.Click += (sender, e) => + { + XObjects.PreChanging.Reset(change.Control); + (sender as TableControlChange).Clear(); + this.ControlChanges.Remove(change); + tableGeneral.Invalidate(); + }; + this.ControlChanges.Add(change); + } + } + + + /// + /// Zeichnet die umliegenden AppButtons im Test-Panel neu + /// + private void InvalidateDummyApps() + { + int margin = (int)(numAppMargin.Value + (numAppMargin.Value == 0 ? 0 : 3)); + Size size = new Size(abtnTestApp.ClientSize.Width - 1, abtnTestApp.ClientSize.Height - 1); + dummyapps = new Rectangle[] + { + // Left + new Rectangle(new Point(abtnTestApp.Location.X - abtnTestApp.Width - margin , abtnTestApp.Location.Y ), size), + // TopLeft + new Rectangle(new Point(abtnTestApp.Location.X - abtnTestApp.Width - margin , abtnTestApp.Location.Y - abtnTestApp.Height - margin), size ), + // Top + new Rectangle(new Point(abtnTestApp.Location.X , abtnTestApp.Location.Y - abtnTestApp.Height - margin), size ), + // TopRight + new Rectangle(new Point(abtnTestApp.Location.X + abtnTestApp.Width + margin , abtnTestApp.Location.Y - abtnTestApp.Height - margin), size ), + // Right + new Rectangle(new Point(abtnTestApp.Location.X + abtnTestApp.Width + margin , abtnTestApp.Location.Y ), size ), + // BottomRight + new Rectangle(new Point(abtnTestApp.Location.X + abtnTestApp.Width + margin , abtnTestApp.Location.Y + abtnTestApp.Height + margin), size ), + // Bottom + new Rectangle(new Point(abtnTestApp.Location.X , abtnTestApp.Location.Y + abtnTestApp.Height + margin), size ), + // BottomLeft + new Rectangle(new Point(abtnTestApp.Location.X - abtnTestApp.Width - margin , abtnTestApp.Location.Y + abtnTestApp.Height + margin), size ), + }; + } + + + /// + /// Übernimmt alle vorläufigen Speicherungen in die JSON-Config + /// + /// Gibt die JSON-Config Datei an + private void SaveAll(JSONConfig json) + { + XObjects.PreChanging.CommitAll(); + this.ControlChanges.ForEach(change => change.Clear()); + this.ControlChanges.Clear(); + JSON.Save(json); + } + + + /// + /// Leert die vorläufigen Speicherungen aus der Auflistung + /// + private void ResetAll() + { + XObjects.PreChanging.ResetAll(); + this.ControlChanges.ForEach(change => change.Clear()); + this.ControlChanges.Clear(); + tableGeneral.Invalidate(); + } + + + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + // Fügt der Auflistung der vorläufigen Änderungen die aktuellen Anfangswerte hinzu, damit diese wiederhergestellt werden können + XObjects.PreChanging.GetTemps(Accumulations.Controls(this)); + } + + protected override void OnLocationChanged(EventArgs e) + { + base.OnLocationChanged(e); + if (currentscreen != null || Screen.FromPoint(this.DesktopLocation) != currentscreen) + { + this.LoadDisplays(); + } + } + + private void NumAppBorder_ValueChanged(object sender, EventArgs e) + { + if (!this.Created) return; + this.InvalidateDummyApps(); + abtnTestApp.BorderSize = (int)numAppBorder.Value; + panelMargin.Invalidate(); + } + + private void NumAppRadius_ValueChanged(object sender, EventArgs e) + { + if (!this.Created) return; + this.InvalidateDummyApps(); + abtnTestApp.Radius = (int)numAppRadius.Value; + panelMargin.Invalidate(); + } + + private void NumAppImageRadius_ValueChanged(object sender, EventArgs e) + { + if (!this.Created) return; + this.InvalidateDummyApps(); + abtnTestApp.ImageRadius = (int)numAppImageRadius.Value; + panelMargin.Invalidate(); + } + + private void NumAppMargin_ValueChanged(object sender, EventArgs e) + { + if (!this.Created) return; + this.InvalidateDummyApps(); + panelMargin.Invalidate(); + } + + private void PanelMargin_Paint(object sender, PaintEventArgs e) + { + int border = (int)numAppBorder.Value; + int margin = (int)numAppMargin.Value * 2; + + dummyapps.ToList().ForEach(dummyapp => + { + e.Graphics.FillPath(new SolidBrush(this.BackColor), dummyapp.ToRoundedRectangle(abtnTestApp.Radius, RectangleCorners.All)); + e.Graphics.DrawPath(new Pen(border == 0 ? Color.Empty : Config.Main.Colors.Apps.Default.Border, border) { Alignment = PenAlignment.Outset }, dummyapp.ToRoundedRectangle(abtnTestApp.Radius, RectangleCorners.All)); + e.Graphics.DrawString("Test App", abtnTestApp.Font, new SolidBrush(abtnTestApp.ForeColor), dummyapp, new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + }); + + e.Graphics.FillRectangle(this.SetBrush(e.ClipRectangle, this.BackColor, Color.FromArgb(0, 0, 0, 0), WrapMode.Tile), new Rectangle(e.ClipRectangle.Location, new Size(e.ClipRectangle.Width / 2, e.ClipRectangle.Height))); + e.Graphics.FillRectangle(this.SetBrush(e.ClipRectangle, Color.FromArgb(0, 0, 0, 0), this.BackColor, WrapMode.TileFlipX), new Rectangle(new Point(e.ClipRectangle.X + e.ClipRectangle.Width / 2, e.ClipRectangle.Y), new Size(e.ClipRectangle.Width / 2, e.ClipRectangle.Height))); + + if (border > 0 && margin > 0) + { + e.Graphics.DrawPath(new Pen(Color.Red, 2), + new Rectangle(abtnTestApp.Right - border - (margin == 0 ? border : margin), abtnTestApp.Bottom - border - margin, (margin * 3) + (border * 3), (margin * 3) + (border * 3)).ToRoundedRectangle(border + margin, RectangleCorners.All)); + } + } + + private void abtnTestApp_SizeChanged(object sender, EventArgs e) + { + var _this = sender as AppListButton; + //if (!switchOnlyImage.Checked) + // numAppWidth.Value = _this.Width; + //else + // numAppWidth.Value = Config.User.Apps.Size.Width; + numAppHeight.Value = (decimal)_this.Height; + + _this.Width = _this.ImageOnly ? _this.Height : _this.ActualWidth; + + this.InvalidateDummyApps(); + panelMargin.Invalidate(); + } + + protected override void OnClosing(CancelEventArgs e) + { + this.ResetAll(); + this.Visible = false; + e.Cancel = true; + base.OnClosing(e); + } + + protected override void OnVisibleChanged(EventArgs e) + { + base.OnVisibleChanged(e); + if (this.Visible) + XObjects.Delay.Increase(); + } + + private void abtnAnwenden_Click(object sender, EventArgs e) + { + this.SaveAll(JSONConfig.User); + this.ResetAll(); + this.Close(); + } + + private void abtnVerwerfen_Click(object sender, EventArgs e) + { + this.ResetAll(); + this.Close(); + } + + private void abtnSubmit_Click(object sender, EventArgs e) + { + this.SaveAll(JSONConfig.User); + this.ResetAll(); + } + + private void FormSettings_DpiChanged(object sender, DpiChangedEventArgs e) + { + e.Cancel = true; + } + } +} diff --git a/GFATask/Forms/FormSettings.resx b/GFATask/Forms/FormSettings.resx new file mode 100644 index 0000000..3004dc2 --- /dev/null +++ b/GFATask/Forms/FormSettings.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 160, 17 + + + True + + \ No newline at end of file diff --git a/GFATask/GFATask.csproj b/GFATask/GFATask.csproj new file mode 100644 index 0000000..b592578 --- /dev/null +++ b/GFATask/GFATask.csproj @@ -0,0 +1,324 @@ + + + + + Debug + AnyCPU + {BEA96733-DFDB-4E00-9CD9-C3E9B1E1D031} + WinExe + GFATask + GFATask + v4.8 + 512 + true + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + x64 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + GFA.ico + + + app.manifest + + + false + + + + ..\..\DLLs\CustomControls\bin\Debug\CustomControls.dll + + + ..\..\DLLs\CustomGraphics\bin\Debug\CustomGraphics.dll + + + ..\..\DLLs\ExScreen\bin\Debug\ExScreen.dll + + + ..\..\DLLs\Extensions\bin\Debug\Extensions.dll + + + False + ..\..\DLLs\FormEx\bin\Debug\FormEx.dll + + + ..\..\Interfaces\ILog\bin\Debug\ILog.dll + + + ..\..\DLLs\Logging\bin\Debug\Logging.dll + + + + + ..\Models\bin\Debug\Models.dll + + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + ..\..\DLLs\SystemManagement\bin\Debug\SystemManagement.dll + + + ..\..\DLLs\Win32API\bin\Debug\Win32API.dll + + + + False + ..\..\DLLs\XObjects\bin\Debug\XObjects.dll + + + + + + + + Component + + + AppButton.cs + + + Component + + + AppListButton.cs + + + Component + + + AppListPanel.cs + + + + Form + + + FormAppButtonGroup.cs + + + Form + + + FormAppCreator.cs + + + Form + + + FormAdmin.cs + + + Form + + + FormInfo.cs + + + Form + + + FormSettings.cs + + + Form + + + FormGroups.cs + + + Form + + + FormMain.cs + + + Component + + + GroupButton.cs + + + + + + + UserControl + + + ucAdminAppClickCounter.cs + + + UserControl + + + ucAdminHelp.cs + + + UserControl + + + ucAdminNewsFeeds.cs + + + UserControl + + + ucAdminApps.cs + + + + + + + + + + + UserControl + + + ucAdminDesigns.cs + + + UserControl + + + ucAdminGeneral.cs + + + FormAppButtonGroup.cs + + + FormAppCreator.cs + + + FormAdmin.cs + + + FormGroups.cs + + + FormInfo.cs + + + FormMain.cs + + + FormSettings.cs + + + ucAdminAppClickCounter.cs + + + ucAdminApps.cs + + + ucAdminHelp.cs + + + ucAdminNewsFeeds.cs + + + ucAdminDesigns.cs + + + ucAdminGeneral.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4.8 %28x86 und x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + \ No newline at end of file diff --git a/GFATask/GFATask.csproj.user b/GFATask/GFATask.csproj.user new file mode 100644 index 0000000..a543d89 --- /dev/null +++ b/GFATask/GFATask.csproj.user @@ -0,0 +1,13 @@ + + + + publish\ + + + + + + de-DE + false + + \ No newline at end of file diff --git a/GFATask/Program.cs b/GFATask/Program.cs new file mode 100644 index 0000000..281e936 --- /dev/null +++ b/GFATask/Program.cs @@ -0,0 +1,64 @@ +using System; +using System.IO; +using System.Threading; +using System.Windows.Forms; +using System.Linq; +using System.Text; + +namespace GFATask +{ + static class Program + { + /// + /// Der Haupteinstiegspunkt für die Anwendung. + /// + [STAThread] + static void Main() + { + using (Mutex mutexSingleInstance = new Mutex(true, "bea96733-dfdb-4e00-9cd9-c3e9b1e1d031")) + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + if (Environment.CommandLine.Contains("-restart") || mutexSingleInstance.WaitOne(TimeSpan.Zero, true) && (Environment.GetEnvironmentVariable("RUN_GFATASK", EnvironmentVariableTarget.Machine) == null || Environment.GetEnvironmentVariable("RUN_GFATASK", EnvironmentVariableTarget.Machine) == "1")) + { + + // Prüft ob die Datei user.json vorhanden ist. Wenn nicht, wird sie automatisch erstellt. Falls doch und nur nötige Eigenschaften fehlen, werden diese angefügt. + Deploy.Templating( + typeof(Models.Config.User), + Paths.UserConfig.FullName, + File.Exists(Paths.UserConfig.FullName) ? JSON.Exists(Paths.UserConfig.FullName, "deploy") ? Config.User.Deploy.Overwrite : true : true, + File.Exists(Paths.UserConfig.FullName) ? JSON.Exists(Paths.UserConfig.FullName, "deploy") ? Config.User.Deploy.Backup : true : true); + + // Prüft ob die Prevalence/Favoriten-Datei im benutzerdefinierten Verzeichnis vorhanden ist. Wenn nicht wird sie automatisch erstellt. Wenn doch, wird geprüft, + // ob die user.json Datei bereits existiert. Falls ja, wird nach der Eigenschaft Overwrite verfahren, andernfalls wird sie ebenfalls automatisch erstellt + Deploy.AppListTemplate(DeployAppList.Prevalence, File.Exists(Paths.Prevalence.FullName) ? Config.User.Deploy.Overwrite : true, File.Exists(Paths.Prevalence.FullName) ? Config.User.Deploy.Backup : false); + Deploy.AppListTemplate(DeployAppList.Favorites, File.Exists(Paths.Favorites.Apps.FullName) ? Config.User.Deploy.Overwrite : true, File.Exists(Paths.Favorites.Apps.FullName) ? Config.User.Deploy.Backup : false); + + + // Prüft die Eigenschaften-Strukturen der angegebenen json-Dateien + if (Models.Compare.StructureUserConfig(Paths.UserConfig.FullName).Any()) + JSON.Save(JSONConfig.User); + if(Models.Compare.Structure>(Paths.Favorites.Apps.FullName).Any()) + JSON.Save(JSONApp.Favorites); + if (Models.Compare.Structure(Paths.Prevalence.FullName).Any()) + JSON.Save(JSONConfig.Prevalence); + + try + { + Forms.Main = new FormMain(); + XObjects.SystemChanges.Load(); + Application.Run(Forms.Main); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + } + else + { + + } + } + } + } +} diff --git a/GFATask/Properties/AssemblyInfo.cs b/GFATask/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7ff9ea7 --- /dev/null +++ b/GFATask/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("GFATask")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Flammenbaum")] +[assembly: AssemblyCopyright("Copyright © Grünflächenamt")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("bea96733-dfdb-4e00-9cd9-c3e9b1e1d031")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +[assembly: AssemblyVersion("4.0.*")] +//[assembly: AssemblyVersion(version: "4.0.*")] +//[assembly: AssemblyVersion("4.0.*")] diff --git a/GFATask/Properties/Resources.Designer.cs b/GFATask/Properties/Resources.Designer.cs new file mode 100644 index 0000000..30d255b --- /dev/null +++ b/GFATask/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace GFATask.Properties { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GFATask.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap GFA { + get { + object obj = ResourceManager.GetObject("GFA", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap magnifier { + get { + object obj = ResourceManager.GetObject("magnifier", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/GFATask/Properties/Resources.resx b/GFATask/Properties/Resources.resx new file mode 100644 index 0000000..7bbc37b --- /dev/null +++ b/GFATask/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\magnifier.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\bin\Debug\Icons\System\GFA.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/GFATask/Properties/Settings.Designer.cs b/GFATask/Properties/Settings.Designer.cs new file mode 100644 index 0000000..344a474 --- /dev/null +++ b/GFATask/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace GFATask.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/GFATask/Properties/Settings.settings b/GFATask/Properties/Settings.settings new file mode 100644 index 0000000..2bd17f0 --- /dev/null +++ b/GFATask/Properties/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/GFATask/Resources/magnifier.png b/GFATask/Resources/magnifier.png new file mode 100644 index 0000000..cf3d97f Binary files /dev/null and b/GFATask/Resources/magnifier.png differ diff --git a/GFATask/Statics.cs b/GFATask/Statics.cs new file mode 100644 index 0000000..b83c235 --- /dev/null +++ b/GFATask/Statics.cs @@ -0,0 +1,1992 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Collections; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.DirectoryServices.AccountManagement; +using System.Threading; +using static System.Windows.Forms.Control; +using System.Net.Mail; +using System.Net.Sockets; +using System.Security.Principal; +using System.Diagnostics; +using System.ComponentModel; + +namespace GFATask +{ + /// + /// Barrierefreier Zugriff zur Nutzung von Steuerelementen + /// + public static class Accessor + { + /// + /// Überprüft, ob der Benutzer eine der berechtigten AD-Gruppen des entsprechenden AppListButtons enthält + /// + /// Überprüft den AppListButton auf Berechtigungen der AD-Gruppen + /// + public static bool IsMemberOfGroup(AppListButton button) + => !Config.Main.UseActiveDirectoryGroups || (Config.Main.UseActiveDirectoryGroups && (button.ActiveDirectoryGroups == null || + (button.ActiveDirectoryGroups.Length > 0 && button.ActiveDirectoryGroups.All(group => group == string.Empty || group == " ")) || + button.ActiveDirectoryGroups.Intersect(AD.Groups.Select(group => group.Name)).Any())); + + + /// + /// Verschiebt beim Ändern der FormMain-Gegebenheiten die SearchBox immer an den entsprechenden Ort + /// + public static void MoveSearchBox() + { + AppListPanel panel = XObjects.AllAppListPanels.Find(applistpanel => applistpanel.AppType == AppType.Menu); + //if(panel != null) + // XObjects.SearchBox.Location = new Point(panel.Padding.Left + panel.Location.X, Forms.Main.Padding.Top + Config.Main.Sizes.Window.Border); + } + + + /// + /// Öffnet, oder erstellt eine Form aus der statischen Klasse Statics.Forms + /// + /// Eigenschaft-Name der Form aus der statischen Klasse Statics.Forms + /// Ist das Form bereits geöffnet, wird dieses wieder geschlossen + /// Gibt das Besitzer-Form des zu öffnenden Forms an + public static void OpenForm(string formname, Form owner = null, bool closeifopen = false) + { + try + { + //if (owner == null) + // owner = Forms.Main; + if (typeof(Forms).GetProperty(formname).GetValue(typeof(Forms), null) != null) + { + FormEx form = typeof(Forms).GetProperty(formname).GetValue(typeof(Forms), null) as FormEx; + if (form != null) + { + if (!closeifopen) + { + if (!form.Visible) + { + if(owner == null) + form.Show(); + else + form.Show(owner); + } + } + else + { + if (!form.Visible) + { + form.Show(owner); + } + else if (form.Visible) + { + form.Visible = false; + } + } + } + else + { + if (form.GetType() == typeof(FormGroups)) + { + form = new FormGroups(); + } + if (form.GetType() == typeof(FormSettings)) + { + form = new FormSettings(); + } + if (form.GetType() == typeof(FormAdmin)) + { + form = new FormAdmin(); + } + form.Show(owner); + } + form.TopMost = true; + form.Focus(); + form.BringToFront(); + //form.TopMost = false; + } + } + catch (Exception ex) + { + Log.EventLog.Write($"Kann Form \"{formname}\" nicht öffnen", LogClassification.Warning, ex); + } + } + + + /// + /// Liest, eine AppListe aus der statischen Klasse Statics.AppLists aus + /// + /// Der Apptyp der AppListe + /// + public static Models.AppList GetAppList(string apptype) + { + try + { + return (Models.AppList)typeof(AppLists).GetProperty(apptype).GetValue(typeof(Models.AppList)); + } + catch (Exception ex) + { + Log.EventLog.Write($"AppList AppType.{apptype}", LogClassification.Crash, ex); + return null; + } + } + + /// + /// Liest, eine AppListe aus der statischen Klasse Statics.AppLists aus + /// + /// Der Apptyp der AppListe + /// + public static Models.AppList GetAppList(AppType apptype) + { + try + { + return (Models.AppList)typeof(AppLists).GetProperty(apptype.ToString()).GetValue(typeof(Models.AppList)); + } + catch (Exception ex) + { + Log.EventLog.Write($"AppList AppType.{apptype} nicht gefunden", LogClassification.Crash, ex); + return null; + } + } + + /// + /// Liest die Eigenschaften einer bestimmten Liste aus der JSON User-Config Datei aus + /// + /// Der Listenname um die Eigenschaften abzuändern, oder zu erhalten + /// + public static Models.Config.User.ListProperties GetListProperties(AppType apptype) + { + try + { + return (Models.Config.User.ListProperties)Config.User.Lists.GetType().GetProperty(apptype.ToString()).GetValue(Config.User.Lists); + } + catch (Exception ex) + { + Log.EventLog.Write($"ListProperties für AppType.{apptype} nicht gefunden", LogClassification.Crash, ex); + return null; + } + } + + /// + /// Gibt das gewünschte AppListPanel anhand des Apptypen aus + /// + /// Der Apptyp des AppListPanels + /// + public static AppListPanel GetAppListPanel(string apptype) + { + try + { + return GetAppListPanel((AppType)Enum.Parse(typeof(AppType), apptype, true)); + } + catch (Exception ex) + { + Log.EventLog.Write($"AppListPanel AppType.{apptype} nicht gefunden", LogClassification.Crash, ex); + return null; + } + } + + /// + /// Gibt das gewünschte AppListPanel anhand des Apptypen aus + /// + /// Der Apptyp des AppListPanels + /// + public static AppListPanel GetAppListPanel(AppType apptype) + { + try + { + return XObjects.AllAppListPanels.Find(panel => panel.AppType == apptype); + } + catch (Exception ex) + { + Log.EventLog.Write($"AppListPanel AppType.{apptype} nicht gefunden", LogClassification.Crash, ex); + return null; + } + } + + /// + /// Liest den Häufigkeitsfaktor aus der JSON-Prevalence Datei aus und weißt diese, dem AppButton zu + /// + /// Die ID des AppButtons + /// + public static Prevalencia GetPrevalencia(AppType apptype, int id) + { + List prevalenceapps = (List)Config.Prevalence.GetType().GetProperty(apptype.ToString()).GetValue(Config.Prevalence); + + if (!prevalenceapps.Select(prev => prev.ID).Contains(id)) + { + prevalenceapps.Add(new Models.Prevalence.AppPrevalenceProperties() { ID = id, ClickCounts = 0 }); + JSON.Save(JSONConfig.Prevalence); + } + return new Prevalencia(id, apptype, prevalenceapps.Find(prev => prev.ID == id).ClickCounts); + } + + /// + /// Liest den AppCounter aus der JSON-AppClickCounter Datei aus + /// + /// + /// + public static Models.ClickCounter.AppCounter GetAppCounter(AppType apptype, int id) + { + return ((List)Config.AppClickCounter.GetType().GetProperty(apptype.ToString()).GetValue(Config.AppClickCounter)).Find(clickcounter => clickcounter.ID == id); + + } + + /// + /// Liest den AppCounter aus der JSON-AppClickCounter-Datei aus und wandelt diese in einen ClickCounter um + /// + /// Die ID des AppButtons + /// + public static void SetAppCounter(AppType apptype, int id) + { + Models.App app = GetAppList(apptype).Apps.Find(applistapp => applistapp.ID == id); + List clickcountereapps = (List)Config.AppClickCounter.GetType().GetProperty(apptype.ToString()).GetValue(Config.AppClickCounter); + if (!clickcountereapps.Select(prev => prev.ID).Contains(app.ID)) + clickcountereapps.Add(new Models.ClickCounter.AppCounter() { ID = app.ID, Name = app.Name, Counts = 0, LastClicked = DateTime.Now, FirstClicked = DateTime.Now }); + var appcounter = clickcountereapps.Find(prev => prev.ID == app.ID); + var clickcounter = new ClickCounter(app.ID, apptype, app.Name, appcounter.Counts, appcounter.FirstClicked); + clickcounter.CountUp(); + + Forms.Administration.UcAdminAppClickCounter.RefreshList(clickcounter); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.AppCounter_CountUp, ClickCounter = clickcounter }); + } + + /// + /// Liest die Liste der JSON Prevalencia Datei anhand des Apptypen aus + /// + /// + /// + public static List GetPrevalenciaFileList(AppType apptype) + { + return (List)Config.Prevalence.GetType().GetProperty(apptype.ToString()).GetValue(Config.Prevalence); + } + + /// + /// Findet und definiert das AppListPanel als letztes Panel im Forms.Main + /// + public static void SetLastAppListPanel() + { + try + { + foreach (AppListPanel panel in XObjects.AllAppListPanels) + { + if(Forms.Main.Controls.OfType().Count(alp => alp.Showing) > 0) + panel.IsLast = Forms.Main.Controls.IndexOf(panel) == Forms.Main.Controls.OfType().Where(alp => alp.Showing).Min(alp => Forms.Main.Controls.IndexOf(alp)); + } + } + catch (Exception ex) + { + Log.EventLog.Write("Fehler in SetLastAppListPanel", LogClassification.Crash, ex); + } + } + } + + + /// + /// Barrierefreier Zugriff auf brauchbare Funktionen für das Active Directory + /// + public class AD + { + /// + /// Gibt aus, ob das Suchen der Active Directory Gruppen beendet ist (synchrone Eigenschaft) + /// + public static bool GroupSearchingFinish { get; private set; } = false; + + /// + /// Eine Auflistung aller Gruppenmitgliedschaften + /// + public static Collection Groups { get; } = new Collection(); + + /// + /// Führt eine Suche nach den Active Directory Gruppen aus, in denen der Benutzer Mitglied ist + /// + public static void GetGroups() + { + GroupSearchingFinish = false; + Groups.Clear(); + try + { + var groups = System.DirectoryServices.ActiveDirectory.GetGroups(Environment.UserName, true, new PrincipalContext(ContextType.Domain, Config.Main.DomainName.ToLower())); + foreach (var group in groups.OrderBy(group => group.Name)) + { + Groups.Add(group); + Forms.Groups.AddADGroup(group); + Thread.Sleep(1); + } + GroupSearchingFinish = true; + } + catch (Exception) + { + GroupSearchingFinish = true; + Forms.Groups.Loading(true); + return; + } + } + } + + + /// + /// Barrierefreier Zugriff auf die Applisten + /// + public class AppLists + { + /// + /// Auflistung aller Menü-Apps + /// + public static Models.AppList Menu { get; set; } = JSON.Read>(Paths.Apps.Directory + @"\menu.json"); + + /// + /// Auflistung aller Administrations-Apps + /// + public static Models.AppList Admin { get; set; } = JSON.Read>(Paths.Apps.Directory + @"\admin.json"); + + /// + /// Auflistung aller Benutzer-Apps + /// + public static Models.AppList User { get; set; } = JSON.Read>(Paths.Apps.Directory + @"\user.json"); + + /// + /// Auflistung aller Favoriten-Apps + /// + public static Models.AppList Favorites { get; set; } = JSON.Read>(Paths.Favorites.Apps.Directory + @"\favorites.json"); + + /// + /// Auflistung aller Citrix-Apps. Diese wird nicht in der gewöhnlichen [apps].json Datei gespeichert, sondern zur Laufzeit aus dem Citrix-Speicher ausgelesen + /// + public static Models.AppList Citrix { get; set; } = new Models.AppList() { Type = AppType.Citrix, Apps = new List() }; + } + + + /// + /// Barrierefreier Zugriff auf Umwandlungen von bestimmten Objekten in andere Typen + /// + public static class Cast + { + /// + /// Wandelt einen App-Namen in einen Button-Namen um + /// + /// Der AppTyp + /// Die App + /// + public static string AppButtonName(AppType apptype, Models.App app) + { + return app.ID + "_" + apptype.ToString() + "_" + app.Name; + } + + + /// + /// Wandelt einen App-Namen in einen Button-Namen um + /// + /// Der AppTyp + /// Die App + /// + public static string AppButtonName(string apptype, Models.App app) + { + return AppButtonName((AppType)Enum.Parse(typeof(AppType), apptype, true), app); + } + + + /// + /// Wandelt einen GroupButton-Text in einen GroupButton-Namen um + /// + /// Der AppTyp des GroupButtons + /// Der Dargestellste Text des GroupButtons + /// + public static string GroupButtonName(AppType apptype, string grouptext) + { + return grouptext + "_" + apptype.ToString(); + } + + + /// + /// Wandelt einen GroupButton-Text in einen GroupButton-Namen um + /// + /// Der AppTyp des GroupButtons + /// Der Dargestellste Text des GroupButtons + /// + public static string GroupButtonName(string apptype, string grouptext) + { + return GroupButtonName((AppType)Enum.Parse(typeof(AppType), apptype, true), grouptext); + } + + + /// + /// Wandelt das DateTime-Objekt in eine Zeichenkette mit europäische Zeitangabe um + /// + /// + /// + public static string ToEuropeDateCulture(this DateTime datetime) + { + return datetime.ToString("yyyy-MM-dd HH:mm:ss"); + } + + /// + /// Wandelt einen AppCounter aus der JSON-Datei in ein ClickCounter-Objekt um + /// + /// + /// + /// + public static ClickCounter ToClickCounter(this Models.ClickCounter.AppCounter appcounter, AppType apptype) + { + return new ClickCounter(appcounter.ID, apptype, appcounter.Name, appcounter.Counts, appcounter.FirstClicked) { LastClicked = appcounter.LastClicked }; + } + + + /// + /// Wandelt eine Models.App App in einen AppButton um + /// + /// Models.App App + /// Pfad zum Symbol + /// Abstand des AppButtons + /// + public static AppButton ToAppButton(this Models.App app, string imagepath, Padding margin) + { + AppButton button = new AppButton(); + + button.ActualWidth = Config.User.Apps.Size.Width; + button.ImageAlign = button.ImageOnly ? AnchorStyles.None : AnchorStyles.Left; + + button.Text = app.Name; + + button.Radius = Config.User.Apps.Radius.Button; + button.Margin = margin; + button.CreationTime = app.Created; + button.LastModified = app.LastModified; + button.Description = app.Description; + + if (File.Exists(imagepath)) + { + using (FileStream fs = new FileStream(imagepath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + //int icosize = Config.User.Apps.Size.Height - button.ImageMargin - button.ImagePadding; + if (fs.Name.EndsWith("ico")) + { + button.Image = Bitmap.FromHicon( Icon.ExtractAssociatedIcon(fs.Name).Handle); + } + else + { + button.Image = Image.FromStream(fs); + } + } + } + else + { + button.Image = new Bitmap(1, 1); + } + + button.TextAlign = ContentAlignment.MiddleLeft; + button.TextBoxAlign = AnchorStyles.Right; + button.Tag = "group:" + app.Group == string.Empty ? "None" : app.Group + "|activedirectory_groups:" + (app.ActiveDirectoryGroups != null && app.ActiveDirectoryGroups.Length > 0 ? string.Join(",", app.ActiveDirectoryGroups) : ""); + button.ImageOnly = Config.User.Apps.ImageOnly; + + return button; + } + + + /// + /// Wandelt eine Auflistung von Models.App Apps in einen GroupButton um + /// + /// Auflistung von Models.App Apps + /// Zu welchem AppListPanel soll der GroupButton hinzugefügt werden + /// bstand des GroupButtons + /// + public static GroupButton ToGroupButton(this Models.App[] apps, AppType apptype, Padding margin) + { + try + { + GroupButton groupbutton = new GroupButton(); + apps.ToList().ForEach(app => + { + AppButton appbutton = app.ToAppButton(IconPath(apptype, app.Icon), margin); + appbutton.Name = app.ID + "_" + apptype.ToString() + "_" + app.Name; + appbutton.GroupName = app.Group; + appbutton.ID = app.ID; + appbutton.Description = app.Description; + appbutton.Visible = Cast.AppVisibility(app); + appbutton.ActiveDirectoryGroups = app.ActiveDirectoryGroups; + appbutton.Prevalence = Accessor.GetPrevalencia(apptype, app.ID); + appbutton.WordWrap = false; + appbutton.Size = Config.User.Apps.Size; + appbutton.SetDefaultDesign(); + appbutton.AppType = apptype; + appbutton.Execute = app.Execute; + groupbutton.ContainedApps.Add(app); + groupbutton.ContainedAppButtons.Add(appbutton); + }); + groupbutton.ActualWidth = Config.User.Apps.Size.Width; + groupbutton.Name = apps[0].Group + "_" + apptype.ToString(); + groupbutton.Text = apps[0].Group; + groupbutton.Radius = Config.User.Apps.Radius.Button; + AppButton prevalencedbutton = groupbutton.ContainedAppButtons.ToArray().ToList().Find(button => button.Prevalence.CountClicks == groupbutton.ContainedAppButtons.ToArray().ToList().Max(btn => btn.Prevalence.CountClicks)); + groupbutton.Prevalence = Accessor.GetPrevalencia(apptype, prevalencedbutton.ID); + groupbutton.AppType = apptype; + groupbutton.Margin = margin; + + groupbutton.ImageOnly = Config.User.Apps.ImageOnly; + groupbutton.ImageAlign = groupbutton.ImageOnly ? AnchorStyles.None : AnchorStyles.Left; + + //groupbutton.ImageAlign = AnchorStyles.Left; + groupbutton.TextAlign = ContentAlignment.MiddleLeft; + groupbutton.Size = Config.User.Apps.Size; + groupbutton.SetDefaultDesign(); + groupbutton.TextBoxAlign = AnchorStyles.Right; + groupbutton.Tag = "group:" + apps[0].Group == string.Empty ? "None" : apps[0].Group + "|activedirectory_groups:" + (apps[0].ActiveDirectoryGroups != null && apps[0].ActiveDirectoryGroups.Length > 0 ? string.Join(",", apps[0].ActiveDirectoryGroups) : ""); + groupbutton.ContainedApps = apps.ToList(); + groupbutton.Visible = apps.Count(app => Cast.AppVisibility(app)) > 1; + return groupbutton; + } + catch (Exception ex) + { + Log.EventLog.Write("Gruppe nicht erstellt", LogClassification.CriticalError, ex); + return null; + } + } + + /// + /// + /// + /// + /// + public static AppLnk ToAppLink(this string command) + { + string[] applnk_array = command.Replace("APPLNK:", "").Split('|'); + AppType applnk_type = (AppType)int.Parse(applnk_array[0]); + int applnk_id = int.Parse(applnk_array[1]); + return new AppLnk() { AppType = applnk_type, ID = applnk_id }; + } + + /// + /// Überprüft, ob die App in der Liste angezeigt werden kann + /// + /// + public static bool AppVisibility(Models.App app) + { + return !app.Prototype && + (Config.Main.UseActiveDirectoryGroups && + (app.ActiveDirectoryGroups == null || app.ActiveDirectoryGroups.Contains("") || app.ActiveDirectoryGroups.Length == 0 || app.ActiveDirectoryGroups.Intersect(AD.Groups.Select(grp => grp.Name).ToArray()).Any()) || + !Config.Main.UseActiveDirectoryGroups); + } + + + /// + /// Wandelt eine IEnumerable Auflistung von Models.App Apps in einen GroupButton um + /// + /// Auflistung von Models.App Apps + /// Zu welchem AppListPanel soll der GroupButton hinzugefügt werden + /// bstand des GroupButtons + /// + public static GroupButton ToGroupButton(this IEnumerable apps, AppType apptype, Padding margin) + { + return ToGroupButton(apps.ToArray(), apptype, margin); + } + + + /// + /// Fügt den Pfad der Symbole anhand des Apptypen und den Namen der Symboldatei zusammen + /// + /// Apptyp + /// Name der Symboldatei + /// + public static string IconPath(AppType apptype, string iconname) + { + return (apptype == AppType.Citrix ? Paths.Citrix.Icons.Directory : + apptype == AppType.Favorites ? Paths.Favorites.Icons.Directory : + Paths.Icons.Directory) + iconname; + } + } + + + /// + /// Barrierefreier Zugriff auf Vergleichsklassen zum sortieren von Auflistungen + /// + public class Comparer + { + /// + /// Sortiert den AppButton oder GroupButton nach Beliebtheit, oder Namen + /// + /// + /// + /// + /// + public static int SortButton(ControlCollection controls, AppListButton button, bool byprevalence) + { + if (byprevalence) + { + return controls.OfType().OrderByDescending(btn => btn.Prevalence.CountClicks).ThenBy(btn => btn.Text).ToList().IndexOf(button); + } + else + { + return controls.OfType().OrderByDescending(btn => button.Text).ToList().IndexOf(button); + } + } + + + /// + /// Sortiert alle AppButtons oder GroupButtons nach Beliebtheit, oder Namen + /// + /// + /// + /// + /// + public static void SortAllButtons(ControlCollection controls, bool byprevalence) + { + var collection = byprevalence ? + controls.OfType().OrderByDescending(button => ((AppListButton)button).Prevalence.CountClicks) : + controls.OfType().OrderBy(button => button.Text); + foreach (AnimationButton button in collection) + { + controls.SetChildIndex(button, collection.ToList().IndexOf(button)); + } + //foreach (AnimationButton button in controls) + //{ + // controls.SetChildIndex(button, collection.ToList().IndexOf(button)); + //} + } + + + /// + /// Vergleicht die AppButton Steuerelemente anhand ihres Namens und sortiert diese + /// + public class ButtonCompareByName : IComparer + { + /// + /// Vergleicht die Liste und sortiert die AppButtons nach dem Text + /// + /// + /// + /// + public int Compare(AppListButton x, AppListButton y) + { + return x.Text.CompareTo(y.Text); + } + } + + /// + /// Vergleicht die AppButton Steuerelemente anhand ihrer Beliebtheit und sortiert diese + /// + public class ButtonCompareByPrevalence : IComparer + { + /// + /// Vergleicht die Liste und sortiert die AppButtons nach Beliebtheit + /// + /// + /// + /// + public int Compare(AppListButton x, AppListButton y) + { + return y.Prevalence.CountClicks.CompareTo(x.Prevalence.CountClicks); + } + } + } + + + /// + /// Barrierefreier Zugriff auf die Konfigurationsdateien + /// + public class Config + { + /// + /// JSON basierte allgemeine Konfigurationsdatei + /// + public static Models.Config.Main Main { get; set; } = JSON.Read(Paths.MainConfig.FullName); + + /// + /// JSON basierte benutzerdefinierte Konfigurationsdatei + /// + public static Models.Config.User User { get; set; } = JSON.Read(Paths.UserConfig.FullName); + + /// + /// JSON basierte Beliebtheitsdatei für die Appsortierung + /// + public static Models.Prevalence Prevalence { get; set; } = JSON.Read(Paths.Prevalence.FullName); + + /// + /// JSON basierte internationale Welttagedatei + /// + public static List NewsFeeds { get; set; } = JSON.Read>(Paths.NewsFeeds.Values.FullName, true); + + /// + /// JSON basierte Häufigkeit von angeklickten Apps + /// + public static Models.ClickCounter AppClickCounter { get; set; } = JSON.Read(Paths.AppClickCounter.FullName); + } + + + /// + /// Barrierefreier Zugriff zum generieren und verändern von Steuerelemente + /// + public static class Creator + { + /// + /// Fügt der AppListPanelCreationTasks-Liste den entsprechendne AppListPanelCreator hinzu, um die App- und GroupButtons zu erstellen + /// + /// Das AppListPanel + /// Die Apps aus der die AppButtons generiert und in das AppListPanel eingelesen werden + public static void AppListPanel(AppListPanel applistpanel, Models.AppList applist) + { + var props = Accessor.GetListProperties(applist.Type); + applistpanel.Showing = props.Show; + applistpanel.Grouping = props.Grouping; + if (applistpanel.IsLast) + Accessor.SetLastAppListPanel(); + else + applistpanel.Height = props.Height; + applistpanel.CreateButtons(applist); + } + + /// + /// Erstellt eine neue App und fügt diese in der Admin-AppListe als ListViewItem, dem AppListPanel als AppButton und der AppList als Models.App hinzu + /// + public static void AddApp(AppType apptype, Models.App app) + { + app.LastModified = DateTime.Now; + app.Created = DateTime.Now; + Accessor.GetAppListPanel(apptype).AddAppButton(app); + if (apptype == AppType.Admin || apptype == AppType.Menu || apptype == AppType.User) + { + Forms.Administration.UcAdminApps.AddAppToList(apptype, app); + } + Accessor.GetAppList(apptype).Apps.Add(app); + Accessor.GetPrevalenciaFileList(apptype).Add(new Models.Prevalence.AppPrevalenceProperties() { ID = app.ID, ClickCounts = 0 }); + JSON.Save((JSONApp)Enum.Parse(typeof(JSONApp), apptype.ToString(), true)); + JSON.Save(JSONConfig.Prevalence); + + if (apptype != AppType.Favorites) + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.Create, App = app, AppType = apptype }); + } + + /// + /// Erstellt eine neue App und fügt diese in der Admin-AppListe als ListViewItem, dem AppListPanel als AppButton und der AppList als Models.App hinzu + /// + public static void AddApp(string apptype, Models.App app) + { + AddApp((AppType)Enum.Parse(typeof(AppType), apptype, true), app); + } + + /// + /// Wandelt einen Apptypen und eine App ID in einen APPLINK-Befehl für eine Favoriten-App um + /// + public static string AppLinkCommand(AppType apptype, int id) + { + return $"APPLNK:{(int)apptype}|{id}"; + } + + /// + /// Entfernt eine App aus der Admin-AppListe als ListViewItem, dem AppListPanel als AppButton und der AppList als Models.App + /// + public static void RemoveApp(AppType apptype, Models.App app) + { + Accessor.GetAppListPanel(apptype).RemoveButton(app); + if (apptype == AppType.Admin || apptype == AppType.Menu || apptype == AppType.User) + { + Forms.Administration.UcAdminApps.RemoveAppFromList(apptype, app); + } + var applist = Accessor.GetAppList(apptype); + applist.Apps.Remove(app); + Creator.RemoveIcon(apptype, app.Icon); + + Accessor.GetPrevalenciaFileList(apptype).RemoveAll(item => item.ID == app.ID); + JSON.Save((JSONApp)Enum.Parse(typeof(JSONApp), apptype.ToString(), true)); + JSON.Save(JSONConfig.Prevalence); + + if (apptype != AppType.Favorites) + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.Delete, App = app, AppType = apptype }); + } + + /// + /// Entfernt die Symbole nur dann, wenn keine weitere App darauf zugreift (aufgeteilt auf Favoriten und alle anderen Apps [ausgenommen Citrix-Apps]) + /// + public static void RemoveIcon(AppType apptype, string icon) + { + var applist = Accessor.GetAppList(apptype); + if (apptype == AppType.Favorites) + { + if (!applist.Apps.Any(_app => _app.Icon == icon)) + { + try + { + if (File.Exists(Cast.IconPath(apptype, icon))) + File.Delete(Cast.IconPath(apptype, icon)); + } + catch (Exception ex) + { + Log.EventLog.Write("Symbol in Favoriten nicht löschbar", LogClassification.LowError, ex); + } + } + } + else if (apptype == AppType.Menu || apptype == AppType.User || apptype == AppType.Admin) + { + if (!AppLists.Admin.Apps.Union(AppLists.Menu.Apps.Union(AppLists.User.Apps)).Any(_app => _app.Icon == icon)) + { + if (File.Exists(Cast.IconPath(apptype, icon))) + File.Delete(Cast.IconPath(apptype, icon)); + } + } + } + + /// + /// Entfernt eine App aus der Admin-AppListe als ListViewItem, dem AppListPanel als AppButton und der AppList als Models.App + /// + public static void RemoveApp(string apptype, Models.App app) + { + RemoveApp((AppType)Enum.Parse(typeof(AppType), apptype, true), app); + } + + /// + /// Ersetzt eine App in der Admin-AppListe als ListViewItem, dem AppListPanel als AppButton und der AppList als Models.App + /// + public static void ReplaceApp(AppType apptype, Models.App app) + { + app.LastModified = DateTime.Now; + + Accessor.GetAppListPanel(apptype).ReplaceButton(app); + if (apptype == AppType.Admin || apptype == AppType.Menu || apptype == AppType.User) + { + Forms.Administration.UcAdminApps.ReplaceAppInList(apptype, app); + } + var applist = Accessor.GetAppList(apptype).Apps; + + if(apptype != AppType.Favorites) + { + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.Edit, App = app, AppType = apptype }); + } + string iconname = applist[applist.FindIndex(listapp => listapp.ID == app.ID)].Icon; + applist[applist.FindIndex(listapp => listapp.ID == app.ID)] = app; + Accessor.GetPrevalenciaFileList(apptype).RemoveAll(prevalencia => prevalencia.ID == app.ID); + Accessor.GetPrevalenciaFileList(apptype).Add(new Models.Prevalence.AppPrevalenceProperties() { ID = app.ID, ClickCounts = 0 }); + JSON.Save((JSONApp)Enum.Parse(typeof(JSONApp), apptype.ToString(), true)); + JSON.Save(JSONConfig.Prevalence); + Creator.RemoveIcon(apptype, iconname); + } + + /// + /// Ersetzt eine App in der Admin-AppListe als ListViewItem, dem AppListPanel als AppButton und der AppList als Models.App + /// + public static void ReplaceApp(string apptype, Models.App app) + { + ReplaceApp((AppType)Enum.Parse(typeof(AppType), apptype, true), app); + } + + /// + /// Liest eine Datei aus und erstellt sowohl Quell- als auch Ziel-Filestreams zum Kopieren, Freigeben und gemeinsamen Nutzen der Dateien + /// + /// Pfad zur Quelldatei + /// Angabe des Zielpfades, ink. Dateiname + /// Führt Code nach dem Erstellen der Zieldatei aus + public static void StreamCopy(string source, string destination, Action useDestinationStream) + { + using (FileStream fssource = new FileStream(source, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + using (FileStream fsdestination = new FileStream(destination, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete)) + { + fssource.CopyTo(fsdestination); + useDestinationStream?.Invoke(fsdestination); + } + } + } + } + + + /// + /// Barrierefreier Zugriff auf Designer-Elemente + /// + public static class Designer + { + /// + /// Zeichnet ein Label als Überschrift + /// + public static void DrawHeaderLabel(object sender, PaintEventArgs e) + { + var _this = sender as Control; + Font headerfont = new Font(_this.Font.FontFamily, _this.Font.Size + 3, FontStyle.Bold); + Size textsize = new Size((int)Math.Floor(e.Graphics.MeasureString(_this.Text, headerfont).Width), e.ClipRectangle.Bottom - headerfont.Height); + int textpadding = 5; + int center = (_this.Width / 2) - (textsize.Width / 2); + e.Graphics.Clear(_this.BackColor); + e.Graphics.DrawLine(new Pen(_this.ForeColor), new Point(0, textsize.Height + (int)(textsize.Height / 2)), new Point(center - textpadding, textsize.Height + (int)(textsize.Height / 2))); + e.Graphics.DrawLine(new Pen(_this.ForeColor), new Point(center + textsize.Width + textpadding, textsize.Height + (int)(textsize.Height / 2)), new Point(e.ClipRectangle.Width, textsize.Height + (int)(textsize.Height / 2))); + e.Graphics.DrawString(_this.Text, headerfont, new SolidBrush(_this.ForeColor), new Point(center, textsize.Height)); + } + + + /// + /// Einheitliches Design für die AppListPanels + /// + public static void SetDefaultDesign(this AppListPanel panel) + { + panel.Border = Config.Main.Sizes.List.Border; + panel.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + if (Config.User.DarkMode) + panel.BorderColor = Color.White; + else + panel.BorderColor = Config.Main.Colors.List.Border; + } + + + /// + /// Einheitliches Design für die Comboboxen + /// + public static void SetDefaultDesign(this ComboBox cb) + { + cb.FlatStyle = FlatStyle.Flat; + cb.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + + if (Config.User.DarkMode) + cb.BackColor = DarkModeColors.BackColor.AddBirghtness(Coloring.GetReadableForeColor(Config.Main.Colors.Window.BackColor) == Color.White ? 200 : -30); + else + cb.BackColor = Config.Main.Colors.Window.BackColor.AddBirghtness(Coloring.GetReadableForeColor(Config.Main.Colors.Window.BackColor) == Color.White ? 200 : -30); + + cb.ForeColor = Coloring.GetReadableForeColor(cb.BackColor); + } + + + /// + /// Einheitliches Design für jedes Kontextmenü im GFATask + /// + public static void SetDefaultDesign(this ContextMenuStrip cms) + { + cms.RenderMode = ToolStripRenderMode.Professional; + //cms.RenderMode = ToolStripRenderMode.ManagerRenderMode; + + if (Config.User.DarkMode) + { + cms.BackColor = DarkModeColors.BackColor; + } + else + { + cms.BackColor = Config.Main.Colors.Window.BackColor; + } + cms.ForeColor = Coloring.GetReadableForeColor(cms.BackColor); + } + + + /// + /// Einheitliches Design für jede ListView im GFATask + /// + public static void SetDefaultDesign(this ListViewEx lv) + { + if (Config.User.DarkMode) + { + lv.BackColor = DarkModeColors.BackColor; + lv.SelectionBackColor = DarkModeColors.Apps.Hover.BackColor; + } + else + { + lv.BackColor = Color.White; + lv.SelectionBackColor = Config.Main.Colors.Apps.Hover.BackColor; + } + + lv.SelectionLine = false; + lv.ForeColor = Coloring.GetReadableForeColor(lv.BackColor); + lv.SelectionForeColor = Coloring.GetReadableForeColor(lv.SelectionBackColor); + lv.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + } + + + /// + /// Einheitliches Design für jedes DataGridView im GFATask + /// + public static void SetDefaultDesign(this DataGridView dgv) + { + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + + if (Config.User.DarkMode) + { + dgv.BackgroundColor = DarkModeColors.BackColor; + dgv.DefaultCellStyle.BackColor = DarkModeColors.BackColor; + dgv.DefaultCellStyle.SelectionBackColor = DarkModeColors.Apps.Hover.BackColor; + } + else + { + dgv.BackgroundColor = Color.White; + dgv.DefaultCellStyle.BackColor = Color.White; + dgv.DefaultCellStyle.SelectionBackColor = Config.Main.Colors.Apps.Hover.BackColor; + } + + dgv.RowHeadersWidth = 30; + dgv.DefaultCellStyle.ForeColor = Coloring.GetReadableForeColor(dgv.BackgroundColor); + dgv.DefaultCellStyle.SelectionForeColor = Coloring.GetReadableForeColor(dgv.DefaultCellStyle.SelectionBackColor); + dgv.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); + } + + + /// + /// Einheitliches Design für jede TextBox im GFATask + /// + public static void SetDefaultDesign(this TextBox tb) + { + if(tb.Parent != null && tb.Parent.GetType() != typeof(NumericEx)) + tb.BorderStyle = BorderStyle.FixedSingle; + tb.BackColor = tb.Parent.BackColor; + tb.ForeColor = Coloring.GetReadableForeColor(tb.BackColor); + tb.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + } + + + /// + /// Einheitliches Design für jede RichTextBox im GFATask + /// + public static void SetDefaultDesign(this RichTextBox rtb) + { + rtb.BorderStyle = BorderStyle.FixedSingle; + rtb.BackColor = rtb.Parent.BackColor; + rtb.ForeColor = Coloring.GetReadableForeColor(rtb.BackColor); + rtb.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + } + + + /// + /// Einheitliches Design für jeden AppListButton im GFATask + /// + public static AppListButton SetDefaultDesign(this AppListButton button) + { + SetDefaultDesign((AnimationButton)button); + return button; + } + + + /// + /// Einheitliches Design für jeden AnimationButton im GFATask + /// + public static AnimationButton SetDefaultDesign(this AnimationButton button) + { + button.DoubleBuffer(true); + button.ImageRadius = Config.User.Apps.Radius.Image; + button.Margin = new Padding(Config.User.Apps.Margin); + button.ImageAlign = AnchorStyles.Left; + button.Radius = Config.User.Apps.Radius.Button; + button.BorderSize = button.GetType() == typeof(AnimationButton) ? 1 : Config.User.Apps.Border; + button.BorderColor = Config.Main.Colors.Apps.Default.Border; + + #region Colors + if (Config.User.DarkMode) + { + button.BackColor = DarkModeColors.Apps.Default.BackColor; + button.AnimateColor = button.BorderSize == 0 ? DarkModeColors.Apps.Hover.BackColor : DarkModeColors.Apps.Hover.Border; + + button.ForeColor = DarkModeColors.Apps.Default.ForeColor; + button.AnimateForeColor = DarkModeColors.Apps.Hover.ForeColor; + + button.ImageBackColor = DarkModeColors.Apps.Default.Image; + button.AnimateImageBackColor = DarkModeColors.Apps.Hover.Image; + } + else + { + button.BackColor = Config.Main.Colors.Apps.Default.BackColor; + button.AnimateColor = button.BorderSize == 0 ? Config.Main.Colors.Apps.Hover.BackColor : Config.Main.Colors.Apps.Hover.Border; + + button.ForeColor = Config.Main.Colors.Apps.Default.ForeColor; + button.AnimateForeColor = Config.Main.Colors.Apps.Hover.ForeColor; + + button.ImageBackColor = Config.Main.Colors.Apps.Default.Image; + button.AnimateImageBackColor = Config.Main.Colors.Apps.Hover.Image; + } + #endregion + + button.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + button.AnimationRegion = AnimationRgn.Border; + button.ImagePadding = 3; + button.ImageMargin = Config.User.Apps.ImageOnly ? 0 : 2; + button.ImageAutoSize = ImageAutoSizeDirection.Height; + button.ToolTip.SetDefaultDesign(); + return button; + } + + + /// + /// Einheitliches Design für jede Form im GFATask + /// + public static void SetDefaultDesign(this FormEx form) + { + if (Config.User.DarkMode) + { + form.BackColor = DarkModeColors.BackColor; + form.BorderColor = DarkModeColors.Border; + } + else + { + form.BackColor = Forms.AppButtonGroup != null && form.Name == Forms.AppButtonGroup.Name ? Config.Main.Colors.GroupWindow.BackColor : Config.Main.Colors.Window.BackColor; + form.BorderColor = Forms.AppButtonGroup != null && form.Name == Forms.AppButtonGroup.Name ? Config.Main.Colors.GroupWindow.Border : Config.Main.Colors.Window.Border; + } + + form.TitlebarBackColor = Forms.AppButtonGroup != null && form.Name == Forms.AppButtonGroup.Name ? Config.Main.Colors.GroupWindow.TitlebarBackColor : Config.Main.Colors.Window.TitlebarBackColor; + form.TitlebarForeColor = Coloring.GetReadableForeColor(form.TitlebarBackColor); + form.ForeColor = Coloring.GetReadableForeColor(form.BackColor); + + form.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + form.RoundedCorners = Config.Main.Sizes.Window.Radius == 0 ? + RectangleCorners.None : + form.Name == Forms.Main.Name ? RectangleCorners.BottomLeft | RectangleCorners.BottomRight : + RectangleCorners.All; + form.Radius = Config.Main.Sizes.Window.Radius; + form.BorderWidth = Config.Main.Sizes.Window.Border; + + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + if (!Accumulations.Controls(form).OfType().Any()) + { + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(form).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + } + } + + + /// + /// Einheitliches Design für jede Form im GFATask + /// + public static void SetDefaultDesign(this UserControl usercontrol) + { + if(Config.User.DarkMode) + usercontrol.BackColor = DarkModeColors.BackColor; + else + usercontrol.BackColor = Config.Main.Colors.Window.BackColor; + + usercontrol.ForeColor = Coloring.GetReadableForeColor(usercontrol.BackColor); + usercontrol.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + if(Forms.Administration != null && usercontrol != Forms.Administration.UcAdminDesigns) + Accumulations.Controls(usercontrol).OfType().ToList().ForEach(ctl => ctl.SetDefaultDesign()); + } + + + /// + /// Einheitliches Design für jedes Numeric Steuerelement im GFATask + /// + public static void SetDefaultDesign(this NumericEx numeric) + { + if(Config.User.DarkMode) + numeric.BackColor = DarkModeColors.BackColor; + else + numeric.BackColor = Config.Main.Colors.Window.BackColor; + + numeric.ForeColor = Coloring.GetReadableForeColor(numeric.BackColor); + numeric.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + numeric.BorderStyle = BorderStyle.FixedSingle; + } + + + /// + /// Einheitliches Design für jede Form im GFATask + /// + public static void SetDefaultDesign(this FlowLayoutPanel flowlayoutpanel) + { + if(Config.User.DarkMode) + flowlayoutpanel.BackColor = DarkModeColors.BackColor; + else + flowlayoutpanel.BackColor = Config.Main.Colors.Window.BackColor; + + flowlayoutpanel.ForeColor = Coloring.GetReadableForeColor(flowlayoutpanel.BackColor); + flowlayoutpanel.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + } + + + /// + /// Enheitliches Design für jeden ToolTip im GFATask + /// + public static void SetDefaultDesign(this ToolTipEx tooltip) + { + tooltip.TextFormatFlags = TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter; + + if (Config.User.DarkMode) + tooltip.BackColor = DarkModeColors.BackColor; + else + tooltip.BackColor = Config.Main.Colors.Window.BackColor; + + tooltip.ForeColor = Coloring.GetReadableForeColor(tooltip.BackColor); + tooltip.InitialDelay = 1000; + tooltip.AutoPopDelay = 8000; + tooltip.ReshowDelay = 1000; + tooltip.ShowAlways = true; + } + + /// + /// Einheitliches Design für die Benachrichtigungsfenster + /// + public static NotifyDesigner Notify(int width = 0, int height = 0) + { + return new NotifyDesigner() + { + BackColor = Config.User.DarkMode ? DarkModeColors.BackColor : Config.Main.Colors.Window.BackColor, + ForeColor = Config.User.DarkMode ? Coloring.GetReadableForeColor(DarkModeColors.BackColor) : Coloring.GetReadableForeColor(Config.Main.Colors.Window.BackColor), + Size = width == 0 && height == 0 ? new Size(500, 400) : new Size(width, height), + Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize), + BorderColor = Config.User.DarkMode ? DarkModeColors.Border : Config.Main.Colors.Window.Border, + Radius = Config.Main.Sizes.Window.Radius, + BorderWidth = 1, + Buttons = new NotifyDesigner.ButtonDesign() + { + Size = new Size(Config.User.Apps.Size.Width / 2, Config.User.Apps.Size.Height), + Radius = Config.User.Apps.Radius.Button, + BorderColor = Config.User.DarkMode ? DarkModeColors.Apps.Default.Border : Config.Main.Colors.Apps.Default.Border, + BorderWidth = 1, + AnimationRegion = AnimationRgn.Border + }, + Titlebar = new NotifyDesigner.TitlebarDesign() + { + BackColor = Config.Main.Colors.Window.TitlebarBackColor, + ForeColor = Coloring.GetReadableForeColor(Config.Main.Colors.Window.TitlebarBackColor) + } + }; + } + + /// + /// Einheitliches Design für jeden SwitchButton im GFATask + /// + public static void SetDefaultDesign(this SwitchButton switchbutton) + { + switchbutton.CheckThreeState = false; + switchbutton.RoundedButton = true; + switchbutton.ButtonRadius = 5; + switchbutton.Radius = 5; + + if (Config.User.DarkMode) + { + switchbutton.BackColor = DarkModeColors.BackColor.AddBirghtness(Coloring.GetReadableForeColor(DarkModeColors.BackColor) == Color.White ? 200 : -30); + switchbutton.BorderColor = DarkModeColors.Border; + } + else + { + switchbutton.BackColor = Config.Main.Colors.Window.BackColor.AddBirghtness(Coloring.GetReadableForeColor(Config.Main.Colors.Window.BackColor) == Color.White ? 200 : -30); + switchbutton.BorderColor = Config.Main.Colors.List.Border; + } + + switchbutton.ButtonWidth = 35; + switchbutton.ColorActive = Color.DarkSeaGreen; + switchbutton.ColorInactive = Color.OrangeRed; + switchbutton.Size = new Size(80, 25); + switchbutton.Font = new Font(Config.Main.FontFamily, Config.User.Window.FontSize); + } + } + + + /// + /// Barrierefreier Zugriff auf die Fenster + /// + public class Forms + { + /// + /// Gibt das Hauptfenster des GFATask aus + /// + public static FormMain Main { get; set; } + + /// + /// Gibt das Hauptfenster des GFATask aus + /// + public static FormInfo Info { get; set; } + + /// + /// Gibt das Active Directory-Gruppen Fenster aus + /// + public static FormGroups Groups { get; set; } + + /// + /// Gibt das Einstellungsfenster aus + /// + public static FormSettings Settings { get; set; } + + /// + /// Gibt das Administrationsfenster aus + /// + public static FormAdmin Administration { get; set; } + + /// + /// Gibt das Fenster zur App-Erstellung aus + /// + public static FormAppCreator AppCreator { get; set; } + + /// + /// Gibt das Fenster zur App-Erstellung aus + /// + public static FormAppButtonGroup AppButtonGroup { get; set; } + } + + + /// + /// Barrierefreier Zugriff auf Low-Level Maus- und Tastaturfunktionen + /// + public partial class Hooks + { + /// + /// Low-Level Mausereignisse, die auch außerhalb des Forms abgefangen werden + /// + public static MouseHook Mouse { get; } = new MouseHook(); + + /// + /// Barrierefreier Zugriff auf Low-Level Tastaturfunktionen + /// + public class KeyBoard + { + /// + /// Low-Level Keyboardereignisse, die auch außerhalb des Forms ABGEFANGEN werden + /// + public static HotKeys Interceptor { get; } = new HotKeys(); + + /// + /// Keyboardereignisse, die auch außerhalb des Forms ABGEHÖRT werden + /// + public static GlobalKeyboardHook Listener { get; } = new GlobalKeyboardHook(); + } + } + + + /// + /// Barrierefreier Zugriff auf den EventLogger + /// + public class Log + { + /// + /// Protokollierungsklasse + /// + public static Logging EventLog { get; set; } = new Logging(Paths.Logs.Name, Paths.Logs.Directory) { }; + } + + + /// + /// Barrierefreier Zugriff auf definierte Pfade + /// + public class Paths + { + /// + /// Pfad zu den App Icons + /// + public static PathEx AppClickCounter { get; set; } = new PathEx(string.Format(@"{0}\Configs\", Application.StartupPath), "appclickcounter.json"); + + /// + /// Pfad zu den App Icons + /// + public static PathEx Icons { get; set; } = new PathEx(string.Format(@"{0}\Icons\", Application.StartupPath), ""); + + /// + /// Pfad zu den benutzerdefinierten Sicherungsdateien + /// + public static PathEx Bak { get; set; } = new PathEx(string.Format(@"{0}\Bak\", Application.StartupPath), ""); + + /// + /// Pfad und Dateiname zur allgemeinen Konfigurationsdatei + /// + public static PathEx MainConfig { get; set; } = new PathEx(string.Format(@"{0}\Configs\", Application.StartupPath), "main.json"); + + /// + /// Pfad und Dateiname zur benutzerdefinierten Konfigurationsdatei + /// + public static PathEx UserConfig { get; set; } = new PathEx(string.Format(@"{0}\GFATask\", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)), "userconf.json"); + + /// + /// Pfad und Dateiname zur benutzerdefinierten Konfigurationsdatei + /// + public static PathEx FrontEndRefresh { get; set; } = new PathEx(Application.StartupPath, "Updates.dat"); + + /// + /// Pfad zu den Apps + /// + public static PathEx Apps { get; set; } = new PathEx(string.Format(@"{0}\Apps\", Application.StartupPath), ""); + + /// + /// Pfad zu den Ereignis-Logs + /// + public static PathEx Logs { get; set; } = new PathEx($@"{Application.StartupPath}\Logs\", $"{Environment.UserName.Replace(".","_")}"); + + /// + /// Barrierefreier Zugriff auf Pfade der Hilfedateien + /// + public class Help + { + /// + /// Pfad zu den Administratoren Hilfethemen + /// + public static PathEx Administration { get; set; } = new PathEx($@"{Application.StartupPath}\Help\", "Administration.htm"); + } + + /// + /// Barrierefreier Zugriff auf Pfade der internationalen Welttage + /// + public class NewsFeeds + { + /// + /// Pfad zu den Symbolen der NewsFeeds + /// + public static PathEx Icons { get; set; } = new PathEx($@"{Application.StartupPath}\Icons\NewsFeeds\", ""); + + /// + /// Pfad zu der NewsFeeds-JSON datei + /// + public static PathEx Values { get; set; } = new PathEx($@"{Application.StartupPath}\Configs\", "newsfeeds.json"); + + } + + /// + /// Barrierefreier Zugriff auf Favoriten-Pfade + /// + public class Favorites + { + /// + /// Barrierefreier Zugriff auf Favoriten Pfade + /// + public static PathEx Apps { get; set; } = new PathEx(string.Format(@"{0}\GFATask\", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)), "favorites.json"); + + /// + /// Pfad und Dateiname zu den benutzerdefinierten Favoriten Symbolen + /// + public static PathEx Icons { get; set; } = new PathEx(string.Format(@"{0}\GFATask\Icons\", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)), ""); + } + + /// + /// Pfad und Dateiname zu der benutzerdefinierten Sortierung der Apps + /// + public static PathEx Prevalence { get; set; } = new PathEx(string.Format(@"{0}\GFATask\", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)), "prevalence.json"); + + + /// + /// Barrierefreier Zugriff auf Citrix-Pfade + /// + public class Citrix + { + /// + /// Pfad und Dateiname zur Apps-XML-Datei + /// + public static PathEx Apps + { + get + { + var mainconfig_appfilelocation = EnvironmentManager.VariableConverter(Config.Main.Citrix.AppsLocation, true); + if (!File.Exists(mainconfig_appfilelocation)) + { + if(!Directory.Exists(Path.GetFullPath(mainconfig_appfilelocation))) + Directory.CreateDirectory(Path.GetFullPath(mainconfig_appfilelocation)); + return new PathEx(Path.GetFullPath(mainconfig_appfilelocation), ""); + } + var dirinfo = new DirectoryInfo(mainconfig_appfilelocation).GetFiles("*.xml", SearchOption.TopDirectoryOnly).First(); + return new PathEx(Path.GetDirectoryName(dirinfo.FullName) + "\\", Path.GetFileName(dirinfo.FullName)); + } + } + + /// + /// Pfad zu den Citrix App Icons + /// + public static PathEx Icons + { + get + { + var mainconfig_icon = EnvironmentManager.VariableConverter(Config.Main.Citrix.Icons, true); + return new PathEx(mainconfig_icon, ""); ; + } + } + + /// + /// Pfad zum ICA Client zum Ausführen der Citrix Apps + /// + public static PathEx ICASelfService + { + get + { + return new PathEx(EnvironmentManager.VariableConverter(Config.Main.Citrix.ICASelfService, true)); + } + } + } + } + + + /// + /// Barrierefreier Zugriff auf verschiedene Klassenobjekte + /// + public class XObjects + { + /// + /// Eine Auflistung aller installierten WebBrowser + /// + /// + public static List WebBrowsers { get => Microsoft.Win32.RegistryEx.GetInstalledBrowsers().ToList(); } + + + /// + /// Sendet E-Mails über einen AD-Mail-Dienst-Account + /// + public static SendMail MailService { get; set; } = new SendMail( + Config.Main.Administration.Accounts.Mail.Host, + Config.Main.Administration.Accounts.Mail.SSLPort, + Config.Main.Administration.Accounts.Mail.UserName, + new string(Config.Main.Administration.Accounts.Mail.SecurePassword.Select(ascii => (char)ascii).ToArray())); + + /// + /// Lädt Systemweite Ereignisse zum Verändern diverser Eigenschaften des GFATask, zur Laufzeit + /// + public static SystemChanges SystemChanges { get; set; } = new SystemChanges(); + + /// + /// Stellt ein Panel-Steuerelement dar, das die Ladeanimation darstellt + /// + public static LoadingPanel LoadingPanel { get; set; } = new LoadingPanel() + { + BackColor = Config.User.DarkMode ? DarkModeColors.BackColor : Config.Main.Colors.Window.BackColor, + MovingPoints = + new List() { + new MovingPoint(new Size(10, 10), new Point(-20, -10), new Point(-5, 5), Config.Main.Colors.LoadingAnimation.Dot1), + new MovingPoint(new Size(10, 10), new Point(10, 5), new Point(-15, -10), Config.Main.Colors.LoadingAnimation.Dot2), + new MovingPoint(new Size(10, 10), new Point(15, 15), new Point(5, -15), Config.Main.Colors.LoadingAnimation.Dot3), + new MovingPoint(new Size(10, 10), new Point(5, -10), new Point(15, -5), Config.Main.Colors.LoadingAnimation.Dot4), + } + }; + + /// + /// Prüft, ob es sich beim Befehl um eine verknüpfte App handelt + /// + /// + /// + public static bool IsAppLnk(string command) + { + return command != null && command.StartsWith("APPLNK:"); + } + + /// + /// Asynchrone Abfrage, ob das Suchen nach der speziellen Admin-Gruppen im Active Directory beendet ist (Nutzung: Task.Run(async () => await XObjects.IsAdmin)) + /// + public static Task IsAdmin + { + get + { + return Task.Run(async () => + { + while (!AD.GroupSearchingFinish) + { + await Task.Delay(100); + } + return (!Config.Main.UseActiveDirectoryGroups && Win32API.IsUserAnAdmin()) || AD.Groups.Cast().Select(group => group.Name).Contains(Config.Main.Administration.ActiveDirectoryGroup); + }); + } + } + + /// + /// Asynchrone Abfrage, ob das Suchen nach Gruppen im Active Directory beendet ist (Nutzung: Task.Run(async () => await XObjects.IsADGroupFinish)) + /// + public static Task IsADGroupFinish + { + get + { + return Task.Run(async () => + { + while (!AD.GroupSearchingFinish) + { + await Task.Delay(100); + } + return true; + }); + } + } + + /// + /// Ein Kontextmenü für die Schnelleinträge der Steuerelemente + /// + public static ContextMenuStrip ContextMenuStrip { get; set; } = new ContextMenuStrip() { Visible = false }; + + /// + /// Hört einen Netzwerk-Port dauerhaft auf Änderungen ab + /// + //public static NetPipe NetPipe { get; set; } + public static FrontEndRefresh FrontEndRefresh { get; set; } + + + /// + /// Erstellt eine Klasse zum zwischenspeichern von Einstellungen + /// + public static PreChanging PreChanging { get; } = new PreChanging(); + + /// + /// Pausiert den Ein- und Ausblendeprozess des GFATask, solange die Eigenschaft wahr ist + /// + public static bool PausedDelay { get; set; } = false; + + /// + /// Ein Verzögerungsprozess für das Ein- und Ausblenden des GFATask + /// + public static Delay Delay { get; set; } = new Delay(); + + /// + /// Eine Auflistung aller Applisten im GFATask + /// + public static List AllAppListPanels { get; } = new List(); + + /// + /// Erstellt anhand mehrerer Suchparameter, eine Auflistung von Dateien + /// + /// Der zu durchsuchende Pfad + /// *.[fileextension]| *.[another_fileextension] + /// Gibt an ob das aktuelle, oder das aktuelle und alle Unterverzeichnisse durchsucht werden sollen + /// + public static IEnumerable GetFiles(string path, string searchPattern, SearchOption searchOption = SearchOption.TopDirectoryOnly) + { + string[] searchPatterns = searchPattern.Split('|'); + foreach (string sp in searchPatterns) + foreach (string file in Directory.GetFiles(path, sp, searchOption)) + yield return file; + } + + /// + /// Definiert die Parameter eines Benachrichtigungsfensters. + /// + /// Bestimmt den anzuzeigenden Informationstext + /// Bestimmt den Titel in der Titelleiste + /// Bestimmt, welche Auswahlmöglichkeiten zum Ausgeben von Informationen an das Programm, das Fenster erhalten soll + /// Welche Schaltflächen sollen angezeigt werden + /// Gibt es ein vordefiniertes Objekt für eine Auswahlmöglichkeit + /// Bestimmt die Größe des Fensters + /// + public static NotifyResult MessageBox(string message, NotifyButtons buttons, NotifyType type, Size size, string title, object source = null) + { + PausedDelay = true; + var notify = Notify.Show(message, title, buttons, type, source, null, Designer.Notify(size.Width, size.Height) ); + if (notify.Result != DialogResult.None) + { + PausedDelay = false; + return notify; + }; + return notify; + } + + /// + /// Startet den GFATask neu + /// + public static void Restart(string args) + { + var startInfo = Process.GetCurrentProcess().StartInfo; + startInfo.FileName = Application.ExecutablePath; + var exit = typeof(Application).GetMethod("ExitInternal", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); + startInfo.Arguments = args; + Process.Start(startInfo); + exit.Invoke(null, null); + } + + } + + + #region Structs + /// + /// Bestimmt, oder gibt die Farben des Dark Modes an + /// + internal struct DarkModeColors + { + /// + /// Hintergrundfarbe des Dark Modes + /// + public static Color BackColor { get; } = Color.FromArgb(45, 45, 45); + + /// + /// Schriftfarbe des Dark Modes + /// + public static Color ForeColor { get; } = Coloring.GetReadableForeColor(BackColor); + + /// + /// Rahmenfarbe des Dark Modes + /// + public static Color Border { get; } = Color.FromArgb(255, 255, 255); + + /// + /// Beinhaltet die Farben der Apps im Dark Mode + /// + public struct Apps + { + /// + /// Die Farben einer App im Dark Mode + /// + public static AppColors Default { get; } = new AppColors() + { + BackColor = Color.FromArgb(45, 45, 45), + Border = Color.White, + ForeColor = Color.White, + Image = Color.CornflowerBlue + }; + + /// + /// Die Farben einer App im Dark Mode, sobald der Mauszeiger eintritt + /// + public static AppColors Hover { get; } = new AppColors() + { + BackColor = Color.FromArgb(98, 98, 98), + Border = Color.FromArgb(29, 98, 145), + ForeColor = Color.White, + Image = Color.FromArgb(128, 167, 240) + }; + + /// + /// Farben einer App im Dark Mode + /// + public class AppColors + { + /// + /// Hintergrundfarbe einer App im Dark Mode + /// + public Color BackColor { get; set; } + + /// + /// Schriftfarbe einer App im Dark Mode + /// + public Color ForeColor { get; set; } + + /// + /// Rahmenfarbe einer App im Dark Mode + /// + public Color Border { get; set; } + + /// + /// Symbol-Hintergrundfarbe einer App im Dark Mode + /// + public Color Image { get; set; } + } + } + } + + + /// + /// Gibt das Objekt und den Datentyp des Objekts bei einem Drag'n Drop Vorgang aus + /// + /// Das Drag'n Drop Ereignis aus dem das Objekt und der Datentyp ausgelesen wird + /// + public struct DragDropDataType + { + public object Data { get; set; } + public DragType DragAs { get; set; } + public DragEventArgs DragEvt { get; set; } + + public DragDropDataType(DragEventArgs dragevt) + { + string[] formats = dragevt.Data.GetFormats(); + DragType dragas = DragType.None; + IDataObject idata = dragevt.Data; + object data = idata.GetData(formats[0]); + + + if (data is AppButton) + dragas = (data as AppButton).AppType == AppType.Favorites ? DragType.FavoriteApp : DragType.AppButton; + else if (data is GroupButton) + dragas = (data as GroupButton).AppType == AppType.Favorites ? DragType.FavoriteGroup : DragType.GroupButton; + else if (formats.Contains(DataFormats.FileDrop)) + { + dragas = File.GetAttributes(((string[])dragevt.Data.GetData(DataFormats.FileDrop))[0]).HasFlag(FileAttributes.Directory) ? DragType.Directory : DragType.File; + data = idata.GetData(DataFormats.FileDrop); + } + else if (formats.Contains(DataFormats.StringFormat)) //Für den FireFox + { + dragas = DragType.Text; + data = idata.GetData(DataFormats.StringFormat); + } + else if (formats.Contains(DataFormats.Html)) + { + dragas = DragType.Html; + data = idata.GetData(DataFormats.Html); + } + else if (formats.Contains(DataFormats.Text)) + { + dragas = DragType.Text; + data = idata.GetData(DataFormats.Text); + } + + DragAs = dragas; + Data = data; + DragEvt = dragevt; + } + + /// + /// EXPERIMENTAL!!! + /// + /// + public DragDropDataType(string clipboard) + { + string[] formats = Clipboard.GetDataObject().GetFormats(); + DragType dragas = DragType.None; + IDataObject idata = Clipboard.GetDataObject(); + object data = idata.GetData(formats[0]); + + if (formats.Contains(DataFormats.FileDrop)) + { + dragas = File.GetAttributes(((string[])idata.GetData(DataFormats.FileDrop))[0]).HasFlag(FileAttributes.Directory) ? DragType.Directory : DragType.File; + data = idata.GetData(DataFormats.FileDrop); + } + else if (formats.Contains(DataFormats.StringFormat)) //Für den FireFox + { + dragas = DragType.Text; + data = idata.GetData(DataFormats.StringFormat); + } + else if (formats.Contains(DataFormats.Html)) + { + dragas = DragType.Html; + data = idata.GetData(DataFormats.Html); + } + else if (formats.Contains(DataFormats.Text)) + { + dragas = DragType.Text; + data = idata.GetData(DataFormats.Text); + } + + DragAs = dragas; + Data = data; + DragEvt = new DragEventArgs(Clipboard.GetDataObject(), 0, 0, 0, DragDropEffects.All, DragDropEffects.Copy); + } + } + #endregion + + + #region Enums + /// + /// Definiert den Datentyp des Objekts bei einem Drag'n Drop Vorgang + /// + public enum DragType + { + /// + /// Kein Typ definiert + /// + None = 0, + + /// + /// Definiert einen Favoriten AppButton + /// + FavoriteApp, + + /// + /// Definiert einen Favoriten GroupButton + /// + FavoriteGroup, + + /// + /// Definiert einen gewöhnlichen AppButton + /// + AppButton, + + /// + /// Definiert einen AppGroupButton mit den darin enthaltenen AppButtons + /// + GroupButton, + + /// + /// Definiert einen Dateiordner + /// + Directory, + + /// + /// Definiert eine Datei aus dem Dateisystem + /// + File, + + /// + /// Definiert eine Webseite + /// + Html, + + /// + /// Definiert einen Text + /// + Text + } + + + /// + /// Definiert den Typen des NetPipeStreams + /// + public enum NetPipeType + { + /// + /// Definiert die Veränderung einer App + /// + Edit = 0, + + /// + /// Definiert das Erstellen einer App + /// + Create = 1, + + /// + /// Definiert das Entfernen einer App + /// + Delete = 2, + + /// + /// Definiert das allgemeine Ändern der Hauptkonfiguration + /// + MainConfig = 3, + + /// + /// Definiert das Ausführen und Hochzählen einer App + /// + AppCounter_CountUp = 4, + + /// + /// Definiert das Löschen der AppClickCounter-Datei + /// + ClickCounter_Clear = 5, + + /// + /// Definiert das Zurücksetzen eines AppCounters auf 0 + /// + AppCounter_Reset = 6, + + /// + /// Definiert Änderungen in der Hauptkonfiguration, die die Citrix-Eigenschaften betreffen + /// + Citrix = 7, + + /// + /// Definiert Änderungen in der Hauptkonfiguration, die die Active Directory-Eigenschaften betreffen + /// + ActiveDirectory = 8, + + /// + /// Definiert Änderungen in der Hauptkonfiguration, die die MailAccount-Eigenschaften betreffen + /// + MailAccount = 9, + + /// + /// Definiert Änderungen in der Hauptkonfiguration, die die Remote-FrontEnd-Update-Eigenschaften betreffen + /// + FrontEndUpdate = 10, + + /// + /// Fängt eine nicht lesbare Änderung in der Update-Datei ab + /// + ErrorHandle = 11 + } + + + /// + /// Definiert den Backup-Konfigurationssatz + /// + public enum ConfigRecoveryType + { + /// + /// Definiert die Sicherung als benutzerdefinierte Einstellungen + /// + [Description("Benutzereinstellungen")] + UserConfig = 0, + + /// + /// Definiert die Sicherung als Favoriten + /// + [Description("Favoriten")] + Favorites = 1, + + /// + /// Definiert die Sicherung als Beliebtheitskonfigurationsdatei + /// + [Description("App-Beliebtheit")] + Prevalences = 2 + } + #endregion +} diff --git a/GFATask/SystemChanges.cs b/GFATask/SystemChanges.cs new file mode 100644 index 0000000..c8b2347 --- /dev/null +++ b/GFATask/SystemChanges.cs @@ -0,0 +1,82 @@ +using Microsoft.Win32; +using System; +using System.Net.NetworkInformation; +using System.Windows.Forms; +using System.Drawing; + +namespace GFATask +{ + public class SystemChanges + { + public SystemChanges() { } + public void Load() + { + AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; + SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; + SystemEvents.EventsThreadShutdown += SystemEvents_EventsThreadShutdown; + SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged; + SystemEvents.DisplaySettingsChanging += SystemEvents_DisplaySettingsChanging; + SystemEvents.UserPreferenceChanged += SystemEvents_UserPreferenceChanged; + SystemEvents.SessionEnding += SystemEvents_SessionEnding; + NetworkChange.NetworkAvailabilityChanged += NetworkChange_NetworkAvailabilityChanged; + } + + private void CurrentDomain_ProcessExit(object sender, EventArgs e) + { + XObjects.Delay.Break(Delay.Prevent.Decrease); + SystemApps.Kill(out _); + } + + private void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e) + { + //XObjects.MessageBox = Feed.Show("Netzwerkverbindung " + (e.IsAvailable ? "hergestellt" : "getrennt"), NotifyButtons.OK, NotifyType.Message, Designer.Feed(150, 150), null, "Netzwerk"); + if (e.IsAvailable) + { + AD.GetGroups(); + Forms.Main.CreateAppListPanels(); + } + } + + private void SystemEvents_UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) + { + //if (e.Category == UserPreferenceCategory.General) + //{ + // MessageBox.Show(e.Category.ToString()); + // Forms.Main.BackColor = WindowsColors.Accent.StartMenuBackColor; + // Forms.Main.BorderColor = WindowsColors.Accent.BackColor; + // Forms.Main.TitlebarForeColor = Coloring.GetReadableForeColor(Forms.Main.BorderColor); + //} + } + + private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e) + { + Forms.Main.SetMaximumSize(); + //Forms.Main.DesktopAlign(); + } + + private void SystemEvents_DisplaySettingsChanging(object sender, EventArgs e) + { + Forms.Settings.LoadDisplays(); + Win32API.SendMessage(Forms.Main.Handle, (int)WM.ENTERSIZEMOVE, 0, 0); + Forms.Main.DesktopAlign(); + } + + private void SystemEvents_EventsThreadShutdown(object sender, EventArgs e) + { + SystemApps.Kill(out _); + } + + private void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) + { + SystemApps.Kill(out _); + } + + private void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e) + { + if(e.Mode == PowerModes.Resume) + { + SystemApps.Restart(out _); + } + } + } +} diff --git a/GFATask/UserControls/ucAdminAppClickCounter.Designer.cs b/GFATask/UserControls/ucAdminAppClickCounter.Designer.cs new file mode 100644 index 0000000..f6ae284 --- /dev/null +++ b/GFATask/UserControls/ucAdminAppClickCounter.Designer.cs @@ -0,0 +1,149 @@ + +namespace GFATask +{ + partial class ucAdminAppClickCounter + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.abtnReset = new System.Windows.Forms.AnimationButton(); + this.table = new System.Windows.Forms.TableLayoutPanel(); + this.lvAppClickCounter = new System.Windows.Forms.ListViewEx(); + this.colID = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.colAppName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.colCounts = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.colDateLast = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.colDateFirst = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.table.SuspendLayout(); + this.SuspendLayout(); + // + // abtnReset + // + this.abtnReset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.abtnReset.AutoSizeWidth = false; + this.abtnReset.Image = null; + this.abtnReset.ImageAlign = System.Windows.Forms.AnchorStyles.None; + this.abtnReset.ImageBackColor = System.Drawing.Color.Empty; + this.abtnReset.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnReset.ImageSize = new System.Drawing.Size(1, 1); + this.abtnReset.Location = new System.Drawing.Point(699, 382); + this.abtnReset.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.abtnReset.Name = "abtnReset"; + this.abtnReset.Size = new System.Drawing.Size(234, 23); + this.abtnReset.TabIndex = 0; + this.abtnReset.Text = "Alle Click Counts zurücksetzen"; + this.abtnReset.TextBoxAlign = System.Windows.Forms.AnchorStyles.None; + this.abtnReset.ToolTipText = ""; + this.abtnReset.Click += new System.EventHandler(this.abtnReset_Click); + // + // table + // + this.table.ColumnCount = 1; + this.table.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.table.Controls.Add(this.abtnReset, 0, 1); + this.table.Controls.Add(this.lvAppClickCounter, 0, 0); + this.table.Dock = System.Windows.Forms.DockStyle.Fill; + this.table.Location = new System.Drawing.Point(0, 0); + this.table.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.table.Name = "table"; + this.table.RowCount = 2; + this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.table.Size = new System.Drawing.Size(935, 407); + this.table.TabIndex = 2; + // + // lvAppClickCounter + // + this.lvAppClickCounter.ColumnFont = new System.Drawing.Font("Segoe UI", 9F); + this.lvAppClickCounter.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.colID, + this.colAppName, + this.colCounts, + this.colDateLast, + this.colDateFirst}); + this.lvAppClickCounter.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvAppClickCounter.FullRowSelect = true; + this.lvAppClickCounter.GridLines = true; + this.lvAppClickCounter.HideSelection = false; + this.lvAppClickCounter.Location = new System.Drawing.Point(0, 0); + this.lvAppClickCounter.Margin = new System.Windows.Forms.Padding(0); + this.lvAppClickCounter.Name = "lvAppClickCounter"; + this.lvAppClickCounter.OwnerDraw = true; + this.lvAppClickCounter.Size = new System.Drawing.Size(935, 379); + this.lvAppClickCounter.TabIndex = 1; + this.lvAppClickCounter.UseCompatibleStateImageBehavior = false; + this.lvAppClickCounter.View = System.Windows.Forms.View.Details; + // + // colID + // + this.colID.Text = "ID"; + // + // colAppName + // + this.colAppName.Text = "App"; + this.colAppName.Width = 409; + // + // colCounts + // + this.colCounts.Text = "Benutzerklicks"; + this.colCounts.Width = 120; + // + // colDateLast + // + this.colDateLast.Text = "Zuletzt geklick"; + this.colDateLast.Width = 160; + // + // colDateFirst + // + this.colDateFirst.Text = "Erste Ausführung"; + this.colDateFirst.Width = 160; + // + // ucAdminAppClickCounter + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.Controls.Add(this.table); + this.Margin = new System.Windows.Forms.Padding(0); + this.Name = "ucAdminAppClickCounter"; + this.Size = new System.Drawing.Size(935, 407); + this.table.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.AnimationButton abtnReset; + private System.Windows.Forms.TableLayoutPanel table; + private System.Windows.Forms.ListViewEx lvAppClickCounter; + private System.Windows.Forms.ColumnHeader colID; + private System.Windows.Forms.ColumnHeader colAppName; + private System.Windows.Forms.ColumnHeader colCounts; + private System.Windows.Forms.ColumnHeader colDateLast; + private System.Windows.Forms.ColumnHeader colDateFirst; + } +} diff --git a/GFATask/UserControls/ucAdminAppClickCounter.cs b/GFATask/UserControls/ucAdminAppClickCounter.cs new file mode 100644 index 0000000..465d48a --- /dev/null +++ b/GFATask/UserControls/ucAdminAppClickCounter.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + [Browsable(false), ToolboxItem(false)] + public partial class ucAdminAppClickCounter : UserControl + { + public ContextMenuStrip CMS + { + get + { + return new ContextMenuStrip(); + } + } + + + public ucAdminAppClickCounter() + { + InitializeComponent(); + this.SetDefaultDesign(); + lvAppClickCounter.SortByColumn(1, SortOrder.Ascending); + lvAppClickCounter.ContextMenuStrip = CMS; + + lvAppClickCounter.MouseClick += LvAppClickCounter_MouseClick; + Config.AppClickCounter.GetType().GetProperties().ToList().ForEach(applist => + { + ListViewGroup group = new ListViewGroup(applist.Name, applist.Name); + lvAppClickCounter.Groups.Add(group); + var apps = ((List)applist.GetValue(Config.AppClickCounter)); + lvAppClickCounter.Items.AddRange(apps.Select(app => new ListViewItem(new string[] { app.ID.ToString(), app.Name, app.Counts.ToString(), app.LastClicked.ToEuropeDateCulture(), app.FirstClicked.ToEuropeDateCulture() }, group)).ToArray()); + + }); + + + } + + private void LvAppClickCounter_MouseClick(object sender, MouseEventArgs e) + { + if(e.Button == MouseButtons.Right) + { + var item = lvAppClickCounter.HitTest(e.Location).Item; + if(item != null && item.GetType() != typeof(ColumnHeader) && item.GetType() != typeof(ListViewGroup)) + { + if (lvAppClickCounter.ContextMenuStrip != null) + { + lvAppClickCounter.ContextMenuStrip.Items.Clear(); + ToolStripMenuItem item_reset = new ToolStripMenuItem("Zurücksetzen", null, (s, evt) => + { + AppType apptype = (AppType)Enum.Parse(typeof(AppType), item.Group.Header, true); + int id = int.Parse(item.Text); + ClickCounter clickcounter = Accessor.GetAppCounter(apptype, id).ToClickCounter(apptype); + ResetAppCounter(clickcounter); + JSON.Save(JSONConfig.AppClickCounter); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.AppCounter_Reset, AppType = apptype, ClickCounter = clickcounter }); + }); + lvAppClickCounter.ContextMenuStrip.Items.Add(item_reset); + lvAppClickCounter.ContextMenuStrip.Show(this, new Point(e.X, lvAppClickCounter.GetItemRect(item.Index).Bottom)); + } + } + } + } + + + public void ResetAppCounter(ClickCounter clickcounter) + { + Models.ClickCounter.AppCounter appcounter = ((List)Config.AppClickCounter.GetType().GetProperty(clickcounter.AppType.ToString()).GetValue(Config.AppClickCounter)).Find(appc => appc.ID == clickcounter.ID); + appcounter.Counts = 0; + appcounter.FirstClicked = DateTime.Now; + appcounter.LastClicked = DateTime.Now; + clickcounter.Counts = 0; + clickcounter.FirstClicked = DateTime.Now; + clickcounter.LastClicked = DateTime.Now; + ListViewItem replacing_item = clickcounter.AsLvItem(); + replacing_item.Group = lvAppClickCounter.Groups[clickcounter.AppType.ToString()]; + lvAppClickCounter.Items[lvAppClickCounter.Items.Cast().ToList().FindIndex(lvitem => lvitem.Text == clickcounter.ID.ToString())] = replacing_item; + } + + + private void abtnReset_Click(object sender, EventArgs e) + { + if(XObjects.MessageBox("Setzt die gezählten Klicks pro App zurück", NotifyButtons.OkCancel, NotifyType.Message, new Size(350,150), "ClickCounter zurücksetzen").Result == DialogResult.OK) + { + Config.AppClickCounter = new Models.ClickCounter() + { + Admin = new List(), + Menu = new List(), + User = new List() + }; + JSON.Save(JSONConfig.AppClickCounter); + ClearAppClickCounterList(); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.ClickCounter_Clear }); + } + } + + + public void ClearAppClickCounterList() + { + lvAppClickCounter.Items.Clear(); + } + + + public void RefreshList(ClickCounter clickcounter) + { + ListViewItem item = clickcounter.AsLvItem(); + item.Group = lvAppClickCounter.Groups.Cast().First(group => group.Header == clickcounter.AppType.ToString()); + + if (lvAppClickCounter.Items.Cast().ToList().Exists(lvitem => lvitem.Text == clickcounter.ID.ToString())) + { + lvAppClickCounter.Items[lvAppClickCounter.Items.Cast().ToList().FindIndex(lvitem => lvitem.Text == clickcounter.ID.ToString())] = item; + } + else + { + + lvAppClickCounter.Items.Add(item); + } + } + + } + + internal static class Extensions + { + public static ListViewItem AsLvItem(this ClickCounter clickcounter) + { + ListViewItem item = new ListViewItem(clickcounter.ID.ToString()); + ListViewItem.ListViewSubItem subName = new ListViewItem.ListViewSubItem(item, clickcounter.Name) { Name = "colAppName" }; + ListViewItem.ListViewSubItem subCounts = new ListViewItem.ListViewSubItem(item, clickcounter.Counts.ToString()) { Name = "colCounts" }; + ListViewItem.ListViewSubItem subLastClicked = new ListViewItem.ListViewSubItem(item, clickcounter.LastClicked.ToEuropeDateCulture()) { Name = "colDateLast" }; + ListViewItem.ListViewSubItem subFirstClicked = new ListViewItem.ListViewSubItem(item, clickcounter.FirstClicked.ToEuropeDateCulture()) { Name = "colDateFirst" }; + item.SubItems.AddRange(new ListViewItem.ListViewSubItem [] { subName, subCounts, subLastClicked, subFirstClicked }.ToArray()); + return item; + } + } +} diff --git a/GFATask/UserControls/ucAdminAppClickCounter.resx b/GFATask/UserControls/ucAdminAppClickCounter.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/UserControls/ucAdminAppClickCounter.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/UserControls/ucAdminApps.Designer.cs b/GFATask/UserControls/ucAdminApps.Designer.cs new file mode 100644 index 0000000..6151b09 --- /dev/null +++ b/GFATask/UserControls/ucAdminApps.Designer.cs @@ -0,0 +1,105 @@ + +namespace GFATask +{ + partial class ucAdminApps + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lvApps = new System.Windows.Forms.ListViewEx(); + this.abtnCreate = new System.Windows.Forms.AnimationButton(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // lvApps + // + this.lvApps.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.lvApps.ColumnFont = new System.Drawing.Font("Segoe UI", 9F); + this.lvApps.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvApps.FullRowSelect = true; + this.lvApps.GridLines = true; + this.lvApps.HideSelection = false; + this.lvApps.Location = new System.Drawing.Point(3, 3); + this.lvApps.Name = "lvApps"; + this.lvApps.OwnerDraw = true; + this.lvApps.Size = new System.Drawing.Size(852, 468); + this.lvApps.TabIndex = 2; + this.lvApps.TileSize = new System.Drawing.Size(228, 120); + this.lvApps.UseCompatibleStateImageBehavior = false; + this.lvApps.View = System.Windows.Forms.View.Details; + // + // abtnCreate + // + this.abtnCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.abtnCreate.AutoSizeWidth = false; + this.abtnCreate.Image = null; + this.abtnCreate.ImageAutoSize = System.Windows.Forms.ImageAutoSizeDirection.Manual; + this.abtnCreate.ImageBackColor = System.Drawing.Color.Empty; + this.abtnCreate.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnCreate.Location = new System.Drawing.Point(708, 477); + this.abtnCreate.Name = "abtnCreate"; + this.abtnCreate.Size = new System.Drawing.Size(147, 29); + this.abtnCreate.TabIndex = 0; + this.abtnCreate.Text = "App erstellen"; + this.abtnCreate.ToolTipText = ""; + this.abtnCreate.Click += new System.EventHandler(this.abtnCreate_Click); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.lvApps, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.abtnCreate, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(858, 509); + this.tableLayoutPanel1.TabIndex = 2; + // + // ucAdminApps + // + this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.Controls.Add(this.tableLayoutPanel1); + this.Margin = new System.Windows.Forms.Padding(0); + this.Name = "ucAdminApps"; + this.Size = new System.Drawing.Size(858, 509); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.AnimationButton abtnCreate; + private System.Windows.Forms.ListViewEx lvApps; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + } +} diff --git a/GFATask/UserControls/ucAdminApps.cs b/GFATask/UserControls/ucAdminApps.cs new file mode 100644 index 0000000..a0713e5 --- /dev/null +++ b/GFATask/UserControls/ucAdminApps.cs @@ -0,0 +1,188 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + [Browsable(false), ToolboxItem(false)] + public partial class ucAdminApps : UserControl + { + public ImageList imageList = new ImageList(); + private int sortcolumn = 0; + + public ucAdminApps() + { + InitializeComponent(); + this.SetDefaultDesign(); + + this.ContextMenuStrip = new ContextMenuStrip(); + this.ContextMenuStrip.Items.Add("Bearbeiten", null, SetEditableItem); + this.ContextMenuStrip.Items.Add("Schnelles kopieren", null, FastCopyApp); + this.ContextMenuStrip.Items.Add("Löschen", null, RemoveApp); + lvApps.MouseDoubleClick += SetEditableItem; + + + imageList.ImageSize = new Size(24,24); + imageList.Images.Add("", new Bitmap(imageList.ImageSize.Width, imageList.ImageSize.Height)); + var files = XObjects.GetFiles(Paths.Icons.Directory, "*.png|*.jpg|*.ico|*.jpeg|*.bmp|*.gif"); + foreach (var file in files) + { + using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) + { + imageList.Images.Add(Path.GetFileName(file), Image.FromFile(fs.Name)); + } + } + + lvApps.DoubleBuffer(true); + lvApps.SmallImageList = lvApps.LargeImageList = imageList; + lvApps.Columns.Add("Name"); + lvApps.Columns.Add("ID"); + lvApps.Columns.Add("Gruppen"); + lvApps.Columns.Add("Symbol"); + lvApps.Columns.Add("Prototyp"); + lvApps.Columns.Add("AD Gruppen"); + lvApps.Columns.Add("Zuletzt geändert"); + lvApps.Columns.Add("Erstellt am"); + typeof(AppLists).GetProperties().Select(prop => (Models.AppList)prop.GetValue(typeof(AppLists))).ToList().ForEach(applist => + { + if (applist.Apps != null && applist.Type != AppType.Citrix && applist.Type != AppType.Favorites) + { + ListViewGroup group = new ListViewGroup(applist.Type.ToString(), applist.Type.ToString()); + lvApps.Groups.Add(group); + lvApps.Items.AddRange(applist.Apps.Select(app => + { + var ad_groups = app.ActiveDirectoryGroups == null ? new string[] { "Keine" } : app.ActiveDirectoryGroups; + var item = new ListViewItem(new string[] { app.Name, app.ID.ToString(), app.Group, app.Icon, app.Prototype == true ? "✓" : "❌", string.Join(",", ad_groups), app.LastModified.ToEuropeDateCulture(), app.Created.ToEuropeDateCulture() }, Path.GetFileName(app.Icon), group); + return item; + }).ToArray()); + } + }); + + lvApps.SortByColumn(sortcolumn); + lvApps.ColumnClick += (sender, e) => sortcolumn = e.Column; + lvApps.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); + lvApps.AutoFillColumn(lvApps.Columns.Count -1); + } + + public void AddAppToList(AppType apptype, Models.App app) + { + AddAppToList(apptype.ToString(), app); + } + + + public void AddAppToList(string apptype, Models.App app) + { + ListViewGroup group = lvApps.Groups[apptype]; + var ad_groups = app.ActiveDirectoryGroups == null ? new string[] { "Keine" } : app.ActiveDirectoryGroups; + var item = new ListViewItem(new string[] { app.Name, app.ID.ToString(), app.Group, app.Icon, app.Prototype == true ? "✓" : "❌", string.Join(",", ad_groups), app.LastModified.ToEuropeDateCulture(), app.Created.ToEuropeDateCulture() }, Path.GetFileName(app.Icon), group); + lvApps.Items.Add(item); + } + + public void ReplaceAppInList(AppType apptype, Models.App app) + { + ListViewGroup group = lvApps.Groups[apptype.ToString()]; + var ad_groups = app.ActiveDirectoryGroups == null ? new string[] { "Keine" } : app.ActiveDirectoryGroups; + var lvitem = group.Items.Cast().First(item => int.Parse(item.SubItems[1].Text) == app.ID && item.Group.Name == apptype.ToString()); + lvApps.Items.Remove(lvitem); + lvitem = new ListViewItem(new string[] { app.Name, app.ID.ToString(), app.Group, app.Icon, app.Prototype == true ? "✓" : "❌", string.Join(",", ad_groups), app.LastModified.ToEuropeDateCulture(), app.Created.ToEuropeDateCulture() }, Path.GetFileName(app.Icon), group); + lvApps.Items.Add(lvitem); + lvApps.Invalidate(); + lvApps.ListViewItemSorter = new ListViewItemComparer(sortcolumn); + } + + public void ReplaceAppInList(string apptype, Models.App app) + { + this.ReplaceAppInList((AppType)Enum.Parse(typeof(AppType), apptype, true), app); + } + + + public void RemoveAppFromList(AppType apptype, Models.App app) + { + ListViewGroup group = lvApps.Groups[apptype.ToString()]; + ListViewItem lvitem = group.Items.Cast().ToList().Find(item => int.Parse(item.SubItems[1].Text) == app.ID); + lvApps.Items.Remove(lvitem); + } + + public void RemoveAppFromList(string apptype, Models.App app) + { + RemoveAppFromList((AppType)Enum.Parse(typeof(AppType), apptype, true), app); + } + + private void RemoveApp(object sender, EventArgs e) + { + var lvitem = lvApps.SelectedItems[0]; + var msgbox = XObjects.MessageBox("Soll die App " + lvitem.Text + " wirklich gelöscht werden", NotifyButtons.YesNo, NotifyType.Message, new Size(200, 200), "App Löschen", null); + if (msgbox.Result == DialogResult.Yes) + { + AppType apptype = (AppType)Enum.Parse(typeof(AppType), lvitem.Group.Name, true); + Models.AppList applist = Accessor.GetAppList(apptype); + Models.App app = applist.Apps.Find(listapp => listapp.ID == int.Parse(lvitem.SubItems[1].Text)); + Creator.RemoveApp(lvitem.Group.Name, app); + } + } + + + private void abtnCreate_Click(object sender, EventArgs e) + { + Forms.AppCreator.ResetControls(); + Accessor.OpenForm("AppCreator"); + } + + private void FastCopyApp(object sender, EventArgs e) + { + var lvitem = lvApps.SelectedItems[0]; + if (lvitem != null) + { + string typefromgroup = Enum.Parse(typeof(AppType), lvitem.Group.Name, true).ToString(); + Models.AppList applist = (Models.AppList)typeof(AppLists).GetProperty(lvitem.Group.Name).GetValue(typeof(Models.AppList)); + Models.App app_copy = applist.Apps.Find(app => app.ID == int.Parse(lvitem.SubItems[1].Text)).Copy(); + app_copy.Name = app_copy.Name + " (Kopie " + applist.Apps.Count(app => app.Name == app_copy.Name) + ")"; + app_copy.ID = applist.Apps.Max(app => app.ID) + 1; + app_copy.Created = DateTime.Now; + app_copy.LastModified = DateTime.Now; + Creator.AddApp(lvitem.Group.Name, app_copy); + } + } + + private void SetEditableItem(object sender, EventArgs e) + { + var item = lvApps.SelectedItems[0]; + if (item != null) + { + string typefromgroup = Enum.Parse(typeof(AppType), item.Group.Name, true).ToString(); + Models.AppList applist = (Models.AppList)typeof(AppLists).GetProperty(item.Group.Name).GetValue(typeof(Models.AppList)); + Models.App appitem = applist.Apps.Find(app => app.ID == int.Parse(item.SubItems[1].Text)); + Forms.AppCreator.GetEditableItem(applist.Type, appitem); + Accessor.OpenForm("AppCreator", Forms.Administration); + } + } + + + class ListViewItemComparer : IComparer + { + private int col; + public ListViewItemComparer() + { + col = 0; + } + + public ListViewItemComparer(int column) + { + col = column; + } + + public int Compare(object x, object y) + { + return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); + } + } + } +} diff --git a/GFATask/UserControls/ucAdminApps.resx b/GFATask/UserControls/ucAdminApps.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/UserControls/ucAdminApps.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/UserControls/ucAdminDesigns.Designer.cs b/GFATask/UserControls/ucAdminDesigns.Designer.cs new file mode 100644 index 0000000..c84d2fb --- /dev/null +++ b/GFATask/UserControls/ucAdminDesigns.Designer.cs @@ -0,0 +1,936 @@ + +namespace GFATask +{ + partial class ucAdminDesigns + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableDesign = new System.Windows.Forms.TableLayoutPanel(); + this.label18 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.numAppListX = new System.Windows.Forms.NumericEx(); + this.label13 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label27 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.cbWindowTitlebarColor = new System.Windows.Forms.ComboBox(); + this.cbWindowBorderColor = new System.Windows.Forms.ComboBox(); + this.cbWindowActionColor = new System.Windows.Forms.ComboBox(); + this.cbWindowBackColor = new System.Windows.Forms.ComboBox(); + this.cbGroupBackColor = new System.Windows.Forms.ComboBox(); + this.cbGroupBorderColor = new System.Windows.Forms.ComboBox(); + this.cbGroupTitlebarColor = new System.Windows.Forms.ComboBox(); + this.cbGroupActionColor = new System.Windows.Forms.ComboBox(); + this.label8 = new System.Windows.Forms.Label(); + this.numAppListY = new System.Windows.Forms.NumericEx(); + this.cbFontFamily = new System.Windows.Forms.ComboBox(); + this.numWindowRadius = new System.Windows.Forms.NumericEx(); + this.numWindowBorder = new System.Windows.Forms.NumericEx(); + this.cbAppDefaultForeColor = new System.Windows.Forms.ComboBox(); + this.cbAppDefaultBackColor = new System.Windows.Forms.ComboBox(); + this.cbAppDefaultBorder = new System.Windows.Forms.ComboBox(); + this.cbAppDefaultImage = new System.Windows.Forms.ComboBox(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.abtnVerwerfen = new System.Windows.Forms.AnimationButton(); + this.abtnAnwenden = new System.Windows.Forms.AnimationButton(); + this.cbListBorderColor = new System.Windows.Forms.ComboBox(); + this.cbLoadingDot3 = new System.Windows.Forms.ComboBox(); + this.label19 = new System.Windows.Forms.Label(); + this.cbLoadingDot1 = new System.Windows.Forms.ComboBox(); + this.label20 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.cbAppHoverForeColor = new System.Windows.Forms.ComboBox(); + this.cbAppHoverBackColor = new System.Windows.Forms.ComboBox(); + this.cbAppHoverBorder = new System.Windows.Forms.ComboBox(); + this.cbAppHoverImage = new System.Windows.Forms.ComboBox(); + this.cbLoadingDot4 = new System.Windows.Forms.ComboBox(); + this.cbLoadingDot2 = new System.Windows.Forms.ComboBox(); + this.tableDesign.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numAppListX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppListY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numWindowRadius)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numWindowBorder)).BeginInit(); + this.SuspendLayout(); + // + // tableDesign + // + this.tableDesign.ColumnCount = 17; + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 10F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 10F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 10F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 10F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 10F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 10F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 130F)); + this.tableDesign.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableDesign.Controls.Add(this.label18, 1, 7); + this.tableDesign.Controls.Add(this.label17, 13, 8); + this.tableDesign.Controls.Add(this.label16, 11, 8); + this.tableDesign.Controls.Add(this.numAppListX, 3, 6); + this.tableDesign.Controls.Add(this.label13, 1, 6); + this.tableDesign.Controls.Add(this.label12, 15, 3); + this.tableDesign.Controls.Add(this.label11, 1, 2); + this.tableDesign.Controls.Add(this.label10, 1, 5); + this.tableDesign.Controls.Add(this.label27, 7, 3); + this.tableDesign.Controls.Add(this.label9, 3, 3); + this.tableDesign.Controls.Add(this.label3, 1, 4); + this.tableDesign.Controls.Add(this.label5, 11, 3); + this.tableDesign.Controls.Add(this.label6, 13, 3); + this.tableDesign.Controls.Add(this.label4, 7, 7); + this.tableDesign.Controls.Add(this.label1, 7, 9); + this.tableDesign.Controls.Add(this.label2, 7, 10); + this.tableDesign.Controls.Add(this.label7, 9, 3); + this.tableDesign.Controls.Add(this.cbWindowTitlebarColor, 15, 4); + this.tableDesign.Controls.Add(this.cbWindowBorderColor, 13, 4); + this.tableDesign.Controls.Add(this.cbWindowActionColor, 9, 4); + this.tableDesign.Controls.Add(this.cbWindowBackColor, 11, 4); + this.tableDesign.Controls.Add(this.cbGroupBackColor, 11, 5); + this.tableDesign.Controls.Add(this.cbGroupBorderColor, 13, 5); + this.tableDesign.Controls.Add(this.cbGroupTitlebarColor, 15, 5); + this.tableDesign.Controls.Add(this.cbGroupActionColor, 9, 5); + this.tableDesign.Controls.Add(this.label8, 1, 1); + this.tableDesign.Controls.Add(this.numAppListY, 5, 6); + this.tableDesign.Controls.Add(this.cbFontFamily, 3, 1); + this.tableDesign.Controls.Add(this.numWindowRadius, 7, 4); + this.tableDesign.Controls.Add(this.numWindowBorder, 3, 4); + this.tableDesign.Controls.Add(this.cbAppDefaultForeColor, 9, 9); + this.tableDesign.Controls.Add(this.cbAppDefaultBackColor, 11, 9); + this.tableDesign.Controls.Add(this.cbAppDefaultBorder, 13, 9); + this.tableDesign.Controls.Add(this.cbAppDefaultImage, 15, 9); + this.tableDesign.Controls.Add(this.label14, 9, 8); + this.tableDesign.Controls.Add(this.label15, 15, 8); + this.tableDesign.Controls.Add(this.abtnVerwerfen, 13, 12); + this.tableDesign.Controls.Add(this.abtnAnwenden, 15, 12); + this.tableDesign.Controls.Add(this.cbListBorderColor, 13, 6); + this.tableDesign.Controls.Add(this.cbLoadingDot3, 3, 9); + this.tableDesign.Controls.Add(this.label19, 1, 8); + this.tableDesign.Controls.Add(this.cbLoadingDot1, 1, 9); + this.tableDesign.Controls.Add(this.label20, 3, 8); + this.tableDesign.Controls.Add(this.label22, 3, 10); + this.tableDesign.Controls.Add(this.label21, 1, 10); + this.tableDesign.Controls.Add(this.cbAppHoverForeColor, 9, 10); + this.tableDesign.Controls.Add(this.cbAppHoverBackColor, 11, 10); + this.tableDesign.Controls.Add(this.cbAppHoverBorder, 13, 10); + this.tableDesign.Controls.Add(this.cbAppHoverImage, 15, 10); + this.tableDesign.Controls.Add(this.cbLoadingDot4, 3, 11); + this.tableDesign.Controls.Add(this.cbLoadingDot2, 1, 11); + this.tableDesign.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableDesign.Location = new System.Drawing.Point(0, 0); + this.tableDesign.Name = "tableDesign"; + this.tableDesign.RowCount = 14; + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableDesign.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableDesign.Size = new System.Drawing.Size(985, 377); + this.tableDesign.TabIndex = 11; + // + // label18 + // + this.label18.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableDesign.SetColumnSpan(this.label18, 5); + this.label18.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label18.Location = new System.Drawing.Point(12, 186); + this.label18.Margin = new System.Windows.Forms.Padding(0); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(260, 25); + this.label18.TabIndex = 107; + this.label18.Text = "Animation (Laden)"; + this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Dock = System.Windows.Forms.DockStyle.Fill; + this.label17.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label17.Location = new System.Drawing.Point(702, 211); + this.label17.Margin = new System.Windows.Forms.Padding(0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(130, 30); + this.label17.TabIndex = 105; + this.label17.Text = "Rahmen"; + this.label17.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Dock = System.Windows.Forms.DockStyle.Fill; + this.label16.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label16.Location = new System.Drawing.Point(562, 211); + this.label16.Margin = new System.Windows.Forms.Padding(0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(130, 30); + this.label16.TabIndex = 104; + this.label16.Text = "Hintergrund"; + this.label16.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // numAppListX + // + this.numAppListX.Anchor = System.Windows.Forms.AnchorStyles.None; + this.numAppListX.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numAppListX.Location = new System.Drawing.Point(172, 161); + this.numAppListX.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.numAppListX.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numAppListX.Name = "numAppListX"; + this.numAppListX.Size = new System.Drawing.Size(30, 20); + this.numAppListX.TabIndex = 89; + this.numAppListX.ValueChanged += new System.EventHandler(this.numAppListX_ValueChanged); + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Dock = System.Windows.Forms.DockStyle.Fill; + this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label13.Location = new System.Drawing.Point(12, 156); + this.label13.Margin = new System.Windows.Forms.Padding(0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(130, 30); + this.label13.TabIndex = 88; + this.label13.Text = "App-Listen (X,Y)"; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Dock = System.Windows.Forms.DockStyle.Fill; + this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label12.Location = new System.Drawing.Point(842, 71); + this.label12.Margin = new System.Windows.Forms.Padding(0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(130, 25); + this.label12.TabIndex = 82; + this.label12.Text = "Titelleiste"; + this.label12.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label11 + // + this.label11.AutoSize = true; + this.tableDesign.SetColumnSpan(this.label11, 15); + this.label11.Dock = System.Windows.Forms.DockStyle.Fill; + this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label11.Location = new System.Drawing.Point(12, 46); + this.label11.Margin = new System.Windows.Forms.Padding(0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(960, 25); + this.label11.TabIndex = 81; + this.label11.Text = "Fenster"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Dock = System.Windows.Forms.DockStyle.Fill; + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label10.Location = new System.Drawing.Point(12, 126); + this.label10.Margin = new System.Windows.Forms.Padding(0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(130, 30); + this.label10.TabIndex = 80; + this.label10.Text = "Gruppenfenster"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Dock = System.Windows.Forms.DockStyle.Fill; + this.label27.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label27.Location = new System.Drawing.Point(282, 71); + this.label27.Margin = new System.Windows.Forms.Padding(0); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(130, 25); + this.label27.TabIndex = 65; + this.label27.Text = "Abrundung"; + this.label27.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label9 + // + this.label9.AutoSize = true; + this.tableDesign.SetColumnSpan(this.label9, 3); + this.label9.Dock = System.Windows.Forms.DockStyle.Fill; + this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.Location = new System.Drawing.Point(162, 71); + this.label9.Margin = new System.Windows.Forms.Padding(0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(110, 25); + this.label9.TabIndex = 74; + this.label9.Text = "Rahmenbreite"; + this.label9.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(12, 96); + this.label3.Margin = new System.Windows.Forms.Padding(0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(130, 30); + this.label3.TabIndex = 13; + this.label3.Text = "Hauptfenster"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Dock = System.Windows.Forms.DockStyle.Fill; + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(562, 71); + this.label5.Margin = new System.Windows.Forms.Padding(0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(130, 25); + this.label5.TabIndex = 66; + this.label5.Text = "Hintergrund"; + this.label5.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Dock = System.Windows.Forms.DockStyle.Fill; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.Location = new System.Drawing.Point(702, 71); + this.label6.Margin = new System.Windows.Forms.Padding(0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(130, 25); + this.label6.TabIndex = 67; + this.label6.Text = "Rahmen"; + this.label6.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.tableDesign.SetColumnSpan(this.label4, 9); + this.label4.Dock = System.Windows.Forms.DockStyle.Fill; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(282, 186); + this.label4.Margin = new System.Windows.Forms.Padding(0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(690, 25); + this.label4.TabIndex = 16; + this.label4.Text = "Apps"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(282, 241); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(130, 30); + this.label1.TabIndex = 14; + this.label1.Text = "Normal"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(282, 271); + this.label2.Margin = new System.Windows.Forms.Padding(0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(130, 30); + this.label2.TabIndex = 15; + this.label2.Text = "Maus drauf"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Dock = System.Windows.Forms.DockStyle.Fill; + this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label7.Location = new System.Drawing.Point(422, 71); + this.label7.Margin = new System.Windows.Forms.Padding(0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(130, 25); + this.label7.TabIndex = 68; + this.label7.Text = "Aktionsfarbe"; + this.label7.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // cbWindowTitlebarColor + // + this.cbWindowTitlebarColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbWindowTitlebarColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbWindowTitlebarColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbWindowTitlebarColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbWindowTitlebarColor.Location = new System.Drawing.Point(857, 100); + this.cbWindowTitlebarColor.Margin = new System.Windows.Forms.Padding(0); + this.cbWindowTitlebarColor.Name = "cbWindowTitlebarColor"; + this.cbWindowTitlebarColor.Size = new System.Drawing.Size(100, 21); + this.cbWindowTitlebarColor.TabIndex = 83; + // + // cbWindowBorderColor + // + this.cbWindowBorderColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbWindowBorderColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbWindowBorderColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbWindowBorderColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbWindowBorderColor.Location = new System.Drawing.Point(717, 100); + this.cbWindowBorderColor.Margin = new System.Windows.Forms.Padding(0); + this.cbWindowBorderColor.Name = "cbWindowBorderColor"; + this.cbWindowBorderColor.Size = new System.Drawing.Size(100, 21); + this.cbWindowBorderColor.TabIndex = 78; + // + // cbWindowActionColor + // + this.cbWindowActionColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbWindowActionColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbWindowActionColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbWindowActionColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbWindowActionColor.Location = new System.Drawing.Point(437, 100); + this.cbWindowActionColor.Margin = new System.Windows.Forms.Padding(0); + this.cbWindowActionColor.Name = "cbWindowActionColor"; + this.cbWindowActionColor.Size = new System.Drawing.Size(100, 21); + this.cbWindowActionColor.TabIndex = 79; + // + // cbWindowBackColor + // + this.cbWindowBackColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbWindowBackColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbWindowBackColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbWindowBackColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbWindowBackColor.Location = new System.Drawing.Point(577, 100); + this.cbWindowBackColor.Margin = new System.Windows.Forms.Padding(0); + this.cbWindowBackColor.Name = "cbWindowBackColor"; + this.cbWindowBackColor.Size = new System.Drawing.Size(100, 21); + this.cbWindowBackColor.TabIndex = 77; + // + // cbGroupBackColor + // + this.cbGroupBackColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbGroupBackColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbGroupBackColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbGroupBackColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbGroupBackColor.Location = new System.Drawing.Point(577, 130); + this.cbGroupBackColor.Margin = new System.Windows.Forms.Padding(0); + this.cbGroupBackColor.Name = "cbGroupBackColor"; + this.cbGroupBackColor.Size = new System.Drawing.Size(100, 21); + this.cbGroupBackColor.TabIndex = 84; + // + // cbGroupBorderColor + // + this.cbGroupBorderColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbGroupBorderColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbGroupBorderColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbGroupBorderColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbGroupBorderColor.Location = new System.Drawing.Point(717, 130); + this.cbGroupBorderColor.Margin = new System.Windows.Forms.Padding(0); + this.cbGroupBorderColor.Name = "cbGroupBorderColor"; + this.cbGroupBorderColor.Size = new System.Drawing.Size(100, 21); + this.cbGroupBorderColor.TabIndex = 85; + // + // cbGroupTitlebarColor + // + this.cbGroupTitlebarColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbGroupTitlebarColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbGroupTitlebarColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbGroupTitlebarColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbGroupTitlebarColor.Location = new System.Drawing.Point(857, 130); + this.cbGroupTitlebarColor.Margin = new System.Windows.Forms.Padding(0); + this.cbGroupTitlebarColor.Name = "cbGroupTitlebarColor"; + this.cbGroupTitlebarColor.Size = new System.Drawing.Size(100, 21); + this.cbGroupTitlebarColor.TabIndex = 86; + // + // cbGroupActionColor + // + this.cbGroupActionColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbGroupActionColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbGroupActionColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbGroupActionColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbGroupActionColor.Location = new System.Drawing.Point(437, 130); + this.cbGroupActionColor.Margin = new System.Windows.Forms.Padding(0); + this.cbGroupActionColor.Name = "cbGroupActionColor"; + this.cbGroupActionColor.Size = new System.Drawing.Size(100, 21); + this.cbGroupActionColor.TabIndex = 87; + // + // label8 + // + this.label8.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(83, 24); + this.label8.Margin = new System.Windows.Forms.Padding(3, 0, 10, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(49, 13); + this.label8.TabIndex = 70; + this.label8.Text = "Schriftart"; + // + // numAppListY + // + this.numAppListY.Anchor = System.Windows.Forms.AnchorStyles.None; + this.numAppListY.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numAppListY.Location = new System.Drawing.Point(232, 161); + this.numAppListY.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.numAppListY.Maximum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.numAppListY.Name = "numAppListY"; + this.numAppListY.Size = new System.Drawing.Size(30, 20); + this.numAppListY.TabIndex = 90; + this.numAppListY.ValueChanged += new System.EventHandler(this.numAppListY_ValueChanged); + // + // cbFontFamily + // + this.cbFontFamily.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.cbFontFamily.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.cbFontFamily.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.cbFontFamily.BackColor = System.Drawing.SystemColors.ScrollBar; + this.tableDesign.SetColumnSpan(this.cbFontFamily, 5); + this.cbFontFamily.DropDownHeight = 150; + this.cbFontFamily.DropDownWidth = 214; + this.cbFontFamily.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbFontFamily.FormattingEnabled = true; + this.cbFontFamily.IntegralHeight = false; + this.cbFontFamily.ItemHeight = 13; + this.cbFontFamily.Location = new System.Drawing.Point(162, 20); + this.cbFontFamily.Margin = new System.Windows.Forms.Padding(0); + this.cbFontFamily.Name = "cbFontFamily"; + this.cbFontFamily.Size = new System.Drawing.Size(250, 21); + this.cbFontFamily.TabIndex = 76; + // + // numWindowRadius + // + this.numWindowRadius.Anchor = System.Windows.Forms.AnchorStyles.None; + this.numWindowRadius.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numWindowRadius.Location = new System.Drawing.Point(324, 116); + this.numWindowRadius.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.numWindowRadius.Maximum = new decimal(new int[] { + 15, + 0, + 0, + 0}); + this.numWindowRadius.Name = "numWindowRadius"; + this.tableDesign.SetRowSpan(this.numWindowRadius, 2); + this.numWindowRadius.Size = new System.Drawing.Size(45, 20); + this.numWindowRadius.TabIndex = 64; + this.numWindowRadius.ValueChanged += new System.EventHandler(this.numWindowRadius_ValueChanged); + // + // numWindowBorder + // + this.numWindowBorder.Anchor = System.Windows.Forms.AnchorStyles.None; + this.numWindowBorder.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tableDesign.SetColumnSpan(this.numWindowBorder, 3); + this.numWindowBorder.Location = new System.Drawing.Point(194, 116); + this.numWindowBorder.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.numWindowBorder.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numWindowBorder.Name = "numWindowBorder"; + this.tableDesign.SetRowSpan(this.numWindowBorder, 2); + this.numWindowBorder.Size = new System.Drawing.Size(45, 20); + this.numWindowBorder.TabIndex = 73; + this.numWindowBorder.ValueChanged += new System.EventHandler(this.numWindowBorder_ValueChanged); + // + // cbAppDefaultForeColor + // + this.cbAppDefaultForeColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppDefaultForeColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppDefaultForeColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppDefaultForeColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppDefaultForeColor.Location = new System.Drawing.Point(437, 245); + this.cbAppDefaultForeColor.Margin = new System.Windows.Forms.Padding(0); + this.cbAppDefaultForeColor.Name = "cbAppDefaultForeColor"; + this.cbAppDefaultForeColor.Size = new System.Drawing.Size(100, 21); + this.cbAppDefaultForeColor.TabIndex = 91; + // + // cbAppDefaultBackColor + // + this.cbAppDefaultBackColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppDefaultBackColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppDefaultBackColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppDefaultBackColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppDefaultBackColor.Location = new System.Drawing.Point(577, 245); + this.cbAppDefaultBackColor.Margin = new System.Windows.Forms.Padding(0); + this.cbAppDefaultBackColor.Name = "cbAppDefaultBackColor"; + this.cbAppDefaultBackColor.Size = new System.Drawing.Size(100, 21); + this.cbAppDefaultBackColor.TabIndex = 93; + // + // cbAppDefaultBorder + // + this.cbAppDefaultBorder.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppDefaultBorder.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppDefaultBorder.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppDefaultBorder.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppDefaultBorder.Location = new System.Drawing.Point(717, 245); + this.cbAppDefaultBorder.Margin = new System.Windows.Forms.Padding(0); + this.cbAppDefaultBorder.Name = "cbAppDefaultBorder"; + this.cbAppDefaultBorder.Size = new System.Drawing.Size(100, 21); + this.cbAppDefaultBorder.TabIndex = 95; + // + // cbAppDefaultImage + // + this.cbAppDefaultImage.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppDefaultImage.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppDefaultImage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppDefaultImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppDefaultImage.Location = new System.Drawing.Point(857, 245); + this.cbAppDefaultImage.Margin = new System.Windows.Forms.Padding(0); + this.cbAppDefaultImage.Name = "cbAppDefaultImage"; + this.cbAppDefaultImage.Size = new System.Drawing.Size(100, 21); + this.cbAppDefaultImage.TabIndex = 97; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Dock = System.Windows.Forms.DockStyle.Fill; + this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label14.Location = new System.Drawing.Point(422, 211); + this.label14.Margin = new System.Windows.Forms.Padding(0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(130, 30); + this.label14.TabIndex = 99; + this.label14.Text = "Schrift"; + this.label14.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Dock = System.Windows.Forms.DockStyle.Fill; + this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label15.Location = new System.Drawing.Point(842, 211); + this.label15.Margin = new System.Windows.Forms.Padding(0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(130, 30); + this.label15.TabIndex = 100; + this.label15.Text = "Symbol"; + this.label15.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // abtnVerwerfen + // + this.abtnVerwerfen.Anchor = System.Windows.Forms.AnchorStyles.None; + this.abtnVerwerfen.AutoSizeWidth = false; + this.abtnVerwerfen.Image = null; + this.abtnVerwerfen.ImageBackColor = System.Drawing.Color.Empty; + this.abtnVerwerfen.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnVerwerfen.Location = new System.Drawing.Point(717, 333); + this.abtnVerwerfen.Margin = new System.Windows.Forms.Padding(0); + this.abtnVerwerfen.Name = "abtnVerwerfen"; + this.abtnVerwerfen.Size = new System.Drawing.Size(100, 25); + this.abtnVerwerfen.TabIndex = 103; + this.abtnVerwerfen.Text = "Verwerfen"; + this.abtnVerwerfen.TextBounds = new System.Drawing.Rectangle(1, 1, 98, 23); + this.abtnVerwerfen.ToolTipText = ""; + this.abtnVerwerfen.Click += new System.EventHandler(this.abtnVerwerfen_Click); + // + // abtnAnwenden + // + this.abtnAnwenden.Anchor = System.Windows.Forms.AnchorStyles.None; + this.abtnAnwenden.AutoSizeWidth = false; + this.abtnAnwenden.Image = null; + this.abtnAnwenden.ImageBackColor = System.Drawing.Color.Empty; + this.abtnAnwenden.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnAnwenden.Location = new System.Drawing.Point(857, 333); + this.abtnAnwenden.Margin = new System.Windows.Forms.Padding(0); + this.abtnAnwenden.Name = "abtnAnwenden"; + this.abtnAnwenden.Size = new System.Drawing.Size(100, 25); + this.abtnAnwenden.TabIndex = 101; + this.abtnAnwenden.Text = "Anwenden"; + this.abtnAnwenden.TextBounds = new System.Drawing.Rectangle(1, 1, 98, 23); + this.abtnAnwenden.ToolTipText = ""; + this.abtnAnwenden.Click += new System.EventHandler(this.abtnAnwenden_Click); + // + // cbListBorderColor + // + this.cbListBorderColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbListBorderColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbListBorderColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbListBorderColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbListBorderColor.Location = new System.Drawing.Point(717, 160); + this.cbListBorderColor.Margin = new System.Windows.Forms.Padding(0); + this.cbListBorderColor.Name = "cbListBorderColor"; + this.cbListBorderColor.Size = new System.Drawing.Size(100, 21); + this.cbListBorderColor.TabIndex = 106; + // + // cbLoadingDot3 + // + this.cbLoadingDot3.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbLoadingDot3.BackColor = System.Drawing.SystemColors.ScrollBar; + this.tableDesign.SetColumnSpan(this.cbLoadingDot3, 3); + this.cbLoadingDot3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbLoadingDot3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbLoadingDot3.Location = new System.Drawing.Point(167, 245); + this.cbLoadingDot3.Margin = new System.Windows.Forms.Padding(0); + this.cbLoadingDot3.Name = "cbLoadingDot3"; + this.cbLoadingDot3.Size = new System.Drawing.Size(100, 21); + this.cbLoadingDot3.TabIndex = 108; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Dock = System.Windows.Forms.DockStyle.Fill; + this.label19.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label19.Location = new System.Drawing.Point(12, 211); + this.label19.Margin = new System.Windows.Forms.Padding(0); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(130, 30); + this.label19.TabIndex = 112; + this.label19.Text = "Punkt 1"; + this.label19.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // cbLoadingDot1 + // + this.cbLoadingDot1.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbLoadingDot1.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbLoadingDot1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbLoadingDot1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbLoadingDot1.Location = new System.Drawing.Point(27, 245); + this.cbLoadingDot1.Margin = new System.Windows.Forms.Padding(0); + this.cbLoadingDot1.Name = "cbLoadingDot1"; + this.cbLoadingDot1.Size = new System.Drawing.Size(100, 21); + this.cbLoadingDot1.TabIndex = 111; + // + // label20 + // + this.label20.AutoSize = true; + this.tableDesign.SetColumnSpan(this.label20, 3); + this.label20.Dock = System.Windows.Forms.DockStyle.Fill; + this.label20.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label20.Location = new System.Drawing.Point(162, 211); + this.label20.Margin = new System.Windows.Forms.Padding(0); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(110, 30); + this.label20.TabIndex = 113; + this.label20.Text = "Punkt 3"; + this.label20.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label22 + // + this.label22.AutoSize = true; + this.tableDesign.SetColumnSpan(this.label22, 3); + this.label22.Dock = System.Windows.Forms.DockStyle.Fill; + this.label22.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label22.Location = new System.Drawing.Point(162, 271); + this.label22.Margin = new System.Windows.Forms.Padding(0); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(110, 30); + this.label22.TabIndex = 115; + this.label22.Text = "Punkt 4"; + this.label22.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Dock = System.Windows.Forms.DockStyle.Fill; + this.label21.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label21.Location = new System.Drawing.Point(12, 271); + this.label21.Margin = new System.Windows.Forms.Padding(0); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(130, 30); + this.label21.TabIndex = 114; + this.label21.Text = "Punkt 2"; + this.label21.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // cbAppHoverForeColor + // + this.cbAppHoverForeColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppHoverForeColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppHoverForeColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppHoverForeColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppHoverForeColor.Location = new System.Drawing.Point(437, 275); + this.cbAppHoverForeColor.Margin = new System.Windows.Forms.Padding(0); + this.cbAppHoverForeColor.Name = "cbAppHoverForeColor"; + this.cbAppHoverForeColor.Size = new System.Drawing.Size(100, 21); + this.cbAppHoverForeColor.TabIndex = 92; + // + // cbAppHoverBackColor + // + this.cbAppHoverBackColor.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppHoverBackColor.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppHoverBackColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppHoverBackColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppHoverBackColor.Location = new System.Drawing.Point(577, 275); + this.cbAppHoverBackColor.Margin = new System.Windows.Forms.Padding(0); + this.cbAppHoverBackColor.Name = "cbAppHoverBackColor"; + this.cbAppHoverBackColor.Size = new System.Drawing.Size(100, 21); + this.cbAppHoverBackColor.TabIndex = 94; + // + // cbAppHoverBorder + // + this.cbAppHoverBorder.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppHoverBorder.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppHoverBorder.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppHoverBorder.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppHoverBorder.Location = new System.Drawing.Point(717, 275); + this.cbAppHoverBorder.Margin = new System.Windows.Forms.Padding(0); + this.cbAppHoverBorder.Name = "cbAppHoverBorder"; + this.cbAppHoverBorder.Size = new System.Drawing.Size(100, 21); + this.cbAppHoverBorder.TabIndex = 96; + // + // cbAppHoverImage + // + this.cbAppHoverImage.Anchor = System.Windows.Forms.AnchorStyles.None; + this.cbAppHoverImage.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbAppHoverImage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbAppHoverImage.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbAppHoverImage.Location = new System.Drawing.Point(857, 275); + this.cbAppHoverImage.Margin = new System.Windows.Forms.Padding(0); + this.cbAppHoverImage.Name = "cbAppHoverImage"; + this.cbAppHoverImage.Size = new System.Drawing.Size(100, 21); + this.cbAppHoverImage.TabIndex = 98; + // + // cbLoadingDot4 + // + this.cbLoadingDot4.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.cbLoadingDot4.BackColor = System.Drawing.SystemColors.ScrollBar; + this.tableDesign.SetColumnSpan(this.cbLoadingDot4, 3); + this.cbLoadingDot4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbLoadingDot4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbLoadingDot4.Location = new System.Drawing.Point(167, 304); + this.cbLoadingDot4.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0); + this.cbLoadingDot4.Name = "cbLoadingDot4"; + this.tableDesign.SetRowSpan(this.cbLoadingDot4, 2); + this.cbLoadingDot4.Size = new System.Drawing.Size(100, 21); + this.cbLoadingDot4.TabIndex = 110; + // + // cbLoadingDot2 + // + this.cbLoadingDot2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.cbLoadingDot2.BackColor = System.Drawing.SystemColors.ScrollBar; + this.cbLoadingDot2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbLoadingDot2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cbLoadingDot2.Location = new System.Drawing.Point(27, 304); + this.cbLoadingDot2.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0); + this.cbLoadingDot2.Name = "cbLoadingDot2"; + this.tableDesign.SetRowSpan(this.cbLoadingDot2, 2); + this.cbLoadingDot2.Size = new System.Drawing.Size(100, 21); + this.cbLoadingDot2.TabIndex = 109; + // + // ucAdminDesigns + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Controls.Add(this.tableDesign); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "ucAdminDesigns"; + this.Size = new System.Drawing.Size(985, 377); + this.tableDesign.ResumeLayout(false); + this.tableDesign.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numAppListX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAppListY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numWindowRadius)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numWindowBorder)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.TableLayoutPanel tableDesign; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.NumericEx numWindowRadius; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.NumericEx numWindowBorder; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.ComboBox cbFontFamily; + private System.Windows.Forms.ComboBox cbWindowBackColor; + private System.Windows.Forms.ComboBox cbWindowBorderColor; + private System.Windows.Forms.ComboBox cbWindowActionColor; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.ComboBox cbWindowTitlebarColor; + private System.Windows.Forms.ComboBox cbGroupBackColor; + private System.Windows.Forms.ComboBox cbGroupBorderColor; + private System.Windows.Forms.ComboBox cbGroupTitlebarColor; + private System.Windows.Forms.ComboBox cbGroupActionColor; + private System.Windows.Forms.NumericEx numAppListX; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.NumericEx numAppListY; + private System.Windows.Forms.ComboBox cbAppDefaultForeColor; + private System.Windows.Forms.ComboBox cbAppHoverForeColor; + private System.Windows.Forms.ComboBox cbAppDefaultBackColor; + private System.Windows.Forms.ComboBox cbAppHoverBackColor; + private System.Windows.Forms.ComboBox cbAppDefaultBorder; + private System.Windows.Forms.ComboBox cbAppHoverBorder; + private System.Windows.Forms.ComboBox cbAppDefaultImage; + private System.Windows.Forms.ComboBox cbAppHoverImage; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.AnimationButton abtnVerwerfen; + private System.Windows.Forms.AnimationButton abtnAnwenden; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.ComboBox cbListBorderColor; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.ComboBox cbLoadingDot3; + private System.Windows.Forms.ComboBox cbLoadingDot1; + private System.Windows.Forms.ComboBox cbLoadingDot2; + private System.Windows.Forms.ComboBox cbLoadingDot4; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.Label label21; + } +} diff --git a/GFATask/UserControls/ucAdminDesigns.cs b/GFATask/UserControls/ucAdminDesigns.cs new file mode 100644 index 0000000..cbf3642 --- /dev/null +++ b/GFATask/UserControls/ucAdminDesigns.cs @@ -0,0 +1,512 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Text; +using System.Linq; +using System.Net.Mail; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + [Browsable(false), ToolboxItem(false)] + public partial class ucAdminDesigns : UserControl + { + private List FontFamilies { get => FontFamily.Families.Select(f => f.Name).OrderBy(f => f).ToList(); } + + private ColorDialog ColorDialog { get; set; } = new ColorDialog() { AllowFullOpen = true, AnyColor = true, FullOpen = true }; + + public List ControlChanges { get; } = new List(); + + + + private void DoFontFamily(object value) + { + Config.Main.FontFamily = value.ToString(); + typeof(Forms).GetProperties().ToList().ForEach(prop => + { + FormEx form = (FormEx)prop.GetValue(typeof(Forms)); + Font font = new Font((string)value, Config.User.Window.FontSize); + form.Font = font; + Accumulations.Controls(form).ToList().ForEach(ctl => ctl.Font = font); + }); + Win32API.SendMessage(Forms.Main.Handle, (int)WM.ENTERSIZEMOVE, 0, 0); + Win32API.SendMessage(Forms.Main.Handle, (int)WM.EXITSIZEMOVE, 0, 0); + } + + + private void DoWindowRadius(object value) + { + Config.Main.Sizes.Window.Radius = int.Parse(value.ToString()); + } + + + private void DoListBorderX(object value) + { + Config.Main.Sizes.List.Border = new Point(int.Parse(value.ToString()), Config.Main.Sizes.List.Border.Y); + } + + private void DoListBorderY(object value) + { + Config.Main.Sizes.List.Border = new Point(Config.Main.Sizes.List.Border.X, int.Parse(value.ToString())); + } + + private void CreateGeneralBindings() + { + cbFontFamily.DrawItem += LbFontFamily_DrawItem; + cbFontFamily.Items.AddRange(FontFamilies.ToArray()); + + cbFontFamily.SelectedItem = Config.Main.FontFamily; + cbFontFamily.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main, "FontFamily", (sender as ComboBox), (sender as ComboBox).SelectedItem, this.DoFontFamily); }; + } + + private void LbFontFamily_DrawItem(object sender, DrawItemEventArgs e) + { + string fontfamilyitem = (string)(sender as ListBox).Items[e.Index]; + e.DrawBackground(); + e.DrawFocusRectangle(); + e.Graphics.DrawString(fontfamilyitem, new Font(fontfamilyitem, Config.User.Window.FontSize), new SolidBrush((sender as ListBox).ForeColor), e.Bounds); + } + + + /// + /// Fügt der "Zurücksetzen"-Auflistung das Steuerelement hinzu, damit der alte Wert wiederhergestellt werden kann + /// + /// + private void AddResetButton(Control control) + { + if (!this.ControlChanges.Select(change => change.Control).Contains(control)) + { + TableControlChange change = new TableControlChange(tableDesign, control.Location, 25); + change.Click += (sender, e) => + { + XObjects.PreChanging.Reset(change.Control); + (sender as TableControlChange).Clear(); + this.ControlChanges.Remove(change); + tableDesign.Invalidate(); + }; + this.ControlChanges.Add(change); + } + } + + + private void CreateSizeBindings() + { + numWindowRadius.Value = (decimal)Config.Main.Sizes.Window.Radius; + numWindowRadius.ValueChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Sizes.Window, "Radius", (sender as NumericEx), (int)(sender as NumericEx).Value, this.DoWindowRadius); }; + + numWindowBorder.Value = (decimal)Config.Main.Sizes.Window.Border; + numWindowBorder.ValueChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Sizes.Window, "Border", (sender as NumericEx), (int)(sender as NumericEx).Value, this.DoWindowBorder); }; + + numAppListX.Value = (decimal)Config.Main.Sizes.List.Border.X; + numAppListX.ValueChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Sizes.List.Border, "X", (sender as NumericEx), (int)(sender as NumericEx).Value, this.DoListBorderX); }; + + numAppListY.Value = (decimal)Config.Main.Sizes.List.Border.Y; + numAppListY.ValueChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Sizes.List.Border, "Y", (sender as NumericEx), (int)(sender as NumericEx).Value, this.DoListBorderY); }; + } + + + public void DoWindowBackColor(object value) + { + Config.Main.Colors.Window.BackColor = (Color)value; + this.SetNewDesign(); + } + + private void DoWindowBorderColor(object value) + { + Config.Main.Colors.Window.Border = (Color)value; + this.SetNewDesign(); + } + + private void DoWindowAction(object value) + { + Config.Main.Colors.Window.Action = (Color)value; + this.SetNewDesign(); + } + + private void DoWindowTitlebarBackColor(object value) + { + Config.Main.Colors.Window.TitlebarBackColor = (Color)value; + this.SetNewDesign(); + } + + private void DoGroupAction(object value) + { + Config.Main.Colors.Window.Action = (Color)value; + this.SetNewDesign(); + } + private void DoGroupBorderColor(object value) + { + Config.Main.Colors.Window.Border = (Color)value; + this.SetNewDesign(); + } + private void DoGroupBackColor(object value) + { + Config.Main.Colors.Window.BackColor = (Color)value; + this.SetNewDesign(); + } + private void DoGroupTitlebarBackColor(object value) + { + Config.Main.Colors.Window.TitlebarBackColor = (Color)value; + this.SetNewDesign(); + } + + private void DoListBorderColor(object value) + { + Config.Main.Colors.List.Border = (Color)value; + this.SetNewDesign(); + } + + private void DoAppDefaultBackColor(object value) + { + Config.Main.Colors.Apps.Default.BackColor = (Color)value; + this.SetNewDesign(); + } + + private void DoAppDefaultBorderColor(object value) + { + Config.Main.Colors.Apps.Default.Border = (Color)value; + this.SetNewDesign(); + } + + private void DoAppDefaultForeColor(object value) + { + Config.Main.Colors.Apps.Default.ForeColor = (Color)value; + } + + private void DoAppDefaultImage(object value) + { + Config.Main.Colors.Apps.Default.Image = (Color)value; + this.SetNewDesign(); + } + + private void DoAppHoverBackColor(object value) + { + Config.Main.Colors.Apps.Hover.BackColor = (Color)value; + this.SetNewDesign(); + } + + private void DoAppHoverBorderColor(object value) + { + Config.Main.Colors.Apps.Hover.Border = (Color)value; + this.SetNewDesign(); + } + + private void DoAppHoverForeColor(object value) + { + Config.Main.Colors.Apps.Hover.ForeColor = (Color)value; + this.SetNewDesign(); + } + + private void DoAppHoverImage(object value) + { + Config.Main.Colors.Apps.Hover.Image = (Color)value; + this.SetNewDesign(); + } + + private void DoWindowBorder(object value) + { + Config.Main.Sizes.Window.Border = int.Parse(value.ToString()); + this.SetWindowBorder(); + this.SetNewDesign(); + } + + private void DoLoadingAnimationDot1(object value) + { + Config.Main.Colors.LoadingAnimation.Dot1 = (Color)value; + XObjects.LoadingPanel.MovingPoints[0].Fill = Config.Main.Colors.LoadingAnimation.Dot1; + this.SetNewDesign(); + } + + private void DoLoadingAnimationDot2(object value) + { + Config.Main.Colors.LoadingAnimation.Dot2 = (Color)value; + XObjects.LoadingPanel.MovingPoints[1].Fill = Config.Main.Colors.LoadingAnimation.Dot2; + this.SetNewDesign(); + } + + private void DoLoadingAnimationDot3(object value) + { + Config.Main.Colors.LoadingAnimation.Dot3 = (Color)value; + XObjects.LoadingPanel.MovingPoints[2].Fill = Config.Main.Colors.LoadingAnimation.Dot3; + this.SetNewDesign(); + } + + private void DoLoadingAnimationDot4(object value) + { + Config.Main.Colors.LoadingAnimation.Dot4 = (Color)value; + XObjects.LoadingPanel.MovingPoints[3].Fill = Config.Main.Colors.LoadingAnimation.Dot4; + this.SetNewDesign(); + } + + + + + private void CreateColorBindings() + { + this.DesignComboBoxes(cbWindowBackColor, Config.Main.Colors.Window.BackColor); + cbWindowBackColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Window, "BackColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoWindowBackColor); }; + + this.DesignComboBoxes(cbWindowBorderColor, Config.Main.Colors.Window.Border); + cbWindowBorderColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Window, "Border", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoWindowBorderColor); }; + + this.DesignComboBoxes(cbWindowActionColor, Config.Main.Colors.Window.Action); + cbWindowActionColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Window, "Action", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoWindowAction); }; + + this.DesignComboBoxes(cbWindowTitlebarColor, Config.Main.Colors.Window.TitlebarBackColor); + cbWindowTitlebarColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Window, "TitlebarBackColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoWindowTitlebarBackColor); }; + + this.DesignComboBoxes(cbGroupActionColor, Config.Main.Colors.GroupWindow.Action); + cbGroupActionColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.GroupWindow, "Action", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoGroupAction); }; + + this.DesignComboBoxes(cbGroupBackColor, Config.Main.Colors.GroupWindow.BackColor); + cbGroupBackColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.GroupWindow, "BackColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoGroupBackColor); }; + + this.DesignComboBoxes(cbGroupBorderColor, Config.Main.Colors.GroupWindow.Border); + cbGroupBorderColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.GroupWindow, "Border", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoGroupBorderColor); }; + + this.DesignComboBoxes(cbGroupTitlebarColor, Config.Main.Colors.GroupWindow.TitlebarBackColor); + cbGroupTitlebarColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.GroupWindow, "TitlebarBackColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoGroupTitlebarBackColor); }; + + this.DesignComboBoxes(cbListBorderColor, Config.Main.Colors.List.Border); + cbListBorderColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.List, "Border", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoListBorderColor); }; + + this.DesignComboBoxes(cbAppDefaultBackColor, Config.Main.Colors.Apps.Default.BackColor); + cbAppDefaultBackColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Default, "BackColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppDefaultBackColor); }; + + this.DesignComboBoxes(cbAppDefaultForeColor, Config.Main.Colors.Apps.Default.ForeColor); + cbAppDefaultForeColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Default, "ForeColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppDefaultForeColor); }; + + this.DesignComboBoxes(cbAppDefaultBorder, Config.Main.Colors.Apps.Default.Border); + cbAppDefaultBorder.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Default, "Border", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppDefaultBorderColor); }; + + this.DesignComboBoxes(cbAppDefaultImage, Config.Main.Colors.Apps.Default.Image); + cbAppDefaultImage.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Default, "Image", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppDefaultImage); }; + + this.DesignComboBoxes(cbAppHoverBackColor, Config.Main.Colors.Apps.Hover.BackColor); + cbAppHoverBackColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Hover, "BackColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppHoverBackColor); }; + + this.DesignComboBoxes(cbAppHoverForeColor, Config.Main.Colors.Apps.Hover.ForeColor); + cbAppHoverForeColor.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Hover, "ForeColor", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppHoverForeColor); }; + + this.DesignComboBoxes(cbAppHoverBorder, Config.Main.Colors.Apps.Hover.Border); + cbAppHoverBorder.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Hover, "Border", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppHoverBorderColor); }; + + this.DesignComboBoxes(cbAppHoverImage, Config.Main.Colors.Apps.Hover.Image); + cbAppHoverImage.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.Apps.Hover, "Image", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoAppHoverImage); }; + + this.DesignComboBoxes(cbLoadingDot1, Config.Main.Colors.LoadingAnimation.Dot1); + cbLoadingDot1.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.LoadingAnimation, "Dot1", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoLoadingAnimationDot1); }; + + this.DesignComboBoxes(cbLoadingDot2, Config.Main.Colors.LoadingAnimation.Dot2); + cbLoadingDot2.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.LoadingAnimation, "Dot2", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoLoadingAnimationDot2); }; + + this.DesignComboBoxes(cbLoadingDot3, Config.Main.Colors.LoadingAnimation.Dot3); + cbLoadingDot3.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.LoadingAnimation, "Dot3", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoLoadingAnimationDot3); }; + + this.DesignComboBoxes(cbLoadingDot4, Config.Main.Colors.LoadingAnimation.Dot4); + cbLoadingDot4.SelectedIndexChanged += (sender, e) => { if (this.Created) XObjects.PreChanging.Add(Config.Main.Colors.LoadingAnimation, "Dot4", (sender as ComboBox), ToColor((sender as ComboBox).SelectedItem.ToString()), this.DoLoadingAnimationDot4); }; + } + + + private Color ToColor(string comboboxitem) + { + int[] rgb = new int[] { int.Parse(comboboxitem.Split(';')[0]), int.Parse(comboboxitem.Split(';')[1]), int.Parse(comboboxitem.Split(';')[2]) }; + return Color.FromArgb(rgb[0], rgb[1], rgb[2]); + } + + private void DesignComboBoxes(ComboBox cb, Color color) + { + cb.BackColor = color; + cb.ForeColor = Coloring.GetReadableForeColor(cb.BackColor); + cb.Items.Add($"{color.R};{color.G};{color.B}"); + cb.SelectedIndex = 0; + cb.MouseClick += cbColor_MouseClick; + cb.SelectedIndexChanged += cbColor_SelectedIndexChanged; + } + + private void cbColor_SelectedIndexChanged(object sender, EventArgs e) + { + ComboBox _this = sender as ComboBox; + if (this.Created) + { + _this.BackColor = Color.FromArgb(int.Parse(_this.Text.Split(';')[0]), int.Parse(_this.Text.Split(';')[1]), int.Parse(_this.Text.Split(';')[2])); + _this.ForeColor = Coloring.GetReadableForeColor(_this.BackColor); + } + } + + private void cbColor_MouseClick(object sender, MouseEventArgs e) + { + ComboBox _this = sender as ComboBox; + ColorDialog.Color = _this.BackColor; + if (ColorDialog.ShowDialog() == DialogResult.OK) + { + _this.BackColor = ColorDialog.Color; + _this.ForeColor = Coloring.GetReadableForeColor(_this.BackColor); + _this.Items.Add($"{ColorDialog.Color.R};{ColorDialog.Color.G};{ColorDialog.Color.B}"); + _this.SelectedIndex = _this.Items.Count- 1; + } + } + + + public ucAdminDesigns() + { + InitializeComponent(); + + this.SetDefaultDesign(); + + this.CreateGeneralBindings(); + this.CreateSizeBindings(); + this.CreateColorBindings(); + + + XObjects.PreChanging.GetTemps(Accumulations.Controls(this)); + + + tableDesign.Controls.Cast().Where(ctl => ctl.GetType() != typeof(Label) && ctl.GetType() != typeof(AnimationButton)).ToList().ForEach(ctl => + { + if (typeof(NumericEx) == ctl.GetType()) + { + (ctl as NumericEx).ValueChanged += (s, evt) => + { + AddResetButton(ctl); + }; + } + else if (typeof(ComboBox) == ctl.GetType()) + { + (ctl as ComboBox).SelectedIndexChanged += (s, evt) => + { + AddResetButton(ctl); + }; + } + }); + + + label11.Paint += Designer.DrawHeaderLabel; + label4.Paint += Designer.DrawHeaderLabel; + label18.Paint += Designer.DrawHeaderLabel; + } + + + private void numWindowRadius_ValueChanged(object sender, EventArgs e) + { + if(this.Created) + { + typeof(Forms).GetProperties().ToList().ForEach(prop => + { + FormEx form = ((FormEx)prop.GetValue(typeof(Forms))); + + form.Radius = (int)numWindowRadius.Value; + if (form.Name == Forms.Main.Name) + ((FormMain)form).SetActionRegion(); + form.Invalidate(); + }); + } + } + + private void numWindowBorder_ValueChanged(object sender, EventArgs e) + { + if (this.Created) + { + this.SetWindowBorder(); + } + } + + public void SetNewDesign() + { + JSON.Save(JSONConfig.Main); + Config.Main = JSON.Read(Paths.MainConfig.FullName); + + XObjects.LoadingPanel.MovingPoints[0].Fill = Config.Main.Colors.LoadingAnimation.Dot1; + XObjects.LoadingPanel.MovingPoints[1].Fill = Config.Main.Colors.LoadingAnimation.Dot2; + XObjects.LoadingPanel.MovingPoints[2].Fill = Config.Main.Colors.LoadingAnimation.Dot3; + XObjects.LoadingPanel.MovingPoints[3].Fill = Config.Main.Colors.LoadingAnimation.Dot4; + + typeof(Forms).GetProperties().ToList().ForEach(prop => + { + FormEx form = ((FormEx)prop.GetValue(typeof(Forms))); + form.SetDefaultDesign(); + form.Invalidate(); + }); + } + + public void SetWindowBorder() + { + typeof(Forms).GetProperties().ToList().ForEach(prop => + { + FormEx form = ((FormEx)prop.GetValue(typeof(Forms))); + + form.BorderWidth = (int)numWindowBorder.Value; + if (form.Name == Forms.Main.Name) + { + ((FormMain)form).SetOpacityStep(); + ((FormMain)form).SetStartValue(); + } + form.Invalidate(); + }); + } + + + /// + /// Übernimmt alle vorläufigen Speicherungen in die JSON-Config + /// + /// Gibt die JSON-Config Datei an + private void SaveAll(JSONConfig json) + { + XObjects.PreChanging.CommitAll(); + this.ControlChanges.ForEach(change => change.Clear()); + this.ControlChanges.Clear(); + JSON.Save(json); + } + + + /// + /// Leert die vorläufigen Speicherungen aus der Auflistung + /// + private void ResetAll() + { + XObjects.PreChanging.ResetAll(); + this.ControlChanges.ForEach(change => change.Clear()); + this.ControlChanges.Clear(); + tableDesign.Invalidate(); + } + + private void abtnAnwenden_Click(object sender, EventArgs e) + { + this.SaveAll(JSONConfig.Main); + this.ResetAll(); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.MainConfig }); + } + + private void abtnVerwerfen_Click(object sender, EventArgs e) + { + this.ResetAll(); + } + + private void numAppListX_ValueChanged(object sender, EventArgs e) + { + XObjects.AllAppListPanels.ForEach(applist => + { + applist.Border = new Point(int.Parse(numAppListX.Value.ToString()), applist.Border.Y); + applist.Invalidate(true); + }); + } + + private void numAppListY_ValueChanged(object sender, EventArgs e) + { + XObjects.AllAppListPanels.ForEach(applist => + { + int bottom = applist.Padding.Bottom < int.Parse(numAppListY.Value.ToString()) ? int.Parse(numAppListY.Value.ToString()) : applist.Padding.Bottom; + applist.Padding = new Padding(applist.Padding.Left, applist.Padding.Top, applist.Padding.Right, bottom); + applist.Padding = new Padding(applist.Padding.Left, applist.Padding.Top, applist.Padding.Right, bottom); + applist.Border = new Point(applist.Border.X, int.Parse(numAppListY.Value.ToString())); + applist.Invalidate(true); + }); + } + } +} diff --git a/GFATask/UserControls/ucAdminDesigns.resx b/GFATask/UserControls/ucAdminDesigns.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/UserControls/ucAdminDesigns.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/UserControls/ucAdminGeneral.Designer.cs b/GFATask/UserControls/ucAdminGeneral.Designer.cs new file mode 100644 index 0000000..92f4ca3 --- /dev/null +++ b/GFATask/UserControls/ucAdminGeneral.Designer.cs @@ -0,0 +1,782 @@ + +namespace GFATask +{ + partial class ucAdminGeneral + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableGeneral = new System.Windows.Forms.TableLayoutPanel(); + this.tbUserDomain = new System.Windows.Forms.TextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.rtbDomains = new System.Windows.Forms.RichTextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.switch_use_ad_groups = new System.Windows.Forms.SwitchButton(); + this.label14 = new System.Windows.Forms.Label(); + this.tbAdGroupAdmins = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.abtnAcceptDomains = new System.Windows.Forms.AnimationButton(); + this.label18 = new System.Windows.Forms.Label(); + this.abtnConfirmAD = new System.Windows.Forms.AnimationButton(); + this.tbMailAccountUser = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.tbMailAccountPwd = new System.Windows.Forms.TextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.tbMailAccountHost = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.numMailAccountPort = new System.Windows.Forms.NumericEx(); + this.abtnConfirmMailAccount = new System.Windows.Forms.AnimationButton(); + this.label1 = new System.Windows.Forms.Label(); + this.mtbPwd = new System.Windows.Forms.MaskedTextBox(); + this.abtnChangePwd = new System.Windows.Forms.AnimationButton(); + this.label19 = new System.Windows.Forms.Label(); + this.tbCTXxmlNode = new System.Windows.Forms.TextBox(); + this.label20 = new System.Windows.Forms.Label(); + this.tbCTXIconPath = new System.Windows.Forms.TextBox(); + this.label21 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.tbCTXicaSelfService = new System.Windows.Forms.TextBox(); + this.tbCTXappsLocation = new System.Windows.Forms.TextBox(); + this.abtnConfirmCitrix = new System.Windows.Forms.AnimationButton(); + this.tbMailMessageTo = new System.Windows.Forms.TextBox(); + this.label17 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.tbMailMessageFrom = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.tbMailMessageDisplayName = new System.Windows.Forms.TextBox(); + this.tooltip = new System.Windows.Forms.ToolTip(this.components); + this.switch_frontendupdate = new System.Windows.Forms.SwitchButton(); + this.label23 = new System.Windows.Forms.Label(); + this.tableGeneral.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numMailAccountPort)).BeginInit(); + this.SuspendLayout(); + // + // tableGeneral + // + this.tableGeneral.ColumnCount = 9; + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 110F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 128F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 118F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 147F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 118F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 157F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F)); + this.tableGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableGeneral.Controls.Add(this.tbUserDomain, 6, 4); + this.tableGeneral.Controls.Add(this.label15, 3, 7); + this.tableGeneral.Controls.Add(this.label9, 1, 7); + this.tableGeneral.Controls.Add(this.label4, 7, 1); + this.tableGeneral.Controls.Add(this.label3, 5, 1); + this.tableGeneral.Controls.Add(this.label11, 1, 1); + this.tableGeneral.Controls.Add(this.rtbDomains, 7, 3); + this.tableGeneral.Controls.Add(this.label5, 7, 2); + this.tableGeneral.Controls.Add(this.switch_use_ad_groups, 6, 2); + this.tableGeneral.Controls.Add(this.label14, 5, 2); + this.tableGeneral.Controls.Add(this.tbAdGroupAdmins, 6, 3); + this.tableGeneral.Controls.Add(this.label6, 5, 3); + this.tableGeneral.Controls.Add(this.abtnAcceptDomains, 7, 7); + this.tableGeneral.Controls.Add(this.label18, 5, 4); + this.tableGeneral.Controls.Add(this.abtnConfirmAD, 5, 5); + this.tableGeneral.Controls.Add(this.tbMailAccountUser, 4, 2); + this.tableGeneral.Controls.Add(this.label8, 3, 2); + this.tableGeneral.Controls.Add(this.tbMailAccountPwd, 4, 3); + this.tableGeneral.Controls.Add(this.label10, 3, 3); + this.tableGeneral.Controls.Add(this.tbMailAccountHost, 4, 4); + this.tableGeneral.Controls.Add(this.label12, 3, 4); + this.tableGeneral.Controls.Add(this.label13, 3, 5); + this.tableGeneral.Controls.Add(this.numMailAccountPort, 4, 5); + this.tableGeneral.Controls.Add(this.abtnConfirmMailAccount, 1, 6); + this.tableGeneral.Controls.Add(this.label1, 1, 8); + this.tableGeneral.Controls.Add(this.mtbPwd, 2, 8); + this.tableGeneral.Controls.Add(this.abtnChangePwd, 1, 9); + this.tableGeneral.Controls.Add(this.label19, 3, 8); + this.tableGeneral.Controls.Add(this.tbCTXxmlNode, 4, 8); + this.tableGeneral.Controls.Add(this.label20, 3, 9); + this.tableGeneral.Controls.Add(this.tbCTXIconPath, 4, 9); + this.tableGeneral.Controls.Add(this.label21, 5, 8); + this.tableGeneral.Controls.Add(this.label22, 5, 9); + this.tableGeneral.Controls.Add(this.tbCTXicaSelfService, 6, 8); + this.tableGeneral.Controls.Add(this.tbCTXappsLocation, 6, 9); + this.tableGeneral.Controls.Add(this.abtnConfirmCitrix, 3, 10); + this.tableGeneral.Controls.Add(this.tbMailMessageTo, 2, 2); + this.tableGeneral.Controls.Add(this.label17, 1, 2); + this.tableGeneral.Controls.Add(this.label2, 1, 3); + this.tableGeneral.Controls.Add(this.tbMailMessageFrom, 2, 3); + this.tableGeneral.Controls.Add(this.label16, 1, 4); + this.tableGeneral.Controls.Add(this.tbMailMessageDisplayName, 2, 4); + this.tableGeneral.Controls.Add(this.switch_frontendupdate, 7, 10); + this.tableGeneral.Controls.Add(this.label23, 7, 9); + this.tableGeneral.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableGeneral.Location = new System.Drawing.Point(0, 0); + this.tableGeneral.Margin = new System.Windows.Forms.Padding(0); + this.tableGeneral.Name = "tableGeneral"; + this.tableGeneral.RowCount = 13; + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableGeneral.Size = new System.Drawing.Size(940, 380); + this.tableGeneral.TabIndex = 0; + // + // tbUserDomain + // + this.tbUserDomain.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbUserDomain.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbUserDomain.Location = new System.Drawing.Point(627, 110); + this.tbUserDomain.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbUserDomain.Name = "tbUserDomain"; + this.tbUserDomain.Size = new System.Drawing.Size(147, 20); + this.tbUserDomain.TabIndex = 129; + // + // label15 + // + this.label15.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label15, 4); + this.label15.Dock = System.Windows.Forms.DockStyle.Fill; + this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label15.Location = new System.Drawing.Point(249, 208); + this.label15.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(530, 35); + this.label15.TabIndex = 124; + this.label15.Text = "Citrix"; + this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label9, 2); + this.label9.Dock = System.Windows.Forms.DockStyle.Fill; + this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline)))); + this.label9.Location = new System.Drawing.Point(6, 208); + this.label9.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(228, 35); + this.label9.TabIndex = 106; + this.label9.Text = "Admin-Login"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Dock = System.Windows.Forms.DockStyle.Fill; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(789, -2); + this.label4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(140, 35); + this.label4.TabIndex = 84; + this.label4.Text = "Sonstiges"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label3, 2); + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(514, -2); + this.label3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(265, 35); + this.label3.TabIndex = 83; + this.label3.Text = "Active Directory"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label11 + // + this.label11.AutoSize = true; + this.tableGeneral.SetColumnSpan(this.label11, 4); + this.label11.Dock = System.Windows.Forms.DockStyle.Fill; + this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label11.Location = new System.Drawing.Point(11, -2); + this.label11.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(493, 35); + this.label11.TabIndex = 82; + this.label11.Text = "Mail-Accounts"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // rtbDomains + // + this.rtbDomains.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.rtbDomains.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtbDomains.Location = new System.Drawing.Point(794, 68); + this.rtbDomains.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.rtbDomains.Name = "rtbDomains"; + this.tableGeneral.SetRowSpan(this.rtbDomains, 4); + this.rtbDomains.Size = new System.Drawing.Size(140, 140); + this.rtbDomains.TabIndex = 59; + this.rtbDomains.Text = ""; + // + // label5 + // + this.label5.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(809, 44); + this.label5.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(109, 13); + this.label5.TabIndex = 103; + this.label5.Text = "Favoriten gültige TLD"; + this.label5.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // switch_use_ad_groups + // + this.switch_use_ad_groups.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.switch_use_ad_groups.BackColor = System.Drawing.Color.White; + this.switch_use_ad_groups.ButtonWidth = 35; + this.switch_use_ad_groups.Checked = false; + this.switch_use_ad_groups.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_use_ad_groups.CheckThreeState = false; + this.switch_use_ad_groups.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_use_ad_groups.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_use_ad_groups.Location = new System.Drawing.Point(627, 38); + this.switch_use_ad_groups.Margin = new System.Windows.Forms.Padding(0, 5, 4, 5); + this.switch_use_ad_groups.Name = "switch_use_ad_groups"; + this.switch_use_ad_groups.RoundedButton = true; + this.switch_use_ad_groups.ShowBoarder = false; + this.switch_use_ad_groups.Size = new System.Drawing.Size(80, 25); + this.switch_use_ad_groups.TabIndex = 58; + this.switch_use_ad_groups.Text = "switchButton1"; + // + // label14 + // + this.label14.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(537, 44); + this.label14.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(85, 13); + this.label14.TabIndex = 57; + this.label14.Text = "AD-Gruppenfilter"; + // + // tbAdGroupAdmins + // + this.tbAdGroupAdmins.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbAdGroupAdmins.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbAdGroupAdmins.Location = new System.Drawing.Point(627, 75); + this.tbAdGroupAdmins.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbAdGroupAdmins.Name = "tbAdGroupAdmins"; + this.tbAdGroupAdmins.Size = new System.Drawing.Size(147, 20); + this.tbAdGroupAdmins.TabIndex = 105; + // + // label6 + // + this.label6.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(553, 79); + this.label6.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(69, 13); + this.label6.TabIndex = 104; + this.label6.Text = "Admingruppe"; + this.label6.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // abtnAcceptDomains + // + this.abtnAcceptDomains.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.abtnAcceptDomains.AutoSizeWidth = false; + this.abtnAcceptDomains.Image = null; + this.abtnAcceptDomains.ImageBackColor = System.Drawing.Color.Empty; + this.abtnAcceptDomains.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnAcceptDomains.Location = new System.Drawing.Point(794, 211); + this.abtnAcceptDomains.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.abtnAcceptDomains.Name = "abtnAcceptDomains"; + this.abtnAcceptDomains.Size = new System.Drawing.Size(140, 29); + this.abtnAcceptDomains.TabIndex = 102; + this.abtnAcceptDomains.Text = "TLD übernehmen"; + this.abtnAcceptDomains.TextBounds = new System.Drawing.Rectangle(1, 1, 138, 27); + this.abtnAcceptDomains.ToolTipText = ""; + this.abtnAcceptDomains.WordWrap = true; + // + // label18 + // + this.label18.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(559, 114); + this.label18.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(63, 13); + this.label18.TabIndex = 130; + this.label18.Text = "Userdomain"; + this.label18.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // abtnConfirmAD + // + this.abtnConfirmAD.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.abtnConfirmAD.AutoSizeWidth = false; + this.tableGeneral.SetColumnSpan(this.abtnConfirmAD, 2); + this.abtnConfirmAD.Image = null; + this.abtnConfirmAD.ImageBackColor = System.Drawing.Color.Empty; + this.abtnConfirmAD.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnConfirmAD.Location = new System.Drawing.Point(519, 145); + this.abtnConfirmAD.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.abtnConfirmAD.Name = "abtnConfirmAD"; + this.abtnConfirmAD.Size = new System.Drawing.Size(265, 21); + this.abtnConfirmAD.TabIndex = 135; + this.abtnConfirmAD.Text = "AD Änderungen übernehmen"; + this.abtnConfirmAD.TextBounds = new System.Drawing.Rectangle(1, 1, 263, 19); + this.abtnConfirmAD.ToolTipText = ""; + this.abtnConfirmAD.WordWrap = true; + this.abtnConfirmAD.Click += new System.EventHandler(this.abtnConfirmAD_Click); + // + // tbMailAccountUser + // + this.tbMailAccountUser.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbMailAccountUser.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbMailAccountUser.Location = new System.Drawing.Point(362, 40); + this.tbMailAccountUser.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbMailAccountUser.Name = "tbMailAccountUser"; + this.tbMailAccountUser.Size = new System.Drawing.Size(137, 20); + this.tbMailAccountUser.TabIndex = 111; + // + // label8 + // + this.label8.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(308, 44); + this.label8.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(49, 13); + this.label8.TabIndex = 109; + this.label8.Text = "Benutzer"; + // + // tbMailAccountPwd + // + this.tbMailAccountPwd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbMailAccountPwd.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbMailAccountPwd.Location = new System.Drawing.Point(362, 75); + this.tbMailAccountPwd.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbMailAccountPwd.Name = "tbMailAccountPwd"; + this.tbMailAccountPwd.Size = new System.Drawing.Size(137, 20); + this.tbMailAccountPwd.TabIndex = 108; + // + // label10 + // + this.label10.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(307, 79); + this.label10.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(50, 13); + this.label10.TabIndex = 110; + this.label10.Text = "Passwort"; + // + // tbMailAccountHost + // + this.tbMailAccountHost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbMailAccountHost.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbMailAccountHost.Location = new System.Drawing.Point(362, 110); + this.tbMailAccountHost.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbMailAccountHost.Name = "tbMailAccountHost"; + this.tbMailAccountHost.Size = new System.Drawing.Size(137, 20); + this.tbMailAccountHost.TabIndex = 122; + // + // label12 + // + this.label12.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(328, 114); + this.label12.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(29, 13); + this.label12.TabIndex = 112; + this.label12.Text = "Host"; + // + // label13 + // + this.label13.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(308, 149); + this.label13.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(49, 13); + this.label13.TabIndex = 113; + this.label13.Text = "SSL Port"; + // + // numMailAccountPort + // + this.numMailAccountPort.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.numMailAccountPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numMailAccountPort.Location = new System.Drawing.Point(362, 145); + this.numMailAccountPort.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.numMailAccountPort.Maximum = new decimal(new int[] { + 99999999, + 0, + 0, + 0}); + this.numMailAccountPort.Name = "numMailAccountPort"; + this.numMailAccountPort.Size = new System.Drawing.Size(45, 20); + this.numMailAccountPort.TabIndex = 123; + this.numMailAccountPort.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // abtnConfirmMailAccount + // + this.abtnConfirmMailAccount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.abtnConfirmMailAccount.AutoSizeWidth = false; + this.tableGeneral.SetColumnSpan(this.abtnConfirmMailAccount, 4); + this.abtnConfirmMailAccount.Image = null; + this.abtnConfirmMailAccount.ImageBackColor = System.Drawing.Color.Empty; + this.abtnConfirmMailAccount.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnConfirmMailAccount.Location = new System.Drawing.Point(16, 180); + this.abtnConfirmMailAccount.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.abtnConfirmMailAccount.Name = "abtnConfirmMailAccount"; + this.abtnConfirmMailAccount.Size = new System.Drawing.Size(493, 21); + this.abtnConfirmMailAccount.TabIndex = 136; + this.abtnConfirmMailAccount.Text = "Mail-Account Änderungen übernehmen"; + this.abtnConfirmMailAccount.TextBounds = new System.Drawing.Rectangle(1, 1, 491, 19); + this.abtnConfirmMailAccount.ToolTipText = ""; + this.abtnConfirmMailAccount.WordWrap = true; + this.abtnConfirmMailAccount.Click += new System.EventHandler(this.abtnConfirmMailAccount_Click); + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(25, 254); + this.label1.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(86, 13); + this.label1.TabIndex = 52; + this.label1.Text = "Passwort ändern"; + // + // mtbPwd + // + this.mtbPwd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.mtbPwd.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.mtbPwd.Location = new System.Drawing.Point(116, 250); + this.mtbPwd.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.mtbPwd.Name = "mtbPwd"; + this.mtbPwd.PasswordChar = '⬤'; + this.mtbPwd.Size = new System.Drawing.Size(118, 20); + this.mtbPwd.TabIndex = 54; + // + // abtnChangePwd + // + this.abtnChangePwd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.abtnChangePwd.AutoSizeWidth = false; + this.tableGeneral.SetColumnSpan(this.abtnChangePwd, 2); + this.abtnChangePwd.Image = null; + this.abtnChangePwd.ImageBackColor = System.Drawing.Color.Empty; + this.abtnChangePwd.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnChangePwd.Location = new System.Drawing.Point(6, 281); + this.abtnChangePwd.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.abtnChangePwd.Name = "abtnChangePwd"; + this.abtnChangePwd.Size = new System.Drawing.Size(228, 29); + this.abtnChangePwd.TabIndex = 56; + this.abtnChangePwd.Text = "Passwort ändern"; + this.abtnChangePwd.TextBounds = new System.Drawing.Rectangle(1, 1, 226, 27); + this.abtnChangePwd.ToolTipText = ""; + this.abtnChangePwd.Click += new System.EventHandler(this.abtnChangePwd_Click); + // + // label19 + // + this.label19.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(273, 254); + this.label19.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(84, 13); + this.label19.TabIndex = 131; + this.label19.Text = "XML-Root-Node"; + this.label19.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbCTXxmlNode + // + this.tbCTXxmlNode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbCTXxmlNode.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbCTXxmlNode.Location = new System.Drawing.Point(362, 250); + this.tbCTXxmlNode.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbCTXxmlNode.Name = "tbCTXxmlNode"; + this.tbCTXxmlNode.Size = new System.Drawing.Size(137, 20); + this.tbCTXxmlNode.TabIndex = 125; + // + // label20 + // + this.label20.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(295, 289); + this.label20.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(62, 13); + this.label20.TabIndex = 132; + this.label20.Text = "Symbolpfad"; + this.label20.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbCTXIconPath + // + this.tbCTXIconPath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbCTXIconPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbCTXIconPath.Location = new System.Drawing.Point(362, 285); + this.tbCTXIconPath.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbCTXIconPath.Name = "tbCTXIconPath"; + this.tbCTXIconPath.Size = new System.Drawing.Size(137, 20); + this.tbCTXIconPath.TabIndex = 126; + // + // label21 + // + this.label21.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(541, 254); + this.label21.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(81, 13); + this.label21.TabIndex = 133; + this.label21.Text = "SelfService.exe"; + this.label21.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // label22 + // + this.label22.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(547, 289); + this.label22.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(75, 13); + this.label22.TabIndex = 134; + this.label22.Text = "Apps-Location"; + this.label22.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbCTXicaSelfService + // + this.tbCTXicaSelfService.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbCTXicaSelfService.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbCTXicaSelfService.Location = new System.Drawing.Point(627, 250); + this.tbCTXicaSelfService.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbCTXicaSelfService.Name = "tbCTXicaSelfService"; + this.tbCTXicaSelfService.Size = new System.Drawing.Size(147, 20); + this.tbCTXicaSelfService.TabIndex = 127; + // + // tbCTXappsLocation + // + this.tbCTXappsLocation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbCTXappsLocation.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbCTXappsLocation.Location = new System.Drawing.Point(627, 285); + this.tbCTXappsLocation.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbCTXappsLocation.Name = "tbCTXappsLocation"; + this.tbCTXappsLocation.Size = new System.Drawing.Size(147, 20); + this.tbCTXappsLocation.TabIndex = 128; + // + // abtnConfirmCitrix + // + this.abtnConfirmCitrix.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.abtnConfirmCitrix.AutoSizeWidth = false; + this.tableGeneral.SetColumnSpan(this.abtnConfirmCitrix, 4); + this.abtnConfirmCitrix.Image = null; + this.abtnConfirmCitrix.ImageBackColor = System.Drawing.Color.Empty; + this.abtnConfirmCitrix.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnConfirmCitrix.Location = new System.Drawing.Point(254, 316); + this.abtnConfirmCitrix.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.abtnConfirmCitrix.Name = "abtnConfirmCitrix"; + this.abtnConfirmCitrix.Size = new System.Drawing.Size(530, 29); + this.abtnConfirmCitrix.TabIndex = 137; + this.abtnConfirmCitrix.Text = "Citrix-Einstellungen übernehmen"; + this.abtnConfirmCitrix.TextBounds = new System.Drawing.Rectangle(1, 1, 528, 27); + this.abtnConfirmCitrix.ToolTipText = ""; + this.abtnConfirmCitrix.WordWrap = true; + this.abtnConfirmCitrix.Click += new System.EventHandler(this.abtnConfirmCitrix_Click); + // + // tbMailMessageTo + // + this.tbMailMessageTo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbMailMessageTo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbMailMessageTo.Location = new System.Drawing.Point(116, 40); + this.tbMailMessageTo.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbMailMessageTo.Name = "tbMailMessageTo"; + this.tbMailMessageTo.Size = new System.Drawing.Size(118, 20); + this.tbMailMessageTo.TabIndex = 121; + // + // label17 + // + this.label17.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(52, 44); + this.label17.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(59, 13); + this.label17.TabIndex = 117; + this.label17.Text = "Senden an"; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(85, 79); + this.label2.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(26, 13); + this.label2.TabIndex = 115; + this.label2.Text = "Von"; + // + // tbMailMessageFrom + // + this.tbMailMessageFrom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbMailMessageFrom.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbMailMessageFrom.Location = new System.Drawing.Point(116, 75); + this.tbMailMessageFrom.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbMailMessageFrom.Name = "tbMailMessageFrom"; + this.tbMailMessageFrom.Size = new System.Drawing.Size(118, 20); + this.tbMailMessageFrom.TabIndex = 119; + // + // label16 + // + this.label16.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(33, 114); + this.label16.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(78, 13); + this.label16.TabIndex = 116; + this.label16.Text = "Absendername"; + // + // tbMailMessageDisplayName + // + this.tbMailMessageDisplayName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tbMailMessageDisplayName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbMailMessageDisplayName.Location = new System.Drawing.Point(116, 110); + this.tbMailMessageDisplayName.Margin = new System.Windows.Forms.Padding(0, 0, 10, 0); + this.tbMailMessageDisplayName.Name = "tbMailMessageDisplayName"; + this.tbMailMessageDisplayName.Size = new System.Drawing.Size(118, 20); + this.tbMailMessageDisplayName.TabIndex = 120; + // + // switch_frontendupdate + // + this.switch_frontendupdate.Anchor = System.Windows.Forms.AnchorStyles.None; + this.switch_frontendupdate.BackColor = System.Drawing.Color.White; + this.switch_frontendupdate.ButtonWidth = 35; + this.switch_frontendupdate.Checked = false; + this.switch_frontendupdate.CheckState = System.Windows.Forms.CheckState.Unchecked; + this.switch_frontendupdate.CheckThreeState = false; + this.switch_frontendupdate.ColorActive = System.Drawing.Color.DarkSeaGreen; + this.switch_frontendupdate.ColorInactive = System.Drawing.Color.OrangeRed; + this.switch_frontendupdate.Location = new System.Drawing.Point(822, 318); + this.switch_frontendupdate.Margin = new System.Windows.Forms.Padding(10, 5, 4, 5); + this.switch_frontendupdate.Name = "switch_frontendupdate"; + this.switch_frontendupdate.RoundedButton = true; + this.switch_frontendupdate.ShowBoarder = false; + this.switch_frontendupdate.Size = new System.Drawing.Size(80, 25); + this.switch_frontendupdate.TabIndex = 138; + this.switch_frontendupdate.Text = "switchButton1"; + this.switch_frontendupdate.CheckStateChanged += new System.EventHandler(this.switch_frontendupdate_CheckStateChanged); + // + // label23 + // + this.label23.Anchor = System.Windows.Forms.AnchorStyles.None; + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(821, 289); + this.label23.Margin = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(85, 13); + this.label23.TabIndex = 140; + this.label23.Text = "FrontEndUpdate"; + this.label23.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + // + // ucAdminGeneral + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Controls.Add(this.tableGeneral); + this.Margin = new System.Windows.Forms.Padding(2); + this.Name = "ucAdminGeneral"; + this.Size = new System.Drawing.Size(940, 380); + this.tableGeneral.ResumeLayout(false); + this.tableGeneral.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numMailAccountPort)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableGeneral; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.MaskedTextBox mtbPwd; + private System.Windows.Forms.AnimationButton abtnChangePwd; + private System.Windows.Forms.SwitchButton switch_use_ad_groups; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.RichTextBox rtbDomains; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.AnimationButton abtnAcceptDomains; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox tbAdGroupAdmins; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox tbMailAccountPwd; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox tbMailAccountUser; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox tbMailMessageFrom; + private System.Windows.Forms.TextBox tbMailMessageDisplayName; + private System.Windows.Forms.TextBox tbMailMessageTo; + private System.Windows.Forms.TextBox tbMailAccountHost; + private System.Windows.Forms.NumericEx numMailAccountPort; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox tbCTXappsLocation; + private System.Windows.Forms.TextBox tbCTXicaSelfService; + private System.Windows.Forms.TextBox tbCTXIconPath; + private System.Windows.Forms.TextBox tbCTXxmlNode; + private System.Windows.Forms.TextBox tbUserDomain; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.AnimationButton abtnConfirmAD; + private System.Windows.Forms.AnimationButton abtnConfirmMailAccount; + private System.Windows.Forms.AnimationButton abtnConfirmCitrix; + private System.Windows.Forms.ToolTip tooltip; + private System.Windows.Forms.SwitchButton switch_frontendupdate; + private System.Windows.Forms.Label label23; + } +} diff --git a/GFATask/UserControls/ucAdminGeneral.cs b/GFATask/UserControls/ucAdminGeneral.cs new file mode 100644 index 0000000..9edc5ad --- /dev/null +++ b/GFATask/UserControls/ucAdminGeneral.cs @@ -0,0 +1,171 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Net.Mail; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + [Browsable(false), ToolboxItem(false)] + public partial class ucAdminGeneral : UserControl + { + + private void CreateGeneralBindings() + { + switch_use_ad_groups.Checked = Config.Main.UseActiveDirectoryGroups; + switch_frontendupdate.Checked = Config.Main.Administration.RemoteFrontEndUpdate; + rtbDomains.Lines = Config.Main.WebDomains; + } + + /// + /// Erstellt die ToolTips für die Steuerelemente + /// + private void SetToolTips() + { + switch_use_ad_groups.MouseEnter += (sender, e) => tooltip.Show("Nutzt die Active Directory Gruppen, um die Apps aus den Listen zu filtern. Wenn nicht aktiv, werden alle Apps (außer die Admin-Liste) angezeigt", sender as Control); + switch_frontendupdate.MouseEnter += (sender, e) => tooltip.Show("Aktiviert, oder deaktiviert das Aktualisieren aller GFATask Remote-FrontEnds", sender as Control); + rtbDomains.MouseEnter += (sender, e) => tooltip.Show("Alle aufgeführten Top-Level-Domains in der Liste werden für die Favoriten-Liste als Webseite erkannt", sender as Control); + mtbPwd.MouseEnter += (sender, e) => tooltip.Show("Ändert das Passwort für den Adminbereich für Nicht-Administratoren", sender as Control); + } + + + public ucAdminGeneral() + { + InitializeComponent(); + this.SetDefaultDesign(); + + this.CreateGeneralBindings(); + tbAdGroupAdmins.Text = Config.Main.Administration.ActiveDirectoryGroup; + tbUserDomain.Text = Config.Main.DomainName; + + tbMailAccountPwd.Text = new string(Config.Main.Administration.Accounts.Mail.SecurePassword.Select(chr => (char)chr).ToArray()); + tbMailAccountUser.Text = Config.Main.Administration.Accounts.Mail.UserName; + tbMailAccountHost.Text = Config.Main.Administration.Accounts.Mail.Host; + numMailAccountPort.Value = Config.Main.Administration.Accounts.Mail.SSLPort; + + tbMailMessageFrom.Text = Config.Main.Administration.Accounts.Mail.MailMessage.From.Address; + tbMailMessageDisplayName.Text = Config.Main.Administration.Accounts.Mail.MailMessage.From.DisplayName; + tbMailMessageTo.Text = Config.Main.Administration.Accounts.Mail.MailMessage.To; + + tbCTXxmlNode.Text = Config.Main.Citrix.XMLNodes; + tbCTXicaSelfService.Text = Config.Main.Citrix.ICASelfService; + tbCTXIconPath.Text = Config.Main.Citrix.Icons; + tbCTXappsLocation.Text = Config.Main.Citrix.AppsLocation; + + label9.Paint += Designer.DrawHeaderLabel; + label15.Paint += Designer.DrawHeaderLabel; + label11.Paint += Designer.DrawHeaderLabel; + label4.Paint += Designer.DrawHeaderLabel; + label3.Paint += Designer.DrawHeaderLabel; + + this.SetToolTips(); + } + + + private void abtnChangePwd_Click(object sender, EventArgs e) + { + string oldpw = new string(Config.Main.Administration.Accounts.Login.SecurePassword.Select(chr => (char)chr).ToArray()); + Config.Main.Administration.Accounts.Login.SecurePassword = mtbPwd.Text.ToArray().Select(chr => (int)chr).ToArray(); + JSON.Save(JSONConfig.Main); + + XObjects.MailService.Send( + new MailAddress( + Config.Main.Administration.Accounts.Mail.MailMessage.From.Address, + Config.Main.Administration.Accounts.Mail.MailMessage.From.DisplayName, Encoding.UTF8), + new MailAddress(Config.Main.Administration.Accounts.Mail.MailMessage.To), + "GFATask Kennwortänderung des Adminbereichs", + $"" + + $"Das Administartionskennwort wurde\n" + + $"durch den Benutzer {Environment.UserDomainName + @"\" + Environment.UserName}" + + $"
von \"{"" + oldpw + ""}\"" + + $"
in \"{"" + mtbPwd.Text + ""}\" geändert" + + $"

" + + $"Ihr GFATask Administrator" + + $"" + ); + } + + private void abtnConfirmCitrix_Click(object sender, EventArgs e) + { + Config.Main.Citrix = new Models.Config.Main.CitrixProperties() + { + AppsLocation = tbCTXappsLocation.Text, + ICASelfService = tbCTXicaSelfService.Text, + Icons = tbCTXIconPath.Text, + XMLNodes = tbCTXxmlNode.Text + }; + JSON.Save(JSONConfig.Main); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.Citrix }); + } + + private void abtnConfirmAD_Click(object sender, EventArgs e) + { + Config.Main.UseActiveDirectoryGroups = switch_use_ad_groups.Checked; + JSON.Save(JSONConfig.Main); + this.UseActiveDirectory(); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.ActiveDirectory }); + } + + + public void UseActiveDirectory() + { + if (this.Created) + { + Forms.Main.CreateAppListPanels(); + Accessor.SetLastAppListPanel(); + } + } + + public void ChangeCitrix() + { + if (this.Created) + { + Creator.AppListPanel(XObjects.AllAppListPanels.Find(panel => panel.AppType == AppType.Citrix), AppLists.Citrix); + } + } + + private void abtnConfirmMailAccount_Click(object sender, EventArgs e) + { + if (this.Created) + { + Config.Main.Administration.Accounts.Mail = new Models.Config.Main.AdministrationProperties.AccountProperties.MailAccount() + { + Host = tbMailAccountHost.Text, + MailMessage = new Models.Config.Main.AdministrationProperties.AccountProperties.MailAccount.MailMessageProperties() + { + From = new Models.Config.Main.AdministrationProperties.AccountProperties.MailAccount.MailMessageProperties.FromProperties() + { + Address = tbMailMessageFrom.Text, + DisplayName = tbMailMessageDisplayName.Text + }, + To = tbMailMessageTo.Text, + }, + SSLPort = (int)numMailAccountPort.Value, + SecurePassword = tbMailAccountPwd.Text.ToArray().Select(chr => (int)chr).ToArray(), + UserName = tbMailAccountUser.Text + }; + JSON.Save(JSONConfig.Main); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.MailAccount }); + } + } + + public void SetFrontEndUpdate() + { + XObjects.FrontEndRefresh.Active = Config.Main.Administration.RemoteFrontEndUpdate; + } + + private void switch_frontendupdate_CheckStateChanged(object sender, CheckStateEventArgs e) + { + Config.Main.Administration.RemoteFrontEndUpdate = switch_frontendupdate.Checked; + JSON.Save(JSONConfig.Main); + this.SetFrontEndUpdate(); + XObjects.FrontEndRefresh.Update(new GFATaskStream() { PipeType = NetPipeType.FrontEndUpdate }); + } + } +} diff --git a/GFATask/UserControls/ucAdminGeneral.resx b/GFATask/UserControls/ucAdminGeneral.resx new file mode 100644 index 0000000..a03e2d7 --- /dev/null +++ b/GFATask/UserControls/ucAdminGeneral.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/GFATask/UserControls/ucAdminHelp.Designer.cs b/GFATask/UserControls/ucAdminHelp.Designer.cs new file mode 100644 index 0000000..dc44a33 --- /dev/null +++ b/GFATask/UserControls/ucAdminHelp.Designer.cs @@ -0,0 +1,64 @@ + +namespace GFATask +{ + partial class ucAdminHelp + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.webBrowser = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // webBrowser + // + this.webBrowser.AllowNavigation = false; + this.webBrowser.AllowWebBrowserDrop = false; + this.webBrowser.Dock = System.Windows.Forms.DockStyle.Fill; + this.webBrowser.IsWebBrowserContextMenuEnabled = false; + this.webBrowser.Location = new System.Drawing.Point(0, 0); + this.webBrowser.MinimumSize = new System.Drawing.Size(20, 20); + this.webBrowser.Name = "webBrowser"; + this.webBrowser.Size = new System.Drawing.Size(858, 509); + this.webBrowser.TabIndex = 0; + // + // ucAdminHelp + // + this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.BackColor = System.Drawing.Color.White; + this.Controls.Add(this.webBrowser); + this.Margin = new System.Windows.Forms.Padding(0); + this.Name = "ucAdminHelp"; + this.Size = new System.Drawing.Size(858, 509); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser webBrowser; + } +} diff --git a/GFATask/UserControls/ucAdminHelp.cs b/GFATask/UserControls/ucAdminHelp.cs new file mode 100644 index 0000000..474eb8f --- /dev/null +++ b/GFATask/UserControls/ucAdminHelp.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Windows.Navigation; + +namespace GFATask +{ + public partial class ucAdminHelp : UserControl + { + public ucAdminHelp() + { + InitializeComponent(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + webBrowser.Url = new Uri(Paths.Help.Administration.FullName); + } + + protected override void OnInvalidated(InvalidateEventArgs e) + { + base.OnInvalidated(e); + webBrowser.Refresh(); + } + } +} diff --git a/GFATask/UserControls/ucAdminHelp.resx b/GFATask/UserControls/ucAdminHelp.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/UserControls/ucAdminHelp.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/UserControls/ucAdminNewsFeeds.Designer.cs b/GFATask/UserControls/ucAdminNewsFeeds.Designer.cs new file mode 100644 index 0000000..f178cc9 --- /dev/null +++ b/GFATask/UserControls/ucAdminNewsFeeds.Designer.cs @@ -0,0 +1,129 @@ + +namespace GFATask +{ + partial class ucAdminNewsFeeds + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Komponenten-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.dgvNewsFeeds = new System.Windows.Forms.DataGridView(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.abtnAnwenden = new System.Windows.Forms.AnimationButton(); + this.abtnVerwerfen = new System.Windows.Forms.AnimationButton(); + ((System.ComponentModel.ISupportInitialize)(this.dgvNewsFeeds)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // dgvNewsFeeds + // + this.dgvNewsFeeds.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.tableLayoutPanel1.SetColumnSpan(this.dgvNewsFeeds, 3); + this.dgvNewsFeeds.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvNewsFeeds.Location = new System.Drawing.Point(3, 3); + this.dgvNewsFeeds.Name = "dgvNewsFeeds"; + this.dgvNewsFeeds.RowHeadersWidth = 51; + this.dgvNewsFeeds.RowTemplate.Height = 24; + this.dgvNewsFeeds.Size = new System.Drawing.Size(852, 468); + this.dgvNewsFeeds.TabIndex = 0; + this.dgvNewsFeeds.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvNewsFeeds_CellClick); + this.dgvNewsFeeds.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.dgvWorldDays_RowsRemoved); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 63.63636F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.18182F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 18.18182F)); + this.tableLayoutPanel1.Controls.Add(this.dgvNewsFeeds, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.abtnAnwenden, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.abtnVerwerfen, 1, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(858, 509); + this.tableLayoutPanel1.TabIndex = 1; + // + // abtnAnwenden + // + this.abtnAnwenden.Anchor = System.Windows.Forms.AnchorStyles.None; + this.abtnAnwenden.AutoSizeWidth = false; + this.abtnAnwenden.Image = null; + this.abtnAnwenden.ImageBackColor = System.Drawing.Color.Empty; + this.abtnAnwenden.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnAnwenden.Location = new System.Drawing.Point(728, 474); + this.abtnAnwenden.Margin = new System.Windows.Forms.Padding(0); + this.abtnAnwenden.Name = "abtnAnwenden"; + this.abtnAnwenden.Size = new System.Drawing.Size(102, 34); + this.abtnAnwenden.TabIndex = 60; + this.abtnAnwenden.Text = "Anwenden"; + this.abtnAnwenden.ToolTipText = ""; + this.abtnAnwenden.Click += new System.EventHandler(this.abtnAnwenden_Click); + // + // abtnVerwerfen + // + this.abtnVerwerfen.Anchor = System.Windows.Forms.AnchorStyles.None; + this.abtnVerwerfen.AutoSizeWidth = false; + this.abtnVerwerfen.Image = null; + this.abtnVerwerfen.ImageBackColor = System.Drawing.Color.Empty; + this.abtnVerwerfen.ImageBounds = new System.Drawing.Rectangle(0, 0, 0, 0); + this.abtnVerwerfen.Location = new System.Drawing.Point(568, 474); + this.abtnVerwerfen.Margin = new System.Windows.Forms.Padding(0); + this.abtnVerwerfen.Name = "abtnVerwerfen"; + this.abtnVerwerfen.Size = new System.Drawing.Size(110, 35); + this.abtnVerwerfen.TabIndex = 61; + this.abtnVerwerfen.Text = "Verwerfen"; + this.abtnVerwerfen.ToolTipText = ""; + this.abtnVerwerfen.Click += new System.EventHandler(this.abtnVerwerfen_Click); + // + // ucAdminNewsFeeds + // + this.AutoScaleDimensions = new System.Drawing.SizeF(120F, 120F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.BackColor = System.Drawing.Color.White; + this.Controls.Add(this.tableLayoutPanel1); + this.DoubleBuffered = true; + this.Margin = new System.Windows.Forms.Padding(0); + this.Name = "ucAdminNewsFeeds"; + this.Size = new System.Drawing.Size(858, 509); + this.Tag = "ucAdminNewsFeeds"; + ((System.ComponentModel.ISupportInitialize)(this.dgvNewsFeeds)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvNewsFeeds; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.AnimationButton abtnAnwenden; + private System.Windows.Forms.AnimationButton abtnVerwerfen; + } +} diff --git a/GFATask/UserControls/ucAdminNewsFeeds.cs b/GFATask/UserControls/ucAdminNewsFeeds.cs new file mode 100644 index 0000000..3ddd590 --- /dev/null +++ b/GFATask/UserControls/ucAdminNewsFeeds.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace GFATask +{ + public partial class ucAdminNewsFeeds : UserControl + { + public ucAdminNewsFeeds() + { + InitializeComponent(); + + this.SetDefaultDesign(); + dgvNewsFeeds.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + + List converted_newsfeedlist = Config.NewsFeeds.Select(w => new ReadableNewsFeed(w) ).ToList(); + DataTable dt = new DataTable(); + dt.Columns.AddRange(converted_newsfeedlist[0].GetType().GetProperties().Select(prop => new DataColumn(prop.Name, prop.PropertyType)).ToArray()); + converted_newsfeedlist.ForEach(w => dt.Rows.Add(w.Name, w.Aktiv, w.Symbol, w.Icon, w.Starttag, w.Startmonat, w.Endtag, w.Endmonat, w.Titel)); + dgvNewsFeeds.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader); + dgvNewsFeeds.DataSource = dt; + dgvNewsFeeds.CellEndEdit += DgvWorldDays_CellEndEdit; + dgvNewsFeeds.CellBeginEdit += DgvWorldDays_CellBeginEdit; + } + + private void DgvWorldDays_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) + { + //if(dgvNewsFeeds.Columns["Symbol"].Index == e.ColumnIndex || dgvNewsFeeds.Columns["Icon"].Index == e.ColumnIndex) + //{ + // var ofd = new OpenFileDialog() { Multiselect = false }; + // if(ofd.ShowDialog() == DialogResult.OK) + // { + // dgvNewsFeeds.CurrentCell.Value = ofd.SafeFileName; + // dgvNewsFeeds.Rows[dgvNewsFeeds.CurrentRow.Index].Cells["Icon"].Value = new Bitmap(Image.FromStream(File.OpenRead(ofd.FileName)), new Size(16,16)); + // } + //} + } + + + private void DgvWorldDays_CellEndEdit(object sender, DataGridViewCellEventArgs e) + { + dgvNewsFeeds.CommitEdit(DataGridViewDataErrorContexts.CurrentCellChange); + dgvNewsFeeds.BindingContext[dgvNewsFeeds.DataSource].EndCurrentEdit(); + } + + private void abtnAnwenden_Click(object sender, EventArgs e) + { + List return_newsfeedlist = ((DataTable)dgvNewsFeeds.DataSource).Rows.Cast().Select(w => new Models.NewsFeed() { + Name = w[0].ToString(), + Enable = (bool)w[1], + Icon = w[2] == null ? "" : w[2].ToString(), + Begin = new Models.NewsFeed.Date() { Day = (int)w[4], Month = (int)w[5]}, + End = new Models.NewsFeed.Date() { Day = (int)w[6], Month = (int)w[7]}, + Title = w[8].ToString() + }).ToList(); + Config.NewsFeeds = return_newsfeedlist; + JSON.Save(JSONConfig.NewsFeeds); + + Forms.Main.UseNewsFeeds(); + } + + private void abtnVerwerfen_Click(object sender, EventArgs e) + { + + } + + private void dgvWorldDays_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e) + { + + } + + private void dgvNewsFeeds_CellClick(object sender, DataGridViewCellEventArgs e) + { + if (dgvNewsFeeds.Columns["Symbol"].Index == e.ColumnIndex || dgvNewsFeeds.Columns["Icon"].Index == e.ColumnIndex) + { + var ofd = new OpenFileDialog() { Multiselect = false }; + if (ofd.ShowDialog() == DialogResult.OK) + { + if(ofd.FileName == "[Kein Icon]") + { + + return; + } + + Creator.StreamCopy(ofd.FileName, Paths.NewsFeeds.Icons.Directory + ofd.SafeFileName, (fs) => + { + dgvNewsFeeds[dgvNewsFeeds.Columns["Symbol"].Index, e.RowIndex].Value = ofd.SafeFileName == "[Kein Icon]" ? null : Path.GetFileName(fs.Name); + dgvNewsFeeds.Rows[dgvNewsFeeds.CurrentRow.Index].Cells["Icon"].Value = ofd.SafeFileName == "[Kein Icon]" ? null : new Bitmap(Image.FromStream(fs), new Size(16, 16)); + }); + } + } + } + } +} diff --git a/GFATask/UserControls/ucAdminNewsFeeds.resx b/GFATask/UserControls/ucAdminNewsFeeds.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/GFATask/UserControls/ucAdminNewsFeeds.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/GFATask/app.manifest b/GFATask/app.manifest new file mode 100644 index 0000000..8273826 --- /dev/null +++ b/GFATask/app.manifest @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + + + + + diff --git a/GFATask/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/GFATask/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..3cf0af3 --- /dev/null +++ b/GFATask/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/GFATask/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/GFATask/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..013f327 Binary files /dev/null and b/GFATask/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/GFATask/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/GFATask/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..df77b7d Binary files /dev/null and b/GFATask/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/GFATask/obj/Debug/GFATask.FormAdmin.resources b/GFATask/obj/Debug/GFATask.FormAdmin.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.FormAdmin.resources differ diff --git a/GFATask/obj/Debug/GFATask.FormAppButtonGroup.resources b/GFATask/obj/Debug/GFATask.FormAppButtonGroup.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.FormAppButtonGroup.resources differ diff --git a/GFATask/obj/Debug/GFATask.FormAppCreator.resources b/GFATask/obj/Debug/GFATask.FormAppCreator.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.FormAppCreator.resources differ diff --git a/GFATask/obj/Debug/GFATask.FormGroups.resources b/GFATask/obj/Debug/GFATask.FormGroups.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.FormGroups.resources differ diff --git a/GFATask/obj/Debug/GFATask.FormInfo.resources b/GFATask/obj/Debug/GFATask.FormInfo.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.FormInfo.resources differ diff --git a/GFATask/obj/Debug/GFATask.FormMain.resources b/GFATask/obj/Debug/GFATask.FormMain.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.FormMain.resources differ diff --git a/GFATask/obj/Debug/GFATask.FormSettings.resources b/GFATask/obj/Debug/GFATask.FormSettings.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.FormSettings.resources differ diff --git a/GFATask/obj/Debug/GFATask.Properties.Resources.resources b/GFATask/obj/Debug/GFATask.Properties.Resources.resources new file mode 100644 index 0000000..e945496 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.Properties.Resources.resources differ diff --git a/GFATask/obj/Debug/GFATask.csproj.AssemblyReference.cache b/GFATask/obj/Debug/GFATask.csproj.AssemblyReference.cache new file mode 100644 index 0000000..d0b0c9b Binary files /dev/null and b/GFATask/obj/Debug/GFATask.csproj.AssemblyReference.cache differ diff --git a/GFATask/obj/Debug/GFATask.csproj.CopyComplete b/GFATask/obj/Debug/GFATask.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/GFATask/obj/Debug/GFATask.csproj.CoreCompileInputs.cache b/GFATask/obj/Debug/GFATask.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..55e50ba --- /dev/null +++ b/GFATask/obj/Debug/GFATask.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +dc5c7c46120450bcdc11447a4713f457dffc0967 diff --git a/GFATask/obj/Debug/GFATask.csproj.FileListAbsolute.txt b/GFATask/obj/Debug/GFATask.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..c88de67 --- /dev/null +++ b/GFATask/obj/Debug/GFATask.csproj.FileListAbsolute.txt @@ -0,0 +1,48 @@ +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\GFATask.exe.config +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\GFATask.exe +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\GFATask.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\CustomGraphics.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\ExScreen.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Extensions.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\FormEx.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\ILog.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Logging.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Newtonsoft.Json.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Win32API.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\XObjects.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\CustomControls.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\CustomGraphics.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\ExScreen.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Extensions.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\FormEx.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\ILog.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Logging.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Newtonsoft.Json.xml +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\SystemManagement.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Win32API.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\XObjects.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.FormAppButtonGroup.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.FormAppCreator.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.FormAdmin.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.FormGroups.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.FormInfo.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.FormMain.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.FormSettings.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.ucAdminAppClickCounter.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.ucAdminApps.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.ucAdminHelp.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.ucAdminNewsFeeds.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.ucAdminDesigns.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.ucAdminGeneral.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.Properties.Resources.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.csproj.GenerateResource.cache +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.csproj.CoreCompileInputs.cache +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.csproj.CopyComplete +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.exe +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\CustomControls.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Models.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\Models.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Debug\SystemManagement.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.csproj.SuggestedBindingRedirects.cache +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Debug\GFATask.csproj.AssemblyReference.cache diff --git a/GFATask/obj/Debug/GFATask.csproj.GenerateResource.cache b/GFATask/obj/Debug/GFATask.csproj.GenerateResource.cache new file mode 100644 index 0000000..e88ea90 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.csproj.GenerateResource.cache differ diff --git a/GFATask/obj/Debug/GFATask.csproj.SuggestedBindingRedirects.cache b/GFATask/obj/Debug/GFATask.csproj.SuggestedBindingRedirects.cache new file mode 100644 index 0000000..e69de29 diff --git a/GFATask/obj/Debug/GFATask.exe b/GFATask/obj/Debug/GFATask.exe new file mode 100644 index 0000000..83c7091 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.exe differ diff --git a/GFATask/obj/Debug/GFATask.pdb b/GFATask/obj/Debug/GFATask.pdb new file mode 100644 index 0000000..39967b7 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.pdb differ diff --git a/GFATask/obj/Debug/GFATask.ucAdminAppClickCounter.resources b/GFATask/obj/Debug/GFATask.ucAdminAppClickCounter.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.ucAdminAppClickCounter.resources differ diff --git a/GFATask/obj/Debug/GFATask.ucAdminApps.resources b/GFATask/obj/Debug/GFATask.ucAdminApps.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.ucAdminApps.resources differ diff --git a/GFATask/obj/Debug/GFATask.ucAdminDesigns.resources b/GFATask/obj/Debug/GFATask.ucAdminDesigns.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.ucAdminDesigns.resources differ diff --git a/GFATask/obj/Debug/GFATask.ucAdminGeneral.resources b/GFATask/obj/Debug/GFATask.ucAdminGeneral.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.ucAdminGeneral.resources differ diff --git a/GFATask/obj/Debug/GFATask.ucAdminHelp.resources b/GFATask/obj/Debug/GFATask.ucAdminHelp.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.ucAdminHelp.resources differ diff --git a/GFATask/obj/Debug/GFATask.ucAdminNewsFeeds.resources b/GFATask/obj/Debug/GFATask.ucAdminNewsFeeds.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Debug/GFATask.ucAdminNewsFeeds.resources differ diff --git a/GFATask/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/GFATask/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..42b656b Binary files /dev/null and b/GFATask/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ diff --git a/GFATask/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/GFATask/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..3cf0af3 --- /dev/null +++ b/GFATask/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/GFATask/obj/Release/GFATask.FormAdmin.resources b/GFATask/obj/Release/GFATask.FormAdmin.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.FormAdmin.resources differ diff --git a/GFATask/obj/Release/GFATask.FormAppButtonGroup.resources b/GFATask/obj/Release/GFATask.FormAppButtonGroup.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.FormAppButtonGroup.resources differ diff --git a/GFATask/obj/Release/GFATask.FormAppCreator.resources b/GFATask/obj/Release/GFATask.FormAppCreator.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.FormAppCreator.resources differ diff --git a/GFATask/obj/Release/GFATask.FormGroups.resources b/GFATask/obj/Release/GFATask.FormGroups.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.FormGroups.resources differ diff --git a/GFATask/obj/Release/GFATask.FormInfo.resources b/GFATask/obj/Release/GFATask.FormInfo.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.FormInfo.resources differ diff --git a/GFATask/obj/Release/GFATask.FormMain.resources b/GFATask/obj/Release/GFATask.FormMain.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.FormMain.resources differ diff --git a/GFATask/obj/Release/GFATask.FormSettings.resources b/GFATask/obj/Release/GFATask.FormSettings.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.FormSettings.resources differ diff --git a/GFATask/obj/Release/GFATask.Properties.Resources.resources b/GFATask/obj/Release/GFATask.Properties.Resources.resources new file mode 100644 index 0000000..b1f5e73 Binary files /dev/null and b/GFATask/obj/Release/GFATask.Properties.Resources.resources differ diff --git a/GFATask/obj/Release/GFATask.csproj.AssemblyReference.cache b/GFATask/obj/Release/GFATask.csproj.AssemblyReference.cache new file mode 100644 index 0000000..3181824 Binary files /dev/null and b/GFATask/obj/Release/GFATask.csproj.AssemblyReference.cache differ diff --git a/GFATask/obj/Release/GFATask.csproj.CopyComplete b/GFATask/obj/Release/GFATask.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/GFATask/obj/Release/GFATask.csproj.CoreCompileInputs.cache b/GFATask/obj/Release/GFATask.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..6566e3f --- /dev/null +++ b/GFATask/obj/Release/GFATask.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +98d020b57c4b8342875def635e15f8a365811e1b diff --git a/GFATask/obj/Release/GFATask.csproj.FileListAbsolute.txt b/GFATask/obj/Release/GFATask.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..432ac4a --- /dev/null +++ b/GFATask/obj/Release/GFATask.csproj.FileListAbsolute.txt @@ -0,0 +1,47 @@ +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\GFATask.exe.config +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\GFATask.exe +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\GFATask.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\CustomControls.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\CustomGraphics.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\ExScreen.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Extensions.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\FormEx.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\ILog.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Logging.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Microsoft.VisualStudio.DebuggerVisualizers.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Models.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Newtonsoft.Json.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\SystemManagement.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Win32API.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\XObjects.dll +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\CustomControls.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\CustomGraphics.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\ExScreen.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Extensions.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\FormEx.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\ILog.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Logging.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Models.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Newtonsoft.Json.xml +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\SystemManagement.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\Win32API.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\bin\Release\XObjects.pdb +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.csproj.AssemblyReference.cache +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.FormAppButtonGroup.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.FormAppCreator.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.FormAdmin.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.FormGroups.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.FormInfo.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.FormMain.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.FormSettings.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.ucAdminApps.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.ucAdminHelp.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.ucAdminWorldDays.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.ucAdminDesigns.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.ucAdminGeneral.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.Properties.Resources.resources +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.csproj.GenerateResource.cache +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.csproj.CoreCompileInputs.cache +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.csproj.CopyComplete +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.exe +D:\Anwendungsentwicklung\C#\GFATask\GFATask\obj\Release\GFATask.pdb diff --git a/GFATask/obj/Release/GFATask.csproj.GenerateResource.cache b/GFATask/obj/Release/GFATask.csproj.GenerateResource.cache new file mode 100644 index 0000000..767590b Binary files /dev/null and b/GFATask/obj/Release/GFATask.csproj.GenerateResource.cache differ diff --git a/GFATask/obj/Release/GFATask.exe b/GFATask/obj/Release/GFATask.exe new file mode 100644 index 0000000..3168ced Binary files /dev/null and b/GFATask/obj/Release/GFATask.exe differ diff --git a/GFATask/obj/Release/GFATask.pdb b/GFATask/obj/Release/GFATask.pdb new file mode 100644 index 0000000..ab88b77 Binary files /dev/null and b/GFATask/obj/Release/GFATask.pdb differ diff --git a/GFATask/obj/Release/GFATask.ucAdminApps.resources b/GFATask/obj/Release/GFATask.ucAdminApps.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.ucAdminApps.resources differ diff --git a/GFATask/obj/Release/GFATask.ucAdminDesigns.resources b/GFATask/obj/Release/GFATask.ucAdminDesigns.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.ucAdminDesigns.resources differ diff --git a/GFATask/obj/Release/GFATask.ucAdminGeneral.resources b/GFATask/obj/Release/GFATask.ucAdminGeneral.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.ucAdminGeneral.resources differ diff --git a/GFATask/obj/Release/GFATask.ucAdminHelp.resources b/GFATask/obj/Release/GFATask.ucAdminHelp.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.ucAdminHelp.resources differ diff --git a/GFATask/obj/Release/GFATask.ucAdminWorldDays.resources b/GFATask/obj/Release/GFATask.ucAdminWorldDays.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/GFATask/obj/Release/GFATask.ucAdminWorldDays.resources differ diff --git a/GFATask/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/GFATask/obj/Release/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..8fe5fa5 Binary files /dev/null and b/GFATask/obj/Release/TempPE/Properties.Resources.Designer.cs.dll differ diff --git a/GFATask/packages.config b/GFATask/packages.config new file mode 100644 index 0000000..149830a --- /dev/null +++ b/GFATask/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Models/Enum.cs b/Models/Enum.cs new file mode 100644 index 0000000..69ecfa5 --- /dev/null +++ b/Models/Enum.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace System +{ + /// + /// Definiert den Typen der App + /// + public enum AppType + { + /// + /// Keine bekannte Typen Zuordnung + /// + None = 0, + + /// + /// Eine Benutzer-App + /// + User = 1, + + /// + /// Eine Administrations-App + /// + Admin = 2, + + /// + /// Eine Favoriten-App + /// + Favorites = 3, + + /// + /// Eine Menü-App + /// + Menu = 4, + + /// + /// Eine Citrix-App + /// + Citrix = 5 + } +} diff --git a/Models/Models.cs b/Models/Models.cs new file mode 100644 index 0000000..4923162 --- /dev/null +++ b/Models/Models.cs @@ -0,0 +1,1040 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Security; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Newtonsoft.Json; + +namespace Models +{ + /// + /// Modelliert eine App-Liste + /// + [JsonObject(MemberSerialization.OptOut)] + public class AppList + { + + /// + /// Gibt den enthaltenen App-Typen in der Auflistung an + /// + [JsonProperty("type")] + public AppType Type + { + get; + set; + } = AppType.Favorites; + + /// + /// Die Auflistung der Apps + /// + [JsonProperty("apps")] + public List Apps + { + get; + set; + } = new List(); + } + + + /// + /// Eine Sammlung von Neuigkeiten für die Titelleiste + /// + [JsonObject(MemberSerialization.OptOut)] + public class NewsFeed + { + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("enable")] + public bool Enable { get; set; } + + [JsonProperty("icon")] + public string Icon { get; set; } + + [JsonProperty("title")] + public string Title { get; set; } + + [JsonProperty("begin")] + public Date Begin { get; set; } + + [JsonProperty("end")] + public Date End { get; set; } + + + public class Date + { + [JsonProperty("day")] + public int Day { get; set; } + + [JsonProperty("month")] + public int Month { get; set; } + } + + public override string ToString() + { + return string.Join("\n", GetType().GetProperties().Select(prop => $@"{prop.Name}: {prop.GetValue(this, null)}")); + } + } + + + /// + /// Modelliert die Attribute eines App-Rankings + /// + [JsonObject(MemberSerialization.OptOut)] + public class Prevalence + { + /// + /// Beliebtheit der Menü-Apps + /// + [JsonProperty("menu")] + public List Menu { get; set; } = new List(); + + /// + /// Beliebtheit der Admin-Apps + /// + [JsonProperty("admin")] + public List Admin { get; set; } = new List(); + + /// + /// Beliebtheit der User-Apps + /// + [JsonProperty("user")] + public List User { get; set; } = new List(); + + /// + /// Beliebtheit der Citrix-Apps + /// + [JsonProperty("citrix")] + public List Citrix { get; set; } = new List(); + + /// + /// Beliebtheit der Favoriten-Apps + /// + [JsonProperty("favorites")] + public List Favorites { get; set; } = new List(); + + + [JsonObject(MemberSerialization.OptOut)] + public class AppPrevalenceProperties + { + /// + /// Die eindeutige Identifikationsnummer der ausgeführten App + /// + [JsonProperty("id")] + public int ID { get; set; } + + /// + /// Häufigkeit der Appausführungen und die dadurch automatisierte Sortierung + /// + [JsonProperty("clickcounts")] + public int ClickCounts { get; set; } = 0; + } + } + + + + /// + /// Modelliert die Attribute einer App-Ausführungshäufigkeit + /// + [JsonObject(MemberSerialization.OptOut)] + public class ClickCounter + { + /// + /// Ausführungsanzahl der Menü-Apps + /// + [JsonProperty("menu")] + public List Menu { get; set; } = new List(); + + /// + /// Ausführungsanzahl der Admin-Apps + /// + [JsonProperty("admin")] + public List Admin { get; set; } = new List(); + + /// + /// Ausführungsanzahl der User-Apps + /// + [JsonProperty("user")] + public List User { get; set; } = new List(); + + + [JsonObject(MemberSerialization.OptOut)] + public class AppCounter + { + /// + /// Die eindeutige Identifikationsnummer der ausgeführten App + /// + [JsonProperty("app_id")] + public int ID { get; set; } + + /// + /// Name der ausgeführten App + /// + [JsonProperty("app_name")] + public string Name { get; set; } + + /// + /// Häufigkeit der Appausführungen + /// + [JsonProperty("counts")] + public int Counts { get; set; } = 0; + + /// + /// Letzte Appausführung + /// + [JsonProperty("lastclicked")] + public DateTime LastClicked { get; set; } + + /// + /// Erste Appausführung + /// + [JsonProperty("firstclicked")] + public DateTime FirstClicked { get; set; } + } + } + + + /// + /// Modelliert die Attribute einer App + /// + [JsonObject(MemberSerialization.OptOut)] + public class App + { + /// + /// Die eindeutige Identifikationsnummer + /// + [JsonProperty("id")] + public int ID { get; set; } + + + /// + /// Gibt eine Beschreibung über die App wieder + /// + [JsonProperty("description")] + public string Description { get; set; } + + + /// + /// Der Anzeigename der App + /// + [JsonProperty("name")] + public string Name { get; set; } + + + /// + /// Gruppierungsname mehrerer Apps für diese App + /// + [JsonProperty("group")] + public string Group { get; set; } + + + /// + /// Auflistung von Active Directory Gruppen, die dazu berechtigt sind, die App zu nutzen + /// + [JsonProperty("activedirectory_groups")] + public string[] ActiveDirectoryGroups { get; set; } + + + /// + /// Bestimmt, ob es sich um einen Prototypen handelt. Diese App wird nur für Admins angezeigt und erst mit deaktivieren dieser Eigenschaft für alle Berechtigten sichtbar + /// + [JsonProperty("prototype")] + public bool Prototype { get; set; } + + + /// + /// Ausführungsbefehle und optionale Argumente welche der Reihe nach ausgeführt werden, sofern diese fehlschlagen + /// + [JsonProperty("exec")] + public Execute[] Execute { get; set; } + + + /// + /// Gibt den Pfad zum Symbol der App an + /// + [JsonProperty("icon")] + public string Icon { get; set; } + + + /// + /// Gibt den Pfad zum Symbol der App an + /// + [JsonProperty("lastmodified")] + public DateTime LastModified { get; set; } + + + /// + /// Gibt den Pfad zum Symbol der App an + /// + [JsonProperty("created")] + public DateTime Created { get; set; } + + + /// + /// Erstelle eine Kopie des App-Objekts + /// + /// + public App Copy() + { + return (App)this.MemberwiseClone(); + } + + /// + /// Gibt das App-Modell in einer lesbaren Zeichenfolge aus + /// + /// + new public virtual string ToString() + { + return string.Join("\n", from property in this.GetType().GetProperties() select property.Name + ": " + property.GetValue(this, null)); + } + } + + + /// + /// Modelliert eine Ausführungsfunktion für eine App + /// + [JsonObject(MemberSerialization.OptOut)] + public class Execute + { + [JsonProperty("cmd")] + public string Command { get; set; } + + [JsonProperty("args")] + public string Args { get; set; } + + new public virtual string ToString() + { + return string.Join("\n", from property in this.GetType().GetProperties() select property.Name + ": " + property.GetValue(this, null)); + } + } + + + /// + /// Serialisiert die Json-Configs + /// + public class Config + { + [JsonObject(MemberSerialization.OptOut)] + public class Main + { + [JsonProperty("defaultwebbrowser")] + public string DefaultWebBrowser + { + get; + set; + } = "Microsoft Edge"; + + + [JsonProperty("webdomains")] + public string[] WebDomains + { + get; + set; + } + + + [JsonProperty("domainname")] + public string DomainName + { + get; + set; + } + + [JsonProperty("loggerapppath")] + public string LoggerAppPath + { + get; + set; + } + + [JsonProperty("citrix")] + public CitrixProperties Citrix + { + get; + set; + } + + + [JsonProperty("use_ad_groups")] + public bool UseActiveDirectoryGroups { get; set; } + + + [JsonProperty("administration")] + public AdministrationProperties Administration + { + get; + set; + } + + + [JsonProperty("font")] + public string FontFamily + { + get; + set; + } + + + [JsonProperty("colors")] + public ColorsProperties Colors + { + get; + set; + } + + + [JsonProperty("sizes")] + public SizesProperties Sizes + { + get; + set; + } + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class SizesProperties + { + [JsonProperty("window")] + public WindowProperties Window + { + get; + set; + } + + [JsonProperty("list")] + public ListSizeProperties List + { + get; + set; + } + } + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class WindowProperties + { + [JsonProperty("radius")] + public int Radius + { + get; + set; + } + + [JsonProperty("border")] + public int Border + { + get; + set; + } + } + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class ListSizeProperties + { + [JsonProperty("border")] + public Point Border + { + get; + set; + } + } + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class AppProperties + { + [JsonProperty("radius")] + public int Radius + { + get; + set; + } + + [JsonProperty("margin")] + public int Margin + { + get; + set; + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class CitrixProperties + { + [JsonProperty("xmlnodes")] + public string XMLNodes { get; set; } + + [JsonProperty("icons")] + public string Icons { get; set; } + + [JsonProperty("icaselfservice")] + public string ICASelfService { get; set; } + + [JsonProperty("appslocation")] + public string AppsLocation { get; set; } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class AdministrationProperties + { + [JsonProperty("remote_frontend_update")] + public bool RemoteFrontEndUpdate { get; set; } + + + [JsonProperty("ad_group")] + public string ActiveDirectoryGroup { get; set; } + + + [JsonProperty("accounts")] + public AccountProperties Accounts { get; set; } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class AccountProperties + { + [JsonProperty("mailaccount")] + public MailAccount Mail { get; set; } + + [JsonProperty("adminlogin")] + public AdminLogin Login { get; set; } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class MailAccount + { + [JsonProperty("host")] + public string Host { get; set; } + + [JsonProperty("sslport")] + public int SSLPort { get; set; } + + + [JsonProperty("username")] + public string UserName { get; set; } + + + [JsonProperty("securepassword")] + public int[] SecurePassword { get; set; } + + + [JsonProperty("mailmessage")] + public MailMessageProperties MailMessage { get; set; } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class MailMessageProperties + { + [JsonProperty("to")] + public string To { get; set; } + + + [JsonProperty("from")] + public FromProperties From { get; set; } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class FromProperties + { + [JsonProperty("address")] + public string Address { get; set; } + + [JsonProperty("displayname")] + public string DisplayName { get; set; } + } + } + + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class AdminLogin + { + [JsonProperty("securepassword")] + public int[] SecurePassword { get; set; } + } + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class ColorsProperties + { + [JsonProperty("loadinganimation")] + public LoadingAnimationColorProperties LoadingAnimation + { + get; + set; + } + + [JsonProperty("list")] + public ListColorProperties List + { + get; + set; + } + + [JsonProperty("window")] + public WindowProperties Window + { + get; + set; + } + + + [JsonProperty("groupwindow")] + public WindowProperties GroupWindow + { + get; + set; + } = new WindowProperties(); + + + [JsonProperty("apps")] + public AppsProperties Apps + { + get; + set; + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class LoadingAnimationColorProperties + { + [JsonProperty("dot1")] + public Color Dot1 + { + get; + set; + } + + [JsonProperty("dot2")] + public Color Dot2 + { + get; + set; + } + + [JsonProperty("dot3")] + public Color Dot3 + { + get; + set; + } + + [JsonProperty("dot4")] + public Color Dot4 + { + get; + set; + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class ListColorProperties + { + [JsonProperty("border")] + public Color Border + { + get; + set; + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class WindowProperties + { + [JsonProperty("backcolor")] + public Color BackColor + { + get; + set; + } + + [JsonProperty("action")] + public Color Action + { + get; + set; + } = Color.Orange; + + + [JsonProperty("titlebarbackcolor")] + public Color TitlebarBackColor + { + get; + set; + } + + + [JsonProperty("border")] + public Color Border + { + get; + set; + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class AppsProperties + { + [JsonProperty("default")] + public ColorsAppsProperties Default + { + get; + set; + } + + [JsonProperty("hover")] + public ColorsAppsProperties Hover + { + get; + set; + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class ColorsAppsProperties + { + [JsonProperty("backcolor")] + public Color BackColor + { + get; + set; + } + + [JsonProperty("forecolor")] + public Color ForeColor + { + get; + set; + } + + [JsonProperty("border")] + public Color Border + { + get; + set; + } + + + [JsonProperty("image")] + public Color Image + { + get; + set; + } + } + } + } + } + + + [JsonObject(MemberSerialization.OptOut)] + public class User + { + /// + /// Soll der GFATask im Dark Mode dargestellt werden + /// + [ + Description("Soll der GFATask im Dark Mode dargestellt werden"), + JsonProperty("darkmode") + ] + public bool DarkMode { get; set; } = false; + + + /// + /// Bestimmt, ob zum Einblenden des GFA-Task ein Klick benötigt wird. Verhindert das der GFA-Task beim berühren des oberen Bildschirmrands eingeblendet wird + /// + [ + Description("Bestimmt, ob zum Einblenden des GFA-Task ein Klick benötigt wird. Verhindert das der GFA-Task beim berühren des oberen Bildschirmrands eingeblendet wird"), + JsonProperty("necessary_click") + ] + public bool NecessaryClick { get; set; } = false; + + + /// + /// Bestimmt, ob bei der Sortierung der Apps nach Beliebtheit, oder Name vorgegangen wird + /// + [ + Description("Bestimmt, ob bei der Sortierung der Apps nach Beliebtheit, oder Name vorgegangen wird"), + JsonProperty("prevalence") + ] + public bool Prevalence { get; set; } = false; + + + /// + /// Bestimmt, ob die Ereiginisanzeige zur Fehleranalyse beim start des GFA-Task mitgestartet werden soll + /// + [ + Description("Bestimmt, ob die Ereiginisanzeige zur Fehleranalyse beim start des GFA-Task mitgestartet werden soll"), + JsonProperty("autostart_eventlogger") + ] + public bool ErrorHandle { get; set; } = false; + + + /// + /// Bestimmt, wie beim Programmstart mit den benutzerdefinierten Dateien umgegangen werden soll + /// + [ + Description("Bestimmt, wie beim Programmstart mit den benutzerdefinierten Dateien umgegangen werden soll"), + JsonProperty("deploy") + ] + public DeployProperties Deploy { get; set; } = new DeployProperties() { Backup = true, Overwrite = true }; + + + /// + /// Definiert den Bildschirm, auf dem der GFA-Task dargestellt werden soll + /// + [ + Description("Definiert den Bildschirm, auf dem der GFA-Task dargestellt werden soll"), + JsonProperty("screen") + ] + public string Screen { get; set; } = "DISPLAY1"; + + + /// + /// Definiert die Wartezeiten und Geschwindigkeit des Ein- und Ausblendprozesses des GFA-Tasks + /// + [ + Description("Definiert die Wartezeiten und Geschwindigkeit des Ein- und Ausblendprozesses des GFA-Tasks"), + JsonProperty("delay") + ] + public DelayProperties Delay { get; set; } = new DelayProperties() { Hide = 0.5F, Show = 0.5F, Speed = 70 }; + + + ///// + ///// + ///// + //[JsonProperty("locations")] + //public LocationProperties Locations { get; set; } + + + /// + /// Stellt den GFA-Task nach den gewünschten Eigenschaften dar + /// + [ + Description("Stellt den GFA-Task nach den gewünschten Eigenschaften dar"), + JsonProperty("window") + ] + public WindowProperties Window { get; set; } = new WindowProperties() { FontSize = 9F, Opacity = .95D, Size = new Size(940, 420) }; + + + /// + /// Stellt die Apps nach den gewünschten Eigenschaften dar + /// + [ + Description("Stellt die Apps nach den gewünschten Eigenschaften dar"), + JsonProperty("apps") + ] + public AppsProperties Apps { get; set; } = new AppsProperties() { Border = 0, Margin = 3, Size = new Size(140, 35), ImageOnly = false, Radius = new AppsProperties.RadiusProperties() { Button = 3, Image = 5 } }; + + + /// + /// Stellt die Listen nach den gewünschten Eigenschaften dar + /// + [ + Description("Stellt die Listen nach den gewünschten Eigenschaften dar"), + JsonProperty("lists") + ] + public ListsProperties Lists { get; set; } = new ListsProperties() + { + Admin = new ListProperties() { Grouping = true, Height = 100, Show = false }, + Citrix = new ListProperties() { Grouping = true, Height = 100, Show = false }, + Favorites = new ListProperties() { Grouping = true, Height = 55, Show = true }, + Menu = new ListProperties() { Grouping = true, Height = 55, Show = true }, + User = new ListProperties() { Grouping = true, Height = 100, Show = true } + }; + + + /// + /// Bestimmt beim Öffnen einer App-Gruppe, wie viele Apps in einer Zeile angezeigt werden sollen, bis in die nächste Zeile umgebrochen werden soll + /// + [ + Description("Bestimmt beim Öffnen einer App-Gruppe, wie viele Apps in einer Zeile angezeigt werden sollen, bis in die nächste Zeile umgebrochen werden soll"), + JsonProperty("grouplistcolumncount") + ] + public int GroupListColumnCount { get; set; } = 3; + + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class DeployProperties + { + [JsonProperty("overwrite")] + public bool Overwrite + { + get; + set; + } + + [JsonProperty("backup")] + public bool Backup + { + get; + set; + } + + new public virtual string ToString() + { + return string.Join("\n", from property in this.GetType().GetProperties() select property.Name + ": " + property.GetValue(this, null)); + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class DelayProperties + { + [JsonProperty("speed")] + public int Speed + { + get; + set; + } + + + [JsonProperty("show")] + public float Show + { + get; + set; + } + + + [JsonProperty("hide")] + public float Hide + { + get; + set; + } + + + new public virtual string ToString() + { + return string.Join("\n", from property in this.GetType().GetProperties() select property.Name + ": " + property.GetValue(this, null)); + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class ListsProperties + { + [JsonProperty("menu")] + public ListProperties Menu { get; set; } + + + [JsonProperty("citrix")] + public ListProperties Citrix { get; set; } + + + [JsonProperty("favorites")] + public ListProperties Favorites { get; set; } + + + [JsonProperty("admin")] + public ListProperties Admin { get; set; } + + + [JsonProperty("user")] + public ListProperties User { get; set; } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class WindowProperties + { + [JsonProperty("size")] + public Size Size { get; set; } + + [JsonProperty("actionregionheight")] + public int ActionRegionHeight { get; set; } = 3; + + [JsonProperty("font")] + public float FontSize { get; set; } + + [JsonProperty("opacity")] + public double Opacity { get; set; } + + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class AppsProperties + { + [JsonProperty("imageonly")] + public bool ImageOnly { get; set; } + + [JsonProperty("border")] + public int Border { get; set; } + + [JsonProperty("size")] + public Size Size { get; set; } + + [JsonProperty("margin")] + public int Margin { get; set; } + + [JsonProperty("radius")] + public RadiusProperties Radius { get; set; } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class RadiusProperties + { + [JsonProperty("button")] + public int Button { get; set; } + + [JsonProperty("image")] + public int Image { get; set; } + } + } + + + [EditorBrowsable(EditorBrowsableState.Never)] + [JsonObject(MemberSerialization.OptOut)] + public class ListProperties + { + [JsonProperty("height")] + public int Height { get; set; } = 96; + + [JsonProperty("show")] + public bool Show { get; set; } = false; + + [JsonProperty("grouping")] + public bool Grouping { get; set; } = false; + } + + new public virtual string ToString() + { + return string.Join("\n", from property in this.GetType().GetProperties() select property.Name + ": " + property.GetValue(this, null)); + } + } + } +} diff --git a/Models/Models.csproj b/Models/Models.csproj new file mode 100644 index 0000000..6cdd57a --- /dev/null +++ b/Models/Models.csproj @@ -0,0 +1,71 @@ + + + + + Debug + AnyCPU + {04DDE1A2-453D-4717-9221-5B9C5A49F010} + Library + Properties + Models + Models + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\DLLs\CustomControls\bin\Debug\CustomControls.dll + + + False + ..\..\DLLs\Extensions\bin\Debug\Extensions.dll + + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + ..\..\DLLs\SystemManagement\bin\Debug\SystemManagement.dll + + + ..\..\DLLs\Win32API\bin\Debug\Win32API.dll + + + + + + + + + + + + + \ No newline at end of file diff --git a/Models/Properties/AssemblyInfo.cs b/Models/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8568203 --- /dev/null +++ b/Models/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("Models")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Models")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("04dde1a2-453d-4717-9221-5b9c5a49f010")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Models/StructureCheck.cs b/Models/StructureCheck.cs new file mode 100644 index 0000000..9855328 --- /dev/null +++ b/Models/StructureCheck.cs @@ -0,0 +1,70 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Models +{ + public class Compare + { + /// + /// Vergleicht die JSON-Datei-Struktur mit dem Vorlagen-Model + /// + /// Gibt die fehlenden Eigenschaften aus + public static IEnumerable Structure(string filepath) + { + foreach (var property in typeof(T).GetProperties()) + { + if (!Exists(filepath, property.GetPropertyAttribute().PropertyName)) + { + yield return property.GetPropertyAttribute(); + } + } + } + + + /// + /// Vergleicht die JSON-Datei-Struktur mit dem Vorlagen-Model + /// + /// Gibt die fehlenden Eigenschaften aus + public static IEnumerable StructurePrevalence(string filepath) + { + foreach (var property in new AppList().GetType().GetProperties()) + { + if (!Exists(filepath, property.GetPropertyAttribute().PropertyName)) + { + yield return property.GetPropertyAttribute(); + } + } + } + + + /// + /// Vergleicht die JSON-Datei-Struktur mit dem Vorlagen-Model + /// + /// Gibt die fehlenden Eigenschaften aus + public static IEnumerable StructureUserConfig(string filepath) + { + foreach (var property in new Config.User().GetType().GetProperties()) + { + if (!Exists(filepath, property.GetPropertyAttribute().PropertyName)) + { + yield return property.GetPropertyAttribute().PropertyName; + } + } + } + + + private static bool Exists(string path, string propertyname) + { + dynamic jsonobject = JsonConvert.DeserializeObject(string.Concat(JObject.Parse(File.ReadAllText(path))), new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Include, Formatting = Formatting.Indented }); + return jsonobject.ContainsKey(propertyname); + } + } +} diff --git a/Models/bin/Debug/CustomControls.dll b/Models/bin/Debug/CustomControls.dll new file mode 100644 index 0000000..ee4d705 Binary files /dev/null and b/Models/bin/Debug/CustomControls.dll differ diff --git a/Models/bin/Debug/CustomControls.pdb b/Models/bin/Debug/CustomControls.pdb new file mode 100644 index 0000000..8c929d3 Binary files /dev/null and b/Models/bin/Debug/CustomControls.pdb differ diff --git a/Models/bin/Debug/CustomGraphics.dll b/Models/bin/Debug/CustomGraphics.dll new file mode 100644 index 0000000..67841b2 Binary files /dev/null and b/Models/bin/Debug/CustomGraphics.dll differ diff --git a/Models/bin/Debug/CustomGraphics.pdb b/Models/bin/Debug/CustomGraphics.pdb new file mode 100644 index 0000000..a671d26 Binary files /dev/null and b/Models/bin/Debug/CustomGraphics.pdb differ diff --git a/Models/bin/Debug/Extensions.dll b/Models/bin/Debug/Extensions.dll new file mode 100644 index 0000000..e669b9f Binary files /dev/null and b/Models/bin/Debug/Extensions.dll differ diff --git a/Models/bin/Debug/Extensions.pdb b/Models/bin/Debug/Extensions.pdb new file mode 100644 index 0000000..64565b7 Binary files /dev/null and b/Models/bin/Debug/Extensions.pdb differ diff --git a/Models/bin/Debug/Models.dll b/Models/bin/Debug/Models.dll new file mode 100644 index 0000000..40f1918 Binary files /dev/null and b/Models/bin/Debug/Models.dll differ diff --git a/Models/bin/Debug/Models.pdb b/Models/bin/Debug/Models.pdb new file mode 100644 index 0000000..f3411ed Binary files /dev/null and b/Models/bin/Debug/Models.pdb differ diff --git a/Models/bin/Debug/Newtonsoft.Json.dll b/Models/bin/Debug/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/Models/bin/Debug/Newtonsoft.Json.dll differ diff --git a/Models/bin/Debug/Newtonsoft.Json.xml b/Models/bin/Debug/Newtonsoft.Json.xml new file mode 100644 index 0000000..955e685 --- /dev/null +++ b/Models/bin/Debug/Newtonsoft.Json.xml @@ -0,0 +1,11305 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + 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. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously 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 . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate 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 responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null 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 https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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 will exclude messages and include , + and 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 object constructor. + + The 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/Models/bin/Debug/SystemManagement.dll b/Models/bin/Debug/SystemManagement.dll new file mode 100644 index 0000000..d97e49e Binary files /dev/null and b/Models/bin/Debug/SystemManagement.dll differ diff --git a/Models/bin/Debug/SystemManagement.pdb b/Models/bin/Debug/SystemManagement.pdb new file mode 100644 index 0000000..81fdaea Binary files /dev/null and b/Models/bin/Debug/SystemManagement.pdb differ diff --git a/Models/bin/Debug/Win32API.dll b/Models/bin/Debug/Win32API.dll new file mode 100644 index 0000000..dcf421f Binary files /dev/null and b/Models/bin/Debug/Win32API.dll differ diff --git a/Models/bin/Debug/Win32API.pdb b/Models/bin/Debug/Win32API.pdb new file mode 100644 index 0000000..4c9dc2b Binary files /dev/null and b/Models/bin/Debug/Win32API.pdb differ diff --git a/Models/bin/Debug/XObjects.dll b/Models/bin/Debug/XObjects.dll new file mode 100644 index 0000000..827cbb4 Binary files /dev/null and b/Models/bin/Debug/XObjects.dll differ diff --git a/Models/bin/Debug/XObjects.pdb b/Models/bin/Debug/XObjects.pdb new file mode 100644 index 0000000..4a38e07 Binary files /dev/null and b/Models/bin/Debug/XObjects.pdb differ diff --git a/Models/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/Models/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..3cf0af3 --- /dev/null +++ b/Models/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/Models/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Models/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..fc240a3 Binary files /dev/null and b/Models/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/Models/obj/Debug/Models.csproj.AssemblyReference.cache b/Models/obj/Debug/Models.csproj.AssemblyReference.cache new file mode 100644 index 0000000..204fdef Binary files /dev/null and b/Models/obj/Debug/Models.csproj.AssemblyReference.cache differ diff --git a/Models/obj/Debug/Models.csproj.CopyComplete b/Models/obj/Debug/Models.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/Models/obj/Debug/Models.csproj.CoreCompileInputs.cache b/Models/obj/Debug/Models.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..899157c --- /dev/null +++ b/Models/obj/Debug/Models.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +36c636c7f289954fe33825e6d1befa138661f2c1 diff --git a/Models/obj/Debug/Models.csproj.FileListAbsolute.txt b/Models/obj/Debug/Models.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..7d37dc1 --- /dev/null +++ b/Models/obj/Debug/Models.csproj.FileListAbsolute.txt @@ -0,0 +1,21 @@ +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Models.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Models.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\CustomControls.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Extensions.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Newtonsoft.Json.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\SystemManagement.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Win32API.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\CustomGraphics.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\XObjects.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\CustomControls.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Extensions.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Newtonsoft.Json.xml +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\SystemManagement.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\Win32API.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\CustomGraphics.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\bin\Debug\XObjects.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\obj\Debug\Models.csproj.CoreCompileInputs.cache +D:\Anwendungsentwicklung\C#\GFATask\Models\obj\Debug\Models.csproj.CopyComplete +D:\Anwendungsentwicklung\C#\GFATask\Models\obj\Debug\Models.dll +D:\Anwendungsentwicklung\C#\GFATask\Models\obj\Debug\Models.pdb +D:\Anwendungsentwicklung\C#\GFATask\Models\obj\Debug\Models.csproj.AssemblyReference.cache diff --git a/Models/obj/Debug/Models.dll b/Models/obj/Debug/Models.dll new file mode 100644 index 0000000..40f1918 Binary files /dev/null and b/Models/obj/Debug/Models.dll differ diff --git a/Models/obj/Debug/Models.pdb b/Models/obj/Debug/Models.pdb new file mode 100644 index 0000000..f3411ed Binary files /dev/null and b/Models/obj/Debug/Models.pdb differ diff --git a/Models/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/Models/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..3cf0af3 --- /dev/null +++ b/Models/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/Models/obj/Release/Models.csproj.AssemblyReference.cache b/Models/obj/Release/Models.csproj.AssemblyReference.cache new file mode 100644 index 0000000..3af5713 Binary files /dev/null and b/Models/obj/Release/Models.csproj.AssemblyReference.cache differ diff --git a/Models/packages.config b/Models/packages.config new file mode 100644 index 0000000..149830a --- /dev/null +++ b/Models/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ca69b45 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# GFATask +Anpassbare Windows-Desktop Schnellstartleiste in C#.NET + +## Entstehungsgeschichte +Gestartet unter dem Projektnamen "Quickstarter", entwickelte sich das Tool als vollwertige Windows-Startmenü /-Alternative /-Zusatz.
+ +Anfänglich konnten nur bestimmte Apps per XML-Datei bereitgestellt werden. Nachdem das Projekt von mir übernommen wurde, erweiterte sich der Funktionsumfang um mehrere brauchbare und persönlich anpassbare Elemente, ein App-Click-Counter (Apps werden nach Häufigkeit der Nutzung sortiert), NewsFeed, Animationen. + + +## Features +#### Administrationskonsole: +* AD-Nutzung für App-Berechtigungen (individuelle Anzeige von Apps anhand von AD-Gruppen) +* Größenverhältnis der Liste / Schaltflächen +* Farbumgebung +* Anzeige von Listen-Bereichen +* Unendlich viele Newsfeeds für als Informationsbanner + +#### Benutzereinstellungen: +* Schriftgröße +* Darkmode +* Schaltflächen mit und ohne Text +* Größe des GFATasks +* Backups von App-Click-Counter, Apps, Favoriten + + + +## TECHNICAL UNDERSTANDING +* Über mehrere Anpassungen des Grundgerüsts: +* * ##### Speicherung der Daten in einer SQL-Datenbank +* * ##### Speicherung der Daten in einer xml-Datei +* Generische Apps (Allgemein / Menü / Citrix) werden nun in *.json Dateien abgelegt +* JSON-Dateien werden per Modelling-Schnittstelle von Newtonsoft.JSON mit den .json Dateien verknüpft +* Eigene Dateien / Ordner können im Favoriten-Bereich verknüpft werden +* Automatische HTML- / Datei- / Ordner-Erkennung bei App-Klick +* Zuschaltbare Berechtigungseinstellungen, per AD-Gruppen +* Citrix-Apps werden aus dem benutzerdefiniertem lokalen ProgramData Ordner ausgelesen (und sofern möglich, Icons extrahiert) +* Allgemeine Apps sind öffentlich für alle verfügbar, sofern +* * #### keine AD-Gruppen als Berechtigung in der .json Datei angegeben wurden +* * #### Die Berechtigungen vom Administrator nicht zugeschaltet wurden +#### Dadurch: +* * Volle Kontrolle der App-Einrichtung +* * Keine überdimensionierte Lösungen (wie Datenbank und Abhängigkeiten anderer Komponenten (Treiber / Datenbanken)) +* * Kostenersparnis durch Lizenzseinsparungen + +* Generische Apps können in einem Favoriten-Bereich abgelegt werden. Diese werden im Roaming-Profil abgelegt +* Ein Keyboard-Hook wurde implementiert. Apps können über Shortcuts aufgerufen werden, ohne die Leiste anzuzeigen diff --git a/apps.json b/apps.json new file mode 100644 index 0000000..fabb0f3 --- /dev/null +++ b/apps.json @@ -0,0 +1,24 @@ +{ + "type": [int: 1:user.json | 2:admin.json | 4:menu.json , + "apps": array-App:[ + { + "id": [int: if manually added, then incremental number, else by adminconsole: auto_increment], + "description": [string: Tooltip], + "name": [string: Appname] + "group": [string: Groupname], + "activedirectory_groups": string-array: [ + [string: AD-Groupname] + ], + "prototype": [boolean: true|false (App hidden?)], + "exec": [ + { + "cmd": [string: html, filepath, full filename], + "args": [string: optional, if required] + } + ], + "icon": [string: Image filename], + "lastmodified": [datetime-string: autofill], + "created": [datetime-string: autofill] + }, + ] +} diff --git a/packages/Newtonsoft.Json.13.0.1/.signature.p7s b/packages/Newtonsoft.Json.13.0.1/.signature.p7s new file mode 100644 index 0000000..988b1e1 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/.signature.p7s differ diff --git a/packages/Newtonsoft.Json.13.0.1/LICENSE.md b/packages/Newtonsoft.Json.13.0.1/LICENSE.md new file mode 100644 index 0000000..6cc88f2 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/Newtonsoft.Json.13.0.1/Newtonsoft.Json.13.0.1.nupkg b/packages/Newtonsoft.Json.13.0.1/Newtonsoft.Json.13.0.1.nupkg new file mode 100644 index 0000000..9eb2ddd Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/Newtonsoft.Json.13.0.1.nupkg differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.dll new file mode 100644 index 0000000..d40ac9c Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.xml new file mode 100644 index 0000000..8b299cd --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.xml @@ -0,0 +1,10335 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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 . + + + + + 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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. + + 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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 containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, 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 s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying . + + + 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 destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + + 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. + + + + 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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. + + + + + 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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. + + + + 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. + + + + 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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. + + + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null 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 https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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. + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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 will exclude messages and include , + and 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. + + + + 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 or sets the object constructor. + + The 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Provides a set of static (Shared in Visual Basic) methods for + querying objects that implement . + + + + + Returns the input typed as . + + + + + Returns an empty that has the + specified type argument. + + + + + Converts the elements of an to the + specified type. + + + + + Filters the elements of an based on a specified type. + + + + + Generates a sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + + + + Generates a sequence that contains one repeated value. + + + + + Filters a sequence of values based on a predicate. + + + + + Filters a sequence of values based on a predicate. + Each element's index is used in the logic of the predicate function. + + + + + Projects each element of a sequence into a new form. + + + + + Projects each element of a sequence into a new form by + incorporating the element's index. + + + + + Projects each element of a sequence to an + and flattens the resulting sequences into one sequence. + + + + + Projects each element of a sequence to an , + and flattens the resulting sequences into one sequence. The + index of each source element is used in the projected form of + that element. + + + + + Projects each element of a sequence to an , + flattens the resulting sequences into one sequence, and invokes + a result selector function on each element therein. + + + + + Projects each element of a sequence to an , + flattens the resulting sequences into one sequence, and invokes + a result selector function on each element therein. The index of + each source element is used in the intermediate projected form + of that element. + + + + + Returns elements from a sequence as long as a specified condition is true. + + + + + Returns elements from a sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + + + + Base implementation of First operator. + + + + + Returns the first element of a sequence. + + + + + Returns the first element in a sequence that satisfies a specified condition. + + + + + Returns the first element of a sequence, or a default value if + the sequence contains no elements. + + + + + Returns the first element of the sequence that satisfies a + condition or a default value if no such element is found. + + + + + Base implementation of Last operator. + + + + + Returns the last element of a sequence. + + + + + Returns the last element of a sequence that satisfies a + specified condition. + + + + + Returns the last element of a sequence, or a default value if + the sequence contains no elements. + + + + + Returns the last element of a sequence that satisfies a + condition or a default value if no such element is found. + + + + + Base implementation of Single operator. + + + + + Returns the only element of a sequence, and throws an exception + if there is not exactly one element in the sequence. + + + + + Returns the only element of a sequence that satisfies a + specified condition, and throws an exception if more than one + such element exists. + + + + + Returns the only element of a sequence, or a default value if + the sequence is empty; this method throws an exception if there + is more than one element in the sequence. + + + + + Returns the only element of a sequence that satisfies a + specified condition or a default value if no such element + exists; this method throws an exception if more than one element + satisfies the condition. + + + + + Returns the element at a specified index in a sequence. + + + + + Returns the element at a specified index in a sequence or a + default value if the index is out of range. + + + + + Inverts the order of the elements in a sequence. + + + + + Returns a specified number of contiguous elements from the start + of a sequence. + + + + + Bypasses a specified number of elements in a sequence and then + returns the remaining elements. + + + + + Bypasses elements in a sequence as long as a specified condition + is true and then returns the remaining elements. + + + + + Bypasses elements in a sequence as long as a specified condition + is true and then returns the remaining elements. The element's + index is used in the logic of the predicate function. + + + + + Returns the number of elements in a sequence. + + + + + Returns a number that represents how many elements in the + specified sequence satisfy a condition. + + + + + Returns a that represents the total number + of elements in a sequence. + + + + + Returns a that represents how many elements + in a sequence satisfy a condition. + + + + + Concatenates two sequences. + + + + + Creates a from an . + + + + + Creates an array from an . + + + + + Returns distinct elements from a sequence by using the default + equality comparer to compare values. + + + + + Returns distinct elements from a sequence by using a specified + to compare values. + + + + + Creates a from an + according to a specified key + selector function. + + + + + Creates a from an + according to a specified key + selector function and a key comparer. + + + + + Creates a from an + according to specified key + and element selector functions. + + + + + Creates a from an + according to a specified key + selector function, a comparer and an element selector function. + + + + + Groups the elements of a sequence according to a specified key + selector function. + + + + + Groups the elements of a sequence according to a specified key + selector function and compares the keys by using a specified + comparer. + + + + + Groups the elements of a sequence according to a specified key + selector function and projects the elements for each group by + using a specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. + + + + + Groups the elements of a sequence according to a key selector + function. The keys are compared by using a comparer and each + group's elements are projected by using a specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. The elements of each group are projected by using a + specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. The keys are compared by using a specified comparer. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. Key values are compared by using a specified comparer, + and the elements of each group are projected by using a + specified function. + + + + + Applies an accumulator function over a sequence. + + + + + Applies an accumulator function over a sequence. The specified + seed value is used as the initial accumulator value. + + + + + Applies an accumulator function over a sequence. The specified + seed value is used as the initial accumulator value, and the + specified function is used to select the result value. + + + + + Produces the set union of two sequences by using the default + equality comparer. + + + + + Produces the set union of two sequences by using a specified + . + + + + + Returns the elements of the specified sequence or the type + parameter's default value in a singleton collection if the + sequence is empty. + + + + + Returns the elements of the specified sequence or the specified + value in a singleton collection if the sequence is empty. + + + + + Determines whether all elements of a sequence satisfy a condition. + + + + + Determines whether a sequence contains any elements. + + + + + Determines whether any element of a sequence satisfies a + condition. + + + + + Determines whether a sequence contains a specified element by + using the default equality comparer. + + + + + Determines whether a sequence contains a specified element by + using a specified . + + + + + Determines whether two sequences are equal by comparing the + elements by using the default equality comparer for their type. + + + + + Determines whether two sequences are equal by comparing their + elements by using a specified . + + + + + Base implementation for Min/Max operator. + + + + + Base implementation for Min/Max operator for nullable types. + + + + + Returns the minimum value in a generic sequence. + + + + + Invokes a transform function on each element of a generic + sequence and returns the minimum resulting value. + + + + + Returns the maximum value in a generic sequence. + + + + + Invokes a transform function on each element of a generic + sequence and returns the maximum resulting value. + + + + + Makes an enumerator seen as enumerable once more. + + + The supplied enumerator must have been started. The first element + returned is the element the enumerator was on when passed in. + DO NOT use this method if the caller must be a generator. It is + mostly safe among aggregate operations. + + + + + Sorts the elements of a sequence in ascending order according to a key. + + + + + Sorts the elements of a sequence in ascending order by using a + specified comparer. + + + + + Sorts the elements of a sequence in descending order according to a key. + + + + + Sorts the elements of a sequence in descending order by using a + specified comparer. + + + + + Performs a subsequent ordering of the elements in a sequence in + ascending order according to a key. + + + + + Performs a subsequent ordering of the elements in a sequence in + ascending order by using a specified comparer. + + + + + Performs a subsequent ordering of the elements in a sequence in + descending order, according to a key. + + + + + Performs a subsequent ordering of the elements in a sequence in + descending order by using a specified comparer. + + + + + Base implementation for Intersect and Except operators. + + + + + Produces the set intersection of two sequences by using the + default equality comparer to compare values. + + + + + Produces the set intersection of two sequences by using the + specified to compare values. + + + + + Produces the set difference of two sequences by using the + default equality comparer to compare values. + + + + + Produces the set difference of two sequences by using the + specified to compare values. + + + + + Creates a from an + according to a specified key + selector function. + + + + + Creates a from an + according to a specified key + selector function and key comparer. + + + + + Creates a from an + according to specified key + selector and element selector functions. + + + + + Creates a from an + according to a specified key + selector function, a comparer, and an element selector function. + + + + + Correlates the elements of two sequences based on matching keys. + The default equality comparer is used to compare keys. + + + + + Correlates the elements of two sequences based on matching keys. + The default equality comparer is used to compare keys. A + specified is used to compare keys. + + + + + Correlates the elements of two sequences based on equality of + keys and groups the results. The default equality comparer is + used to compare keys. + + + + + Correlates the elements of two sequences based on equality of + keys and groups the results. The default equality comparer is + used to compare keys. A specified + is used to compare keys. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Represents a collection of objects that have a common key. + + + + + Gets the key of the . + + + + + Defines an indexer, size property, and Boolean search method for + data structures that map keys to + sequences of values. + + + + + Represents a sorted sequence. + + + + + Performs a subsequent ordering on the elements of an + according to a key. + + + + + Represents a collection of keys each mapped to one or more values. + + + + + Gets the number of key/value collection pairs in the . + + + + + Gets the collection of values indexed by the specified key. + + + + + Determines whether a specified key is in the . + + + + + Applies a transform function to each key and its associated + values and returns the results. + + + + + Returns a generic enumerator that iterates through the . + + + + + See issue #11 + for why this method is needed and cannot be expressed as a + lambda at the call site. + + + + + See issue #11 + for why this method is needed and cannot be expressed as a + lambda at the call site. + + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + This attribute allows us to define extension methods without + requiring .NET Framework 3.5. For more information, see the section, + Extension Methods in .NET Framework 2.0 Apps, + of Basic Instincts: Extension Methods + column in MSDN Magazine, + issue Nov 2007. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.dll new file mode 100644 index 0000000..fce555f Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.xml new file mode 100644 index 0000000..0b6ec51 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.xml @@ -0,0 +1,9483 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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 an Entity Framework 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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 containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, 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 s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + 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 destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + + 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. + + + + 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate 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. + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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. + + + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null 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 https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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. + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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 will exclude messages and include , + and 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. + + + + 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 or sets the object constructor. + + The 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.dll new file mode 100644 index 0000000..978356d Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.xml new file mode 100644 index 0000000..3d61e8e --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.xml @@ -0,0 +1,9683 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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 containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, 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 s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + 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 destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate 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 responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null 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 https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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 will exclude messages and include , + and 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 object constructor. + + The 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.xml new file mode 100644 index 0000000..955e685 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.xml @@ -0,0 +1,11305 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + 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. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously 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 . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate 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 responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null 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 https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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 will exclude messages and include , + and 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 object constructor. + + The 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..8464ac9 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.xml new file mode 100644 index 0000000..fd243d6 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.xml @@ -0,0 +1,10993 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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. + + + + + 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null if no inner exception is specified. + + + + 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + 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. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously 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 . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 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. + + + + 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null if no inner exception is specified. + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + Allows users to control class loading and mandate what class to load. + + + + + 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. + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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 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 IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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. + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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. + + + + 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 . + + + + + 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 what messages to output for the class. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + List of primitive types which can be widened. + + + + + Widening masks for primitive types above. + Index of the value in this array defines a type we're widening, + while the bits in mask define types it can be widened to (including itself). + + For example, value at index 0 defines a bool type, and it only has bit 0 set, + i.e. bool values can be assigned only to bool. + + + + + Checks if value of primitive type can be + assigned to parameter of primitive type . + + Source primitive type. + Target primitive type. + true if source type can be widened to target type, false otherwise. + + + + Checks if a set of values with given can be used + to invoke a method with specified . + + Method parameters. + Argument types. + Try to pack extra arguments into the last parameter when it is marked up with . + true if method can be called with given arguments, false otherwise. + + + + Compares two sets of parameters to determine + which one suits better for given argument types. + + + + + Returns a best method overload for given argument . + + List of method candidates. + Argument types. + Best method overload, or null if none matched. + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.dll new file mode 100644 index 0000000..e59bef4 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.xml new file mode 100644 index 0000000..12c0d9e --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.xml @@ -0,0 +1,11115 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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. + + + + + 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null if no inner exception is specified. + + + + 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + 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. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously 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 . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 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. + + + + 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate 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 responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null if no inner exception is specified. + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + Allows users to control class loading and mandate what class to load. + + + + + 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. + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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 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. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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. + + + + 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 object constructor. + + The 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 what messages to output for the class. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + List of primitive types which can be widened. + + + + + Widening masks for primitive types above. + Index of the value in this array defines a type we're widening, + while the bits in mask define types it can be widened to (including itself). + + For example, value at index 0 defines a bool type, and it only has bit 0 set, + i.e. bool values can be assigned only to bool. + + + + + Checks if value of primitive type can be + assigned to parameter of primitive type . + + Source primitive type. + Target primitive type. + true if source type can be widened to target type, false otherwise. + + + + Checks if a set of values with given can be used + to invoke a method with specified . + + Method parameters. + Argument types. + Try to pack extra arguments into the last parameter when it is marked up with . + true if method can be called with given arguments, false otherwise. + + + + Compares two sets of parameters to determine + which one suits better for given argument types. + + + + + Returns a best method overload for given argument . + + List of method candidates. + Argument types. + Best method overload, or null if none matched. + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..1ffeabe Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.xml new file mode 100644 index 0000000..0181ce3 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.xml @@ -0,0 +1,11280 @@ + + + + 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 BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be 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 containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + 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 containing the BSON data to read. + 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 underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON 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 to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes 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 writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized 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. + + + + + Creates 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 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 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. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; 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. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; 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 Unix epoch time + + + + + 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 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 produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value 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 attribute 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. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; 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 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 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. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + 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 it 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 set 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 of property. + + + + + 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 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 an 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 and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when 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 or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 .NET 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 should be 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 of 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 should be formatted. + A collection of 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 to write out the type name if the type of the value does not match. + Specifying 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 should be 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 should be 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + 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 inferred 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 inferred 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. + + + + 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. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value 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 . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + 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 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. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + 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. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + 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. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . 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 null 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. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + 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 type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = 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 reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A 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 method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is 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 source should be closed when this reader is closed. + + + true to close the source when this 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. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets 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 . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET 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. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null 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 source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . 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 current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + 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 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. + The default value is . + + + 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 . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + 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. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + 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 read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read 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 + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + 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 to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + 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) are handled. + The default value is . + + 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. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + 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 default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + 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 . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + 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 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. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + 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. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null 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 underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of 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 comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read 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 https://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 .NET 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. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + 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. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of 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. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously 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 . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this 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. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + 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 of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of 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 . + null can be passed to the method for tokens 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 of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of 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 a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes 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 . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing 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 null 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). + + + + Initializes a new instance of the class + with a specified error message, JSON path 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 path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + 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 of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + 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 . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + 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 . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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 of 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 of 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 a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child 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 can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of 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. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + 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 of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a 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 . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid 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. + + is not valid 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. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate 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 responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a 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. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + 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 a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a 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. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + 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. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + 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. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously 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. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a 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. + + + + + 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. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + 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 of . + + 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 of . + + 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of 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 of 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 of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A 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 an instance of 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 an instance of 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 an instance of 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 an instance of 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 . + + A positioned at the token to read into this . + + A 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. + + A 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 . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A 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 . + + A positioned at the token to read into this . + + A 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 JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath 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 using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of 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. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + 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 written. + + The token being written. + + + + 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 . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + 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 be 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 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). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + 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 s 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. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + 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 of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + 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 . + + + + + + + + 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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://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 https://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 https://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 https://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 https://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 divisible by. + + A number that the value should be divisible 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 disallowed 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 JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + 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 https://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 null 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 https://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 https://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 https://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 https://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 https://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 https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve 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. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + 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 name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + 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 naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + 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 will exclude messages and include , + and 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 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 resolve 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 was resolved from the reference. + + + + Gets the reference for the specified 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. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, 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 implemented, 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. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and 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 the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this 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 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 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 object constructor. + + The 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 the missing member handling used when deserializing this object. + + The missing member handling. + + + + 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 or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + 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. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + 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 precedence 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 a value indicating whether has a value specified. + + + + + 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 serialized. + + A predicate used to determine whether the property should be serialized. + + + + 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 type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets 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 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 type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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 will exclude messages and include , + and 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. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + 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. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + 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. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + 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 . + + + + + 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. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + 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 . + + The list to add to. + The collection of elements to add. + + + + 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 + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + 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 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 this class lets you reuse its 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. + + + + + 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 result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/packages/Newtonsoft.Json.13.0.1/packageIcon.png b/packages/Newtonsoft.Json.13.0.1/packageIcon.png new file mode 100644 index 0000000..10c06a5 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/packageIcon.png differ