diff --git a/pwiz_tools/Skyline/CleanSkyline.bat b/pwiz_tools/Skyline/CleanSkyline.bat index 72535252110..7c66956a6a9 100644 --- a/pwiz_tools/Skyline/CleanSkyline.bat +++ b/pwiz_tools/Skyline/CleanSkyline.bat @@ -50,6 +50,8 @@ IF EXIST Executables\Installer\FileList64.txt del /q Executables\Installer\FileL IF EXIST Executables\Hardklor\obj rmdir /s /q Executables\Hardklor\obj IF EXIST Executables\Hardklor\x64 rmdir /s /q Executables\Hardklor\x64 IF EXIST Executables\SkylineBatch\SkylineBatch\Properties\AssemblyInfo.cs del /q Executables\SkylineBatch\SkylineBatch\Properties\AssemblyInfo.cs +IF EXIST Executables\DevTools\TutorialLocalizer\obj rmdir /s /q Executables\DevTools\TutorialLocalizer\obj +IF EXIST Executables\DevTools\TutorialLocalizer\bin rmdir /s /q Executables\DevTools\TutorialLocalizer\bin IF EXIST Properties\AssemblyInfo.cs del /q Properties\AssemblyInfo.cs IF EXIST SkylineCmd\Properties\AssemblyInfo.cs del /q SkylineCmd\Properties\AssemblyInfo.cs IF EXIST SkylineNightly\Properties\AssemblyInfo.cs del /q SkylineNightly\Properties\AssemblyInfo.cs diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/Jamfile.jam b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/Jamfile.jam new file mode 100644 index 00000000000..6f9de8f18a5 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/Jamfile.jam @@ -0,0 +1,63 @@ +import modules path feature ; + +rule build-properties ( targets + : sources * : properties * ) +{ + local .msvcSetupScript = [ get-current-msvc-setup-script $(properties) ] ; + + path-constant SKYLINE_PATH : $(PWIZ_ROOT_PATH)/pwiz_tools/Skyline ; + path-constant CURRENT_DIR : $(SKYLINE_PATH)/Executables/DevTools/TutorialLocalization ; + path-constant OUTPUT_DIR : $(CURRENT_DIR)/TutorialLocalization/bin/Release ; + JAM_SEMAPHORE on $(targets) = "dotNetSemaphore" ; + MSVC_CURRENT_SETUP_SCRIPT on $(targets) = $(.msvcSetupScript) ; +} + +rule do_tutorial_localization ( targets + : sources * : properties * ) +{ + return [ build-properties $(targets) : $(sources) : $(properties) ] ; +} + +actions do_tutorial_localization +{ + $(MSVC_CURRENT_SETUP_SCRIPT) + echo Building $(current-dir) TutorialLocalization.exe + msbuild $(CURRENT_DIR)\TutorialLocalization\TutorialLocalization.csproj /p:Configuration=Release;OutDir=$(OUTPUT_DIR) /nologo /verbosity:minimal + set status=%ERRORLEVEL% + exit %status% +} + +make TutorialLocalization.exe + : # sources + : # actions + @do_tutorial_localization + : # requirements + shared:no + @no-express-requirement + @msvc-dotnet-requirement +; + +rule do_merged_tutorials ( targets + : sources * : properties * ) +{ + return [ build-properties $(targets) : $(sources) : $(properties) ] ; +} + +actions do_merged_tutorials +{ + echo creating MergedTutorials.zip + $(OUTPUT_DIR)\TutorialLocalization.exe $(SKYLINE_PATH)/Documentation/Tutorials --output $(OUTPUT_DIR)/MergedTutorials.zip + set status=%ERRORLEVEL% + exit %status% +} + + +make MergedTutorials.zip + : # sources + : # actions + @do_merged_tutorials + : # requirements + shared:no + @no-express-requirement + @msvc-dotnet-requirement + TutorialLocalization.exe + ; + + diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization.sln b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization.sln new file mode 100644 index 00000000000..611b51552a3 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TutorialLocalization", "TutorialLocalization\TutorialLocalization.csproj", "{B61C5AAE-F385-41D6-B2D1-6FAA8818FB43}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B61C5AAE-F385-41D6-B2D1-6FAA8818FB43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B61C5AAE-F385-41D6-B2D1-6FAA8818FB43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B61C5AAE-F385-41D6-B2D1-6FAA8818FB43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B61C5AAE-F385-41D6-B2D1-6FAA8818FB43}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D6850040-8E3F-4C9D-958E-EC4F251BC0AC} + EndGlobalSection +EndGlobal diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/App.config b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/App.config new file mode 100644 index 00000000000..56efbc7b5f1 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/LocalizationRecord.cs b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/LocalizationRecord.cs new file mode 100644 index 00000000000..30d3b279726 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/LocalizationRecord.cs @@ -0,0 +1,50 @@ +/* + * Original author: Nicholas Shulman , + * MacCoss Lab, Department of Genome Sciences, UW + * + * Copyright 2024 University of Washington - Seattle, WA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace TutorialLocalization +{ + /// + /// Entry for text which needs to be localized + /// + public class LocalizationRecord + { + public LocalizationRecord(string tutorialName, string xPath, string english) + { + TutorialName = tutorialName; + XPath = xPath; + English = english; + } + public string TutorialName { get; } + public string XPath { get; } + public string English { get; } + public string Localized { get; private set; } + public string OriginalEnglish { get; private set; } + + public LocalizationRecord ChangeOriginalEnglish(string originalEnglish, string originalLocalized) + { + var localizationRecord = (LocalizationRecord)MemberwiseClone(); + if (originalEnglish != English) + { + localizationRecord.OriginalEnglish = originalEnglish; + } + localizationRecord.Localized = originalLocalized; + return localizationRecord; + } + } +} diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/Program.cs b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/Program.cs new file mode 100644 index 00000000000..8bbca1ae346 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/Program.cs @@ -0,0 +1,77 @@ +/* + * Original author: Nicholas Shulman , + * MacCoss Lab, Department of Genome Sciences, UW + * + * Copyright 2024 University of Washington - Seattle, WA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using CommandLine; + +namespace TutorialLocalization +{ + internal class Program + { + public class Options + { + [Value(0)] + public string Folder { get; set; } + [Option(Default = "MergedTutorials.zip")] + public string Output { get; set; } + } + static int Main(string[] args) + { + int result = -1; + Parser.Default.ParseArguments(args).WithParsed(options=>result = LocalizeTutorials(options)).WithNotParsed(HandleParseError); + return result; + } + + public static int LocalizeTutorials(Options options) + { + var folderPath = Path.GetFullPath(options.Folder); + if (!Directory.Exists(folderPath)) + { + Console.Error.WriteLine("Folder {0} does not exist", folderPath); + return -1; + } + + var outputFile = options.Output; + File.Delete(outputFile); + var zipFile = new Ionic.Zip.ZipFile(outputFile, Encoding.UTF8); + var tutorialsLocalizer = new TutorialsLocalizer(zipFile); + foreach (var subfolder in Directory.GetDirectories(folderPath)) + { + tutorialsLocalizer.AddTutorialFolder(subfolder, Path.GetFileName(subfolder)); + } + tutorialsLocalizer.SaveLocalizationCsvFiles(); + zipFile.Save(); + return 0; + } + + static void HandleParseError(IEnumerable errors) + { + foreach (var e in errors) + { + if (e is HelpRequestedError || e is VersionRequestedError) + { + continue; + } + Console.WriteLine($"Error: {e}"); + } + } + } +} diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/Properties/AssemblyInfo.cs b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/Properties/AssemblyInfo.cs new file mode 100644 index 00000000000..317ffc5a737 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("TutorialLocalization")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TutorialLocalization")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b61c5aae-f385-41d6-b2d1-6faa8818fb43")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialLocalization.csproj b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialLocalization.csproj new file mode 100644 index 00000000000..03caf3c1a73 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialLocalization.csproj @@ -0,0 +1,84 @@ + + + + + Debug + AnyCPU + {B61C5AAE-F385-41D6-B2D1-6FAA8818FB43} + Exe + TutorialLocalization + TutorialLocalization + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\lib\CommandLine.dll + + + ..\lib\CsvHelper.dll + + + ..\..\..\..\..\Shared\Lib\DotNetZip\DotNetZip.dll + + + ..\lib\F23.StringSimilarity.dll + + + ..\..\..\..\..\Shared\Lib\HtmlAgilityPack.dll + + + + + False + ..\..\..\..\..\Shared\Lib\System.Memory.dll + + + False + ..\lib\System.Numerics.Vectors.dll + + + False + ..\..\..\..\..\Shared\Lib\System.Runtime.CompilerServices.Unsafe.dll + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialLocalizer.cs b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialLocalizer.cs new file mode 100644 index 00000000000..05c38faed05 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialLocalizer.cs @@ -0,0 +1,280 @@ +/* + * Original author: Nicholas Shulman , + * MacCoss Lab, Department of Genome Sciences, UW + * + * Copyright 2024 University of Washington - Seattle, WA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using F23.StringSimilarity; +using HtmlAgilityPack; + +namespace TutorialLocalization +{ + public class TutorialLocalizer + { + private static IEnumerable LocalizableXPaths + { + get + { + yield return "/html/head/title"; + yield return "/html/body/p"; + yield return "/html/body/h1"; + yield return "/html/body/h2"; + yield return "/html/body/ul/li"; + yield return "/html/body/ol/li"; + yield return "/html/body/table/tr/td"; + yield return "/html/body/div/table/tr/td"; + } + } + + public TutorialLocalizer(TutorialsLocalizer localizer, string rootFolder, string relativePath, string language) + { + TutorialsLocalizer = localizer; + RootFolder = rootFolder; + RelativePath = relativePath; + Language = language; + } + + public TutorialsLocalizer TutorialsLocalizer { get; } + public string RootFolder { get; } + public string RelativePath { get; } + public string Language { get; } + + + public void Localize() + { + var mergedDocument = ReadEnglishDocument(); + var localizedFolder = Path.Combine(RootFolder, Language); + var invariantDoc = TutorialsLocalizer.ReadHtmlDocument(Path.Combine(localizedFolder, "invariant.html")); + var localizedDoc = TutorialsLocalizer.ReadHtmlDocument(Path.Combine(localizedFolder, "index.html")); + if (mergedDocument == null || invariantDoc == null || localizedDoc == null) + { + return; + } + + var translatedStrings = new HashSet(); + var localizationRecords = new List(); + var exactLocalizedValues = new Dictionary(); + foreach (var invariantEl in ListLocalizableElements(invariantDoc.DocumentNode)) + { + var localizedEl = localizedDoc.DocumentNode.SelectSingleNode(invariantEl.XPath); + if (localizedEl != null) + { + exactLocalizedValues[ExactStringKey(invariantEl)] = localizedEl.InnerHtml; + } + } + var normalizedLocalizedValues = new Dictionary(); + foreach (var group in exactLocalizedValues.GroupBy(kvp=>new StringKey(RemoveIndexesFromXPath(kvp.Key.XPath), kvp.Key.EnglishText), kvp=>kvp.Value)) + { + if (group.Select(NormalizeWhitespace).Distinct().Count() == 1) + { + normalizedLocalizedValues.Add(group.Key, group.First()); + } + } + + var withoutXPathIndexes = + exactLocalizedValues.ToLookup(kvp => RemoveIndexesFromXPath(kvp.Key.XPath), kvp => kvp.Key); + + foreach (var el in ListLocalizableElements(mergedDocument.DocumentNode)) + { + if (!ContainsLocalizableText(el)) + { + continue; + } + string localizedValue; + if (exactLocalizedValues.TryGetValue(ExactStringKey(el), out localizedValue) || normalizedLocalizedValues.TryGetValue(NormalizedStringKey(el), out localizedValue)) + { + translatedStrings.Add(NormalizeWhitespace(el.InnerHtml)); + el.InnerHtml = localizedValue; + } + else + { + localizationRecords.Add(new LocalizationRecord(RelativePath, el.XPath, el.InnerHtml)); + } + } + + for (int iLocalizationRecord = 0; iLocalizationRecord < localizationRecords.Count; iLocalizationRecord++) + { + var localizationRecord = localizationRecords[iLocalizationRecord]; + var candidates = withoutXPathIndexes[RemoveIndexesFromXPath(localizationRecord.XPath)].ToList(); + var bestMatch = FindBestMatch(localizationRecord.English, candidates.Select(stringKey => stringKey.EnglishText)); + if (bestMatch != null) + { + var bestCandidates = candidates.Where(candidate=>candidate.EnglishText == bestMatch.Item2).ToList(); + var localizedValues = bestCandidates.Select(candidate => exactLocalizedValues[candidate]) + .Select(NormalizeWhitespace).Distinct().ToList(); + if (localizedValues.Count > 1) + { + var originalLocalized = + "Ambiguous: " + string.Join(Environment.NewLine + "OR: ", localizedValues); + localizationRecord = + localizationRecord.ChangeOriginalEnglish(bestCandidates[0].EnglishText, originalLocalized); + } + else if (!translatedStrings.Contains(bestCandidates[0].EnglishText)) + { + localizationRecord = localizationRecord.ChangeOriginalEnglish(bestMatch.Item2, + localizedValues[0]); + } + } + TutorialsLocalizer.AddLocalizationRecord(Language, localizationRecord); + } + + TutorialsLocalizer.AddHtmlDocument(ReadEnglishDocument(), Path.Combine(RelativePath, Language, "invariant.html")); + TutorialsLocalizer.AddHtmlDocument(mergedDocument, Path.Combine(RelativePath, Language, "index.html")); + TutorialsLocalizer.AddFilesInFolder(Path.Combine(RootFolder, Language), Path.Combine(RelativePath, Language)); + } + + private HtmlDocument ReadEnglishDocument() + { + return TutorialsLocalizer.ReadHtmlDocument(Path.Combine(RootFolder, "en", "index.html")); + } + + private static string RemoveIndexesFromXPath(string xPath) + { + StringBuilder stringBuilder = new StringBuilder(); + bool inBrackets = false; + foreach (var ch in xPath) + { + if (inBrackets) + { + if (ch == ']') + { + inBrackets = false; + } + } + else + { + if (ch == '[') + { + inBrackets = true; + } + else + { + stringBuilder.Append(ch); + } + } + } + + return stringBuilder.ToString(); + } + private static IEnumerable ListLocalizableElements(HtmlNode node) + { + string strippedXPath = RemoveIndexesFromXPath(node.XPath)!; + if (LocalizableXPaths.Contains(strippedXPath)) + { + return new[] { node }; + } + + return node.ChildNodes.SelectMany(ListLocalizableElements); + } + + private sealed class StringKey + { + public StringKey(string xPath, string englishText) + { + XPath = xPath; + EnglishText = englishText; + } + + public string XPath { get; } + public string EnglishText { get; } + + private bool Equals(StringKey other) + { + return XPath == other.XPath && EnglishText == other.EnglishText; + } + + public override bool Equals(object obj) + { + if (obj is null) return false; + if (ReferenceEquals(this, obj)) return true; + if (obj.GetType() != GetType()) return false; + return Equals((StringKey)obj); + } + + public override int GetHashCode() + { + unchecked + { + return (XPath.GetHashCode() * 397) ^ EnglishText.GetHashCode(); + } + } + + public override string ToString() + { + return XPath + ":" + EnglishText; + } + } + + private string NormalizeWhitespace(string text) + { + var stringBuilder = new StringBuilder(); + bool whitespace = true; + foreach (var ch in text) + { + if (char.IsWhiteSpace(ch)) + { + whitespace = true; + } + else + { + if (whitespace && stringBuilder.Length > 0) + { + stringBuilder.Append(" "); + } + whitespace = false; + stringBuilder.Append(ch); + } + } + return stringBuilder.ToString(); + } + + private StringKey NormalizedStringKey(HtmlNode htmlNode) + { + return new StringKey(RemoveIndexesFromXPath(htmlNode.XPath), NormalizeWhitespace(htmlNode.InnerHtml)); + } + + private StringKey ExactStringKey(HtmlNode htmlNode) + { + return new StringKey(htmlNode.XPath, NormalizeWhitespace(htmlNode.InnerHtml)); + } + + private static Levenshtein _levenshtein = new Levenshtein(); + private Tuple FindBestMatch(string target, IEnumerable candidates) + { + int bestDistance = int.MaxValue; + string bestMatch = null; + foreach (var candidate in candidates) + { + var distance = (int)_levenshtein.Distance(target, candidate, bestDistance); + if (distance < bestDistance) + { + bestDistance = distance; + bestMatch = candidate; + } + } + + return bestMatch == null ? null : Tuple.Create(bestDistance, bestMatch); + } + private bool ContainsLocalizableText(HtmlNode node) + { + return node.InnerText.Any(ch => !char.IsWhiteSpace(ch)); + } + } +} diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialsLocalizer.cs b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialsLocalizer.cs new file mode 100644 index 00000000000..693665415c7 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/TutorialLocalization/TutorialsLocalizer.cs @@ -0,0 +1,151 @@ +/* + * Original author: Nicholas Shulman , + * MacCoss Lab, Department of Genome Sciences, UW + * + * Copyright 2024 University of Washington - Seattle, WA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Text; +using CsvHelper; +using HtmlAgilityPack; +using Ionic.Zip; + +namespace TutorialLocalization +{ + public class TutorialsLocalizer + { + private Dictionary> _localizationRecords; + public TutorialsLocalizer(ZipFile zipFile) + { + ZipFile = zipFile; + _localizationRecords = new Dictionary>(); + } + + public ZipFile ZipFile { get; } + + public void AddTutorialFolder(string folderPath, string relativePath) + { + if (relativePath == "shared") + { + AddFilesRecursive(folderPath, relativePath); + return; + } + var englishPath = Path.Combine(folderPath, "en"); + if (!Directory.Exists(englishPath)) + { + return; + } + + var englishDoc = ReadHtmlDocument(Path.Combine(englishPath, "index.html")); + if (englishDoc == null) + { + return; + } + AddFilesInFolder(englishPath, Path.Combine(relativePath, "en")); + foreach (var folder in Directory.GetDirectories(folderPath)) + { + var folderName = Path.GetFileName(folder); + if (folderName == "en") + { + continue; + } + + var tutorialLocalizer = new TutorialLocalizer(this, folderPath, relativePath, folderName); + tutorialLocalizer.Localize(); + } + } + + private void AddFilesRecursive(string folderPath, string relativePath) + { + AddFilesInFolder(folderPath, relativePath); + foreach (var subFolder in Directory.GetDirectories(folderPath)) + { + AddFilesInFolder(subFolder, Path.Combine(relativePath, Path.GetFileName(subFolder))); + } + } + + public void SaveLocalizationCsvFiles() + { + foreach (var entry in _localizationRecords) + { + var csvText = LocalizationRecordsToString(entry.Value); + ZipFile.AddEntry("localization_" + entry.Key + ".csv", ToUtf8Bytes(csvText)); + } + } + + public void AddFilesInFolder(string folderPath, string relativePath) + { + foreach (var file in Directory.GetFiles(folderPath)) + { + var fileName = Path.GetFileName(file); + var entryName = Path.Combine(relativePath, fileName); + if (ZipFile.ContainsEntry(entryName)) + { + continue; + } + ZipFile.AddFile(file, relativePath); + } + } + + public HtmlDocument ReadHtmlDocument(string path) + { + if (!File.Exists(path)) + { + return null; + } + + var htmlDocument = new HtmlDocument(); + htmlDocument.Load(path, Encoding.UTF8); + return htmlDocument; + } + + public void AddHtmlDocument(HtmlDocument htmlDocument, string relativePath) + { + var stringWriter = new StringWriter(); + htmlDocument.Save(stringWriter); + ZipFile.AddEntry(relativePath, ToUtf8Bytes(stringWriter.ToString())); + } + + public void AddLocalizationRecord(string language, LocalizationRecord record) + { + if (!_localizationRecords.TryGetValue(language, out var list)) + { + list = new List(); + _localizationRecords.Add(language, list); + } + list.Add(record); + } + + public string LocalizationRecordsToString(IEnumerable records) + { + var stringWriter = new StringWriter(); + var csvWriter = new CsvWriter(stringWriter, CultureInfo.InvariantCulture); + csvWriter.WriteRecords(records); + return stringWriter.ToString(); + } + + public byte[] ToUtf8Bytes(string str) + { + var memoryStream = new MemoryStream(); + using (var writer = new StreamWriter(memoryStream, new UTF8Encoding(true))) + { + writer.Write(str); + } + return memoryStream.ToArray(); + } + } +} diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CommandLine.dll b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CommandLine.dll new file mode 100644 index 00000000000..3221ce5a083 Binary files /dev/null and b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CommandLine.dll differ diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CommandLine.xml b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CommandLine.xml new file mode 100644 index 00000000000..17807af5836 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CommandLine.xml @@ -0,0 +1,3285 @@ + + + + CommandLine + + + + + Models a base attribute to define command line syntax. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether a command line option is required. + + + + + When applied to properties defines + the lower range of items. + + If not set, no lower range is enforced. + + + + When applied to properties defines + the upper range of items. + + If not set, no upper range is enforced. + + + + Gets or sets mapped property default value. + + + + + Gets or sets a short description of this command line option. Usually a sentence summary. + + + + + Gets or sets mapped property meta value. Usually an uppercase hint of required value type. + + + + + Gets or sets a value indicating whether a command line option is visible in the help text. + + + + + Gets or sets the that contains the resources for . + + + + + Whether this is an int option that counts how many times a flag was set rather than taking a value on the command line + + + + This information is denormalized to decouple Specification from PropertyInfo. + + + + Whether this value came from a long option with "=" separating the name from the value + + + + + Whether this value came from a sequence specified with a separator (e.g., "--files a.txt,b.txt,c.txt") + + + + + Whether this value came from args after the -- separator (when EnableDashDash = true) + + + + + Normalizes the given . + + The given minus all names, and their value if one was present, that are not found using . + + + + Discriminator enumeration of derivates. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Value of type. + + + + + Base type of all errors. + + All errors are defined within the system. There's no reason to create custom derivate types. + + + + Initializes a new instance of the class. + + Type discriminator tag. + Tells if error stops parsing process. + + + + Initializes a new instance of the class. + + Type discriminator tag. + + + + Error type discriminator, defined as enumeration. + + + + + Tells if error stops parsing process. + Filtered by . + + + + + 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 value that indicates whether the current instance and a specified have the same value. + + The instance to compare. + true if this instance of and have the same value; otherwise, false. + + + + Base type of all errors related to bad token detection. + + + + + Initializes a new instance of the class. + + Error type. + Problematic token. + + + + The string containing the token text. + + + + + 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 value that indicates whether the current instance and a specified have the same value. + + The instance to compare. + true if this instance of and have the same value; otherwise, false. + + + + Models an error generated when an invalid token is detected. + + + + + Base type of all erros with name information. + + + + + Initializes a new instance of the class. + + Error type. + Problematic name. + + + + Name information relative to this error instance. + + + + + 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 value that indicates whether the current instance and a specified have the same value. + + The instance to compare. + true if this instance of and have the same value; otherwise, false. + + + + Models an error generated when an option lacks its value. + + + + + Models an error generated when an unknown option is detected. + + + + + Models an error generated when a required option is required. + + + + + Models an error generated when a an option from another set is defined. + + + + + Option's set name. + + + + + Models an error generated when a value conversion fails. + + + + + Models an error generated when a sequence value lacks elements. + + + + + Models an error generated when an option is repeated two or more times. + + + + + Models an error generated when an unknown verb is detected. + + + + + Models an error generated when a user explicitly requests help. + + + + + Models an error generated when a user explicitly requests help in verb commands scenario. + + + + + Verb command string. + + + + + of verb command. + + + + + true if verb command is found; otherwise false. + + + + + Models an error generated when no verb is selected. + + + + + Models an error generated when a user explicitly requests version. + + + + + Models as error generated when exception is thrown at Property.SetValue + + + + + The expection thrown from Property.SetValue + + + + + The value that had to be set to the property + + + + + Models an error generated when an invalid token is detected. + + + + + Models an error generated when multiple default verbs are defined. + + + + + return true when errors contain HelpXXXError + + + + + return true when errors contain VersionXXXError + + + + + redirect errs to Console.Error, and to Console.Out for help/version error + + + + + Breaks a collection into groups of a specified size. + + A collection of . + The number of items each group shall contain. + An enumeration of T[]. + An incomplete group at the end of the source collection will be silently dropped. + + + + Per thread assembly attribute overrides for testing. + + + + + Assembly attribute overrides for testing. + + + The implementation will fail if two or more attributes of the same type + are included in . + + + Attributes that replace the existing assembly attributes or null, + to clear any testing attributes. + + + + + Indicates whether the string value of a + starts with the input parameter. Returns false if either + the StringBuilder or input string is null or empty. + + The to test. + The to look for. + + + + + Indicates whether the string value of a + ends with the input parameter. Returns false if either + the StringBuilder or input string is null or empty. + + The to test. + The to look for. + + + + + Models name information, used in instances. + + + + + Represents an empty name information. Used when are tied to values, + rather than options. + + + + + Gets the short name of the name information. + + + + + Gets the long name of the name information. + + + + + Gets a formatted text with unified name information. + + + + + 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 value that indicates whether the current instance and a specified have the same value. + + The instance to compare. + true if this instance of and have the same value; otherwise, false. + + + + Models a null result when constructing a in a faling verbs scenario. + + + + + Models an option specification. + + + + + Initializes a new instance of the class. + The default long name will be inferred from target property. + + + + + Initializes a new instance of the class. + + The long name of the option. + + + + Initializes a new instance of the class. + + The short name of the option. + The long name of the option or null if not used. + + + + Initializes a new instance of the class. + + The short name of the option.. + + + + Gets long name of this command line option. This name is usually a single english word. + + + + + Gets a short name of this command line option, made of one character. + + + + + Gets or sets the option's mutually exclusive set name. + + + + + If true, this is an int option that counts how many times a flag was set (e.g. "-v -v -v" or "-vvv" would return 3). + The property must be of type int (signed 32-bit integer). + + + + + When applying attribute to target properties, + it allows you to split an argument and consume its content as a sequence. + + + + + Gets or sets the option group name. When one or more options are grouped, at least one of them should have value. Required rules are ignored. + + + + + Provides methods to parse command line arguments. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class, + configurable with using a delegate. + + The delegate used to configure + aspects and behaviors of the parser. + + + + Finalizes an instance of the class. + + + + + Gets the singleton instance created with basic defaults. + + + + + Gets the instance that implements in use. + + + + + Parses a string array of command line arguments constructing values in an instance of type . + Grammar rules are defined decorating public properties with appropriate attributes. + + Type of the target instance built with parsed value. + A array of command line arguments, normally supplied by application entry point. + A containing an instance of type with parsed values + and a sequence of . + Thrown if one or more arguments are null. + + + + Parses a string array of command line arguments constructing values in an instance of type . + Grammar rules are defined decorating public properties with appropriate attributes. + + Type of the target instance built with parsed value. + A delegate used to initialize the target instance. + A array of command line arguments, normally supplied by application entry point. + A containing an instance of type with parsed values + and a sequence of . + Thrown if one or more arguments are null. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from the array of types supplied by . + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + A array of command line arguments, normally supplied by application entry point. + A array used to supply verb alternatives. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + Thrown if array is empty. + All types must expose a parameterless constructor. It's strongly recommended to use a generic overload. + + + + Frees resources owned by the instance. + + + + + Defines generic overloads for . + + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + The type of the tenth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + The type of the tenth verb. + The type of the eleventh verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + The type of the tenth verb. + The type of the eleventh verb. + The type of the twelfth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + The type of the tenth verb. + The type of the eleventh verb. + The type of the twelfth verb. + The type of the thirteenth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + The type of the tenth verb. + The type of the eleventh verb. + The type of the twelfth verb. + The type of the thirteenth verb. + The type of the fourteenth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + The type of the tenth verb. + The type of the eleventh verb. + The type of the twelfth verb. + The type of the thirteenth verb. + The type of the fourteenth verb. + The type of the fifteenth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Parses a string array of command line arguments for verb commands scenario, constructing the proper instance from types as generic arguments. + Grammar rules are defined decorating public properties with appropriate attributes. + The must be applied to types in the array. + + The type of the first verb. + The type of the second verb. + The type of the third verb. + The type of the fourth verb. + The type of the fifth verb. + The type of the sixth verb. + The type of the seventh verb. + The type of the eighth verb. + The type of the ninth verb. + The type of the tenth verb. + The type of the eleventh verb. + The type of the twelfth verb. + The type of the thirteenth verb. + The type of the fourteenth verb. + The type of the fifteenth verb. + The type of the sixteenth verb. + A instance. + A array of command line arguments, normally supplied by application entry point. + A containing the appropriate instance with parsed values as a + and a sequence of . + Thrown if one or more arguments are null. + All types must expose a parameterless constructor. + + + + Discriminator enumeration of derivates. + + + + + Value of type. + + + + + Value of type. + + + + + Models a parser result. When inherited by , it contains an instance of type + with parsed values. + When inherited by , it contains a sequence of . + + The type with attributes that define the syntax of parsing rules. + + + + Parser result type discriminator, defined as enumeration. + + + + + Gets the instance with parsed values. If one or more errors occures, is returned. + + + + + Gets the sequence of parsing errors. If there are no errors, then an empty IEnumerable is returned. + + + + + It contains an instance of type with parsed values. + + The type with attributes that define the syntax of parsing rules. + + + + 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 value that indicates whether the current instance and a specified have the same value. + + The instance to compare. + true if this instance of and have the same value; otherwise, false. + + + + It contains a sequence of . + + The type with attributes that define the syntax of parsing rules. + + + + 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 value that indicates whether the current instance and a specified have the same value. + + The instance to compare. + true if this instance of and have the same value; otherwise, false. + + + + Provides convenience extension methods for . + + + + + Executes if contains + parsed values. + + Type of the target instance built with parsed value. + An instance. + The to execute. + The same instance. + + + + Executes if parsed values are of . + + Type of the target instance built with parsed value. + An verb result instance. + The to execute. + The same instance. + + + + Executes if lacks + parsed values and contains errors. + + Type of the target instance built with parsed value. + An instance. + The delegate to execute. + The same instance. + + + + Provides a way to transform result data into another value. + + Type of the target instance built with parsed value. + The type of the new value. + An instance. + Lambda executed on successful parsing. + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + Tenth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + Tenth verb type. + Eleventh verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + Tenth verb type. + Eleventh verb type. + Twelfth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + Tenth verb type. + Eleventh verb type. + Twelfth verb type. + Thirteenth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + Tenth verb type. + Eleventh verb type. + Twelfth verb type. + Thirteenth verb type. + Fourteenth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + Tenth verb type. + Eleventh verb type. + Twelfth verb type. + Thirteenth verb type. + Fourteenth verb type. + Fifteenth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Provides a way to transform result data into another value. + + First verb type. + Second verb type. + Third verb type. + Fourth verb type. + Fifth verb type. + Sixth verb type. + Seventh verb type. + Eighth verb type. + Ninth verb type. + Tenth verb type. + Eleventh verb type. + Twelfth verb type. + Thirteenth verb type. + Fourteenth verb type. + Fifteenth verb type. + Sixteenth verb type. + + The result in verb scenario. + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on successful parsing of . + Lambda executed on failed parsing. + The new value. + + + + Executes asynchronously if contains + parsed values. + + Type of the target instance built with parsed value. + An instance. + The to execute. + The same instance as a instance. + + + + Executes asynchronously if parsed values are of . + + Type of the target instance built with parsed value. + An verb result instance. + The to execute. + The same instance as a instance. + + + + Executes asynchronously if lacks + parsed values and contains errors. + + Type of the target instance built with parsed value. + An instance. + The delegate to execute. + The same instance as a instance. + + + + Provides settings for . Once consumed cannot be reused. + + + + + Initializes a new instance of the class. + + + + + Finalizes an instance of the class. + + + + + Gets or sets a value indicating whether perform case sensitive comparisons. + Note that case insensitivity only applies to parameters, not the values + assigned to them (for example, enum parsing). + + + + + Gets or sets a value indicating whether perform case sensitive comparisons of values. + Note that case insensitivity only applies to values, not the parameters. + + + + + Gets or sets the culture used when parsing arguments to typed properties. + + + Default is invariant culture, . + + + + + Gets or sets the used for help method output. + Setting this property to null, will disable help screen. + + + It is the caller's responsibility to dispose or close the . + + + + + Gets or sets a value indicating whether the parser shall move on to the next argument and ignore the given argument if it + encounter an unknown arguments + + + true to allow parsing the arguments with different class options that do not have all the arguments. + + + This allows fragmented version class parsing, useful for project with add-on where add-ons also requires command line arguments but + when these are unknown by the main program at build time. + + + + + Gets or sets a value indicating whether implicit option or verb 'help' should be supported. + + + + + Gets or sets a value indicating whether implicit option or verb 'version' should be supported. + + + + + Gets or sets a value indicating whether enable double dash '--' syntax, + that forces parsing of all subsequent tokens as values. + If GetoptMode is true, this defaults to true, but can be turned off by explicitly specifying EnableDashDash = false. + + + + + Gets or sets the maximum width of the display. This determines word wrap when displaying the text. + + + + + Gets or sets a value indicating whether options are allowed to be specified multiple times. + If GetoptMode is true, this defaults to true, but can be turned off by explicitly specifying AllowMultiInstance = false. + + + + + Whether strict getopt-like processing is applied to option values; if true, AllowMultiInstance and EnableDashDash will default to true as well. + + + + + Whether getopt-like processing should follow the POSIX rules (the equivalent of using the "+" prefix in the C getopt() call). + If not explicitly set, will default to false unless the POSIXLY_CORRECT environment variable is set, in which case it will default to true. + + + + + Frees resources owned by the instance. + + + + + Models a multiline assembly license text. + + + + + Initializes a new instance of the class + with one line of text. + + First line of license text. + + + + Initializes a new instance of the class + with two lines of text. + + First line of license text. + Second line of license text. + + + + Initializes a new instance of the class + with three lines of text. + + First line of license text. + Second line of license text. + Third line of license text. + + + + Initializes a new instance of the class + with four lines of text. + + First line of license text. + Second line of license text. + Third line of license text. + Fourth line of license text. + + + + Initializes a new instance of the class + with five lines of text. + + First line of license text. + Second line of license text. + Third line of license text. + Fourth line of license text. + Fifth line of license text. + + + + Models a multiline assembly usage text. + + + + + Initializes a new instance of the class + with one line of text. + + First line of usage text. + + + + Initializes a new instance of the class + with two lines of text. + + First line of usage text. + Second line of usage text. + + + + Initializes a new instance of the class + with three lines of text. + + First line of usage text. + Second line of usage text. + Third line of usage text. + + + + Initializes a new instance of the class + with four lines of text. + + First line of usage text. + Second line of usage text. + Third line of usage text. + Fourth line of usage text. + + + + Initializes a new instance of the class + with five lines of text. + + First line of usage text. + Second line of usage text. + Third line of usage text. + Fourth line of usage text. + Fifth line of usage text. + + + + Models the copyright part of an help text. + You can assign it where you assign any instance. + + + + + An empty object used for initialization. + + + + + Initializes a new instance of the class + specifying author and year. + + The company or person holding the copyright. + The year of coverage of copyright. + Thrown when parameter is null or empty string. + + + + Initializes a new instance of the class + specifying author and copyrightYears. + + The company or person holding the copyright. + The copyrightYears of coverage of copyright. + Thrown when parameter is null or empty string. + Thrown when parameter is not supplied. + + + + Initializes a new instance of the class + specifying symbol case, author and copyrightYears. + + The case of the copyright symbol. + The company or person holding the copyright. + The copyrightYears of coverage of copyright. + Thrown when parameter is null or empty string. + Thrown when parameter is not supplied. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with an assembly attribute, this overrides all formatting. + + The attribute which text to use. + + + + Gets the default copyright information. + Retrieved from , if it exists, + otherwise it uses as copyright holder with the current year. + If neither exists it throws an . + + + + + Gets a different copyright word when overridden in a derived class. + + + + + Converts the copyright instance to a . + + This instance. + The that contains the copyright. + + + + Returns the copyright as a . + + The that contains the copyright. + + + + When overridden in a derived class, allows to specify a new algorithm to render copyright copyrightYears + as a instance. + + A array of copyrightYears. + A instance with copyright copyrightYears. + + + + Models a command line usage example. + + + + + Initializes a new instance of the class. + + Example description. + A instances sequence that defines command line arguments format. + A sample instance. + + + + Initializes a new instance of the class. + + Example description. + A instance that defines command line arguments format. + A sample instance. + + + + Initializes a new instance of the class. + + Example description. + A sample instance. + + + + Example description. + + + + + A sequence of format styles. + + + + + A sample instance. + + + + + 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 value that indicates whether the current instance and a specified have the same value. + + The instance to compare. + true if this instance of and have the same value; otherwise, false. + + + + Models the heading part of an help text. + You can assign it where you assign any instance. + + + + + Initializes a new instance of the class + specifying program name and version. + + The name of the program. + The version of the program. + Thrown when parameter is null or empty string. + + + + An empty object used for initialization. + + + + + Gets the default heading instance. + The title is retrieved from , + or the assembly short name if its not defined. + The version is retrieved from , + or the assembly version if its not defined. + + + + + Converts the heading to a . + + This instance. + The that contains the heading. + + + + Returns the heading as a . + + The that contains the heading. + + + + Writes out a string and a new line using the program name specified in the constructor + and parameter. + + The message to write. + The target derived type. + Thrown when parameter is null or empty string. + Thrown when parameter is null. + + + + Writes out a string and a new line using the program name specified in the constructor + and parameter to standard output stream. + + The message to write. + Thrown when parameter is null or empty string. + + + + Writes out a string and a new line using the program name specified in the constructor + and parameter to standard error stream. + + The message to write. + Thrown when parameter is null or empty string. + + + + Provides means to format an help screen. + You can assign it in place of a instance. + + + + + The number of spaces between an option and its associated help text + + + + + The width of the option prefix (either "--" or " " + + + + + The total amount of extra space that needs to accounted for when indenting Option help text + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + specifying the sentence builder. + + + A instance. + + + + + Initializes a new instance of the class + specifying heading string. + + An heading string or an instance of . + Thrown when parameter is null or empty string. + + + + Initializes a new instance of the class + specifying the sentence builder and heading string. + + A instance. + A string with heading or an instance of . + + + + Initializes a new instance of the class + specifying heading and copyright strings. + + A string with heading or an instance of . + A string with copyright or an instance of . + Thrown when one or more parameters are null or empty strings. + + + + Initializes a new instance of the class + specifying heading and copyright strings. + + A instance. + A string with heading or an instance of . + A string with copyright or an instance of . + Thrown when one or more parameters are null or empty strings. + + + + Gets or sets the heading string. + You can directly assign a instance. + + + + + Gets or sets the copyright string. + You can directly assign a instance. + + + + + Gets or sets the maximum width of the display. This determines word wrap when displaying the text. + + The maximum width of the display. + + + + Gets or sets a value indicating whether the format of options should contain dashes. + It modifies behavior of method. + + + + + Gets or sets a value indicating whether to add an additional line after the description of the specification. + + + + + Gets or sets a value indicating whether to add newlines between help sections. + + + + + Gets or sets a value indicating whether to add the values of an enum after the description of the specification. + + + + + Gets or sets a value indicating whether implicit option or verb 'help' should be supported. + + + + + Gets or sets a value indicating whether implicit option or verb 'version' should be supported. + + + + + Gets the instance specified in constructor. + + + + + Creates a new instance of the class using common defaults. + + + An instance of class. + + The containing the instance that collected command line arguments parsed with class. + A delegate used to customize the text block of reporting parsing errors text block. + A delegate used to customize model used to render text block of usage examples. + If true the output style is consistent with verb commands (no dashes), otherwise it outputs options. + The maximum width of the display. + The parameter is not ontly a metter of formatting, it controls whether to handle verbs or options. + + + + Creates a default instance of the class, + automatically handling verbs or options scenario. + + The containing the instance that collected command line arguments parsed with class. + The maximum width of the display. + + An instance of class. + + This feature is meant to be invoked automatically by the parser, setting the HelpWriter property + of . + + + + Creates a custom instance of the class, + automatically handling verbs or options scenario. + + The containing the instance that collected command line arguments parsed with class. + A delegate used to customize the text block of reporting parsing errors text block. + The maximum width of the display. + + An instance of class. + + This feature is meant to be invoked automatically by the parser, setting the HelpWriter property + of . + + + + Supplies a default parsing error handler implementation. + + The containing the instance that collected command line arguments parsed with class. + The instance. + + + + Converts the help instance to a . + + This instance. + The that contains the help screen. + + + + Adds a text line after copyright and before options usage strings. + + A instance. + Updated instance. + Thrown when parameter is null or empty string. + + + + Adds a text line at the bottom, after options usage string. + + A instance. + Updated instance. + Thrown when parameter is null or empty string. + + + + Adds text lines after copyright and before options usage strings. + + A sequence of line to add. + Updated instance. + + + + Adds text lines at the bottom, after options usage string. + + A sequence of line to add. + Updated instance. + + + + Adds a text block of lines after copyright and before options usage strings. + + A text block. + Updated instance. + + + + Adds a text block of lines at the bottom, after options usage string. + + A text block. + Updated instance. + + + + Adds a text block with options usage string. + + A parsing computation result. + Thrown when parameter is null. + + + + Adds a text block with verbs usage string. + + The array of with verb commands. + Thrown when parameter is null. + Thrown if array is empty. + + + + Adds a text block with options usage string. + + The maximum length of the help screen. + A parsing computation result. + Thrown when parameter is null. + + + + Adds a text block with verbs usage string. + + The maximum length of the help screen. + The array of with verb commands. + Thrown when parameter is null. + Thrown if array is empty. + + + + Builds a string that contains a parsing error message. + + The containing the instance that collected command line arguments parsed with class. + The error formatting delegate. + The specialized sequence formatting delegate. + Number of spaces used to indent text. + The that contains the parsing error message. + + + + Builds a sequence of string that contains a parsing error message. + + The containing the instance that collected command line arguments parsed with class. + The error formatting delegate. + The specialized sequence formatting delegate. + Number of spaces used to indent text. + A sequence of that contains the parsing error message. + + + + Builds a string with usage text block created using data and metadata. + + Type of parsing computation result. + A parsing computation result. + Resulting formatted text. + + + + Builds a string with usage text block created using data and metadata. + + Type of parsing computation result. + A parsing computation result. + A mapping lambda normally used to translate text in other languages. + Resulting formatted text. + + + + Builds a string sequence with usage text block created using data and metadata. + + Type of parsing computation result. + A parsing computation result. + A mapping lambda normally used to translate text in other languages. + Resulting formatted text. + + + + Returns the help screen as a . + + The that contains the help screen. + + + + Provides base properties for creating an attribute, used to define multiple lines of text. + + + + + Initializes a new instance of the class. Used in derived type + using one line of text. + + The first line of text. + + + + Initializes a new instance of the class. Used in type + using two lines of text. + + The first line of text. + The second line of text. + + + + Initializes a new instance of the class. Used in type + using three lines of text. + + The first line of text. + The second line of text. + The third line of text. + + + + Initializes a new instance of the class. Used in type + using four lines of text. + + The first line of text. + The second line of text. + The third line of text. + The fourth line of text. + + + + Initializes a new instance of the class. Used in type + using five lines of text. + + The first line of text. + The second line of text. + The third line of text. + The fourth line of text. + The fifth line of text. + + + + Gets the all non-blank lines as string. + + A string of all non-blank lines. + + + + Gets the first line of text. + + + + + Gets the second line of text. + + + + + Gets third line of text. + + + + + Gets the fourth line of text. + + + + + Gets the fifth line of text. + + + + + Returns the last line with text. Preserves blank lines if user intended by skipping a line. + + The last index of line of the non-blank line. + + The string array to process. + + + + Exposes standard delegates to provide a mean to customize part of help screen generation. + This type is consumed by . + + + + + Create instance of , + + The instance. + + + + Factory to allow custom SentenceBuilder injection + + + + + Gets a delegate that returns the word 'required'. + + + + + Gets a delegate that returns the word 'group'. + + + + + Gets a delegate that returns that errors block heading text. + + + + + Gets a delegate that returns usage text block heading text. + + + + + Get a delegate that returns the help text of help command. + The delegates must accept a boolean that is equal true for options; otherwise false for verbs. + + + + + Get a delegate that returns the help text of vesion command. + The delegates must accept a boolean that is equal true for options; otherwise false for verbs. + + + + + Gets a delegate that handles singular error formatting. + The delegates must accept an and returns a string. + + + + + Gets a delegate that handles mutually exclusive set errors formatting. + The delegates must accept a sequence of and returns a string. + + + + + A utility class to word-wrap and indent blocks of text + + + + + Splits a string into a words and performs wrapping while also preserving line-breaks and sub-indentation + + The number of characters we can use for text + + This method attempts to wrap text without breaking words + For example, if columnWidth is 10 , the input + "a string for wrapping 01234567890123" + would return + "a string + "for + "wrapping + "0123456789 + "0123" + + this + + + + Indent all lines in the TextWrapper by the desired number of spaces + + The number of spaces to indent by + this + + + + Returns the current state of the TextWrapper as a string + + + + + + Convenience method to wraps and indent a string in a single operation + + The string to operate on + The number of spaces to indent by + The width of the column used for wrapping + + The string is wrapped _then_ indented so the columnWidth is the width of the + usable text block, and does NOT include the indentLevel. + + the processed string + + + + When presented with a word, either append to the last line in the list or start a new line + + A list of StringBuilders containing results so far + The individual word to append + The usable text space + + The 'word' can actually be an empty string. It's important to keep these - + empty strings allow us to preserve indentation and extra spaces within a line. + + The same list as is passed in + + + + Return the right part of a string in a way that compensates for Substring's deficiencies + + + + + Return the left part of a string in a way that compensates for Substring's deficiencies + + + + + Applied to a static property that yields a sequence of , + provides data to render usage section of help screen. + + + + + Application name, script or any means that starts current program. + + + + + Provides settings for when formatting command line from an options instance../>. + + + + + Gets or sets a value indicating whether unparsing process shall prefer short or long names. + + + + + Gets or sets a value indicating whether unparsing process shall group switches. + + + + + Gets or sets a value indicating whether unparsing process shall use equal sign with long names. + + + + + Gets or sets a value indicating whether unparsing process shall expose hidden options. + + + + + Gets or sets a value indicating whether unparsing process shall skip options with DefaultValue. + + + + + Factory method that creates an instance of with GroupSwitches set to true. + + A properly initalized instance. + + + + Factory method that creates an instance of with UseEqualToken set to true. + + A properly initalized instance. + + + + Provides overloads to unparse options instance. + + + + + Format a command line argument string from a parsed instance. + + Type of . + Parser instance. + A parsed (or manually correctly constructed instance). + A string with command line arguments. + + + + Format a command line argument string from a parsed instance in the form of string[]. + + Type of . + Parser instance. + A parsed (or manually correctly constructed instance). + A string[] with command line arguments. + + + + Format a command line argument string from a parsed instance. + + Type of . + Parser instance. + A parsed (or manually correctly constructed instance). + The lambda used to configure + aspects and behaviors of the unparsersing process. + A string with command line arguments. + + + + Format a command line argument string[] from a parsed instance. + + Type of . + Parser instance. + A parsed (or manually correctly constructed instance). + The lambda used to configure + aspects and behaviors of the unparsersing process. + A string[] with command line arguments. + + + + Returns a string array that contains the substrings in this instance that are delimited by space considering string between double quote. + + the commandline string + don't remove the quote + a string array that contains the substrings in this instance + + + + Models an value specification, or better how to handle values not bound to options. + + + + + Initializes a new instance of the class. + + + + + Gets the position this option has on the command line. + + + + + Gets or sets name of this positional value specification. + + + + + Models a verb command specification. + + + + + Initializes a new instance of the class. + + The long name of the verb command. + Whether the verb is the default verb. + aliases for this verb. i.e. "move" and "mv" + Thrown if is null, empty or whitespace and is false. + + + + Gets the verb name. + + + + + Gets or sets a value indicating whether a command line verb is visible in the help text. + + + + + Gets or sets a short description of this command line option. Usually a sentence summary. + + + + + Gets or sets the that contains the resources for . + + + + + Gets whether this verb is the default verb. + + + + + Gets or sets the aliases + + + + + Failed computation case. + + + + + Sccessful computation case. + + + + + Inject a value into the Either type, returning Right case. + + + + + Fail with a message. Not part of mathematical definition of a monad. + + + + + Monadic bind. + + + + + Transforms a Either's right value by using a specified mapping function. + + + + + Maps both parts of a Either type. Applies the first function if Either is Left. + Otherwise applies the second function. + + + + + Map operation compatible with Linq. + + + + + Returns a Either Right or fail with an exception. + + + + + Returns a Either Left or a defualt value. + + + + + Returns a Either Right or a defualt value. + + + + + Wraps a function, encapsulates any exception thrown within to a Either. + + + + + Attempts to cast an object. + Stores the cast value in 1Of2 if successful, otherwise stores the exception in 2Of2 + + + + + Equivalent to monadic operation. + Builds a value in case by default. + + + + + Safe function that returns Just(first element) or None. + + + + + Turns an empty sequence to Nothing, otherwise Just(sequence). + + + + + Returns the Cartesian product of two sequences by combining each element of the first set with each in the second + and applying the user=define projection to the pair. + + + + + Prepends a single value to a sequence. + + + + + Returns a sequence consisting of the head element and the given tail elements. + + + + + Returns a sequence consisting of the head elements and the given tail element. + + + + + Excludes elements from a sequence starting at a given index + + The type of the elements of the sequence + + + + Returns a sequence of + where the key is the zero-based index of the value in the source + sequence. + + + + + Returns a sequence of + where the key is the index of the value in the source sequence. + An additional parameter specifies the starting index. + + + + + Returns the result of applying a function to a sequence of + 1 element. + + + + + Returns the result of applying a function to a sequence of + 2 elements. + + + + + Returns the result of applying a function to a sequence of + 3 elements. + + + + + Returns the result of applying a function to a sequence of + 4 elements. + + + + + Immediately executes the given action on each element in the source sequence. + + + + + Returns a sequence resulting from applying a function to each + element in the source sequence and its + predecessor, with the exception of the first element which is + only returned as the predecessor of the second element. + + + + + Creates a delimited string from a sequence of values. The + delimiter used depends on the current culture of the executing thread. + + + + + Creates a delimited string from a sequence of values and + a given delimiter. + + + + + Return everything except first element and throws exception if empty. + + + + + Return everything except first element without throwing exception if empty. + + + + + Captures current state of a sequence. + + + + + Creates an immutable copy of a sequence. + + + + + Selects a random element. + + + + + Takes an element and a sequence and `intersperses' that element between its elements. + + + + + Flattens a sequence by one level. + + + + + Reduces a sequence of strings to a sequence of parts, splitted by space, + of each original string. + + + + + Discriminator for . + + + + + The Maybe type models an optional value. A value of type Maybe a either contains a value of type a (represented as Just a), + or it is empty (represented as Nothing). + + + + + Type discriminator. + + + + + Matches a value returning true and value itself via output parameter. + + + + + Matches an empty value returning true. + + + + + Models a when in empty state. + + + + + Models a when contains a value. + + + + + The wrapped value. + + + + + Provides static methods for manipulating . + + + + + Builds the empty case of . + + + + + Builds the case when contains a value. + + + + + Inject a value into the monadic type. + + + + + Sequentially compose two actions, passing any value produced by the first as an argument to the second. + + + + + Transforms an maybe value by using a specified mapping function. + + + + + If both maybes contain a value, it merges them into a maybe with a tupled value. + + + + + Provides convenience extension methods for . + + + + + Provides pattern matching using delegates. + + + + + Provides pattern matching using delegates over maybe with tupled wrapped value. + + + + + Matches a value returning true and tupled value itself via two output parameters. + + + + + Equivalent to monadic operation. + Builds a value in case is different from its default. + + + + + Invokes a function on this maybe value that itself yields a maybe. + + + + + Transforms this maybe value by using a specified mapping function. + + + + + Map operation compatible with Linq. + + + + + Bind operation compatible with Linq. + + + + + If contains a value executes an delegate over it. + + + + + If contans a value executes an delegate over it. + + + + + Returns true iffits argument is of the form . + + + + + Returns true iffits argument is of the form . + + + + + Extracts the element out of a and returns a default value if its argument is . + + + + + Extracts the element out of a and throws an error if its argument is . + + + + + If contains a values returns it, otherwise returns . + + + + + If contains a values executes a mapping function over it, otherwise returns . + + + + + If contains a values executes a mapping function over it, otherwise returns the value from . + + + + + Returns an empty list when given or a singleton list when given a . + + + + + Represents the result of a computation. + + Type that models the result of a successful computation. + Type that model a message related to a computation. + + + + Represents the result of a successful computation. + + Type that models the result of a successful computation. + Type that model a message related to a computation. + + + + Represents the result of a failed computation. + + Type that models the result of a successful computation. + Type that model a message related to a computation. + + + + Creates a Failure result with the given messages. + + + + + Creates a Failure result with the given message. + + + + + Creates a Success result with the given value. + + + + + Creates a Success result with the given value and the given message. + + + + + Creates a Success result with the given value and the given messages. + + + + + Executes the given function on a given success or captures the failure. + + + + + Wraps a value in a Success. + + + + + Wraps a value in a Success. + + + + + Wraps a value in a Success and adds a message. + + + + + Wraps a message in a Failure. + + + + + Returns true if the result was not successful. + + + + + Takes a Result and maps it with successFunc if it is a Success otherwise it maps it with failureFunc. + + + + + If the given result is a Success the wrapped value will be returned. + Otherwise the function throws an exception with Failure message of the result. + + + + + Appends the given messages with the messages in the given result. + + + + + If the result is a Success it executes the given function on the value. + Otherwise the exisiting failure is propagated. + + + + + Flattens a nested result given the Failure types are equal. + + + + + If the wrapped function is a success and the given result is a success the function is applied on the value. + Otherwise the exisiting error messages are propagated. + + + + + Lifts a function into a Result container and applies it on the given result. + + + + + Promote a function to a monad/applicative, scanning the monadic/applicative arguments from left to right. + + + + + Collects a sequence of Results and accumulates their values. + If the sequence contains an error the error will be propagated. + + + + + Extensions methods for easier usage. + + + + + Allows pattern matching on Results. + + + + + Allows pattern matching on Results. + + + + + Lifts a Func into a Result and applies it on the given result. + + + + + Collects a sequence of Results and accumulates their values. + If the sequence contains an error the error will be propagated. + + + + + Collects a sequence of Results and accumulates their values. + If the sequence contains an error the error will be propagated. + + + + + If the result is a Success it executes the given Func on the value. + Otherwise the exisiting failure is propagated. + + + + + If the result is a Success it executes the given Func on the value. + If the result of the Func is a Success it maps it using the given Func. + Otherwise the exisiting failure is propagated. + + + + + Lifts a Func into a Result and applies it on the given result. + + + + + Returns the error messages or fails if the result was a success. + + + + + Returns the result or fails if the result was an error. + + + + + Returns messages in case of success, otherwise an empty sequence. + + + + + Builds a Maybe type instance from a Result one. + + + + diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CsvHelper.dll b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CsvHelper.dll new file mode 100644 index 00000000000..ecab3d5c5b8 Binary files /dev/null and b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CsvHelper.dll differ diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CsvHelper.xml b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CsvHelper.xml new file mode 100644 index 00000000000..7a7b45c8ba4 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/CsvHelper.xml @@ -0,0 +1,7995 @@ + + + + CsvHelper + + + + + Methods to help with arrays. + + + + + Trims the characters off the start and end of the buffer + by updating the start and length arguments. + + The buffer. + The start. + The length. + The characters to trim. + + + + Determines whether this given array contains the given character. + + The array to search. + The character to look for. + + true if the array contains the characters, otherwise false. + + + + + Represents errors that occur due to bad data. + + + + + The full field unedited. + + + + + The full row unedited. + + + + + Initializes a new instance of the class. + + The full field unedited. + The full row unedited. + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The full field unedited. + The full row unedited. + The reading context. + The message that describes the error. + + + + 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 full field unedited. + The full row unedited. + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + A value indicating whether comments are allowed. + + + + + Gets a value indicating whether comments are allowed. + + + + + A value indicating whether comments are allowed. + + The value indicating whether comments are allowed. + + + + + + + The string values used to represent a boolean false when converting. + + + + + Gets the false values. + + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + + + + + + + The string values used to represent a boolean true when converting. + + + + + Gets the true values. + + + + + The string values used to represent a boolean true when converting. + + + + + + The string values used to represent a boolean true when converting. + + + + + + + + + + + + The size of the buffer used for parsing and writing CSV files. + Default is 0x1000. + + + + + The buffer size. + + + + + The size of the buffer used for parsing and writing CSV files. + + + + + + + + + Cache fields that are created when parsing. + + + + + Cache fields that are created when parsing. + + + + + Cache fields that are created when parsing. + + + + + + + + + The character used to denote a line that is commented out. + Default is #. + + + + + Gets the character used to denote a line that is commented out. + + + + + The character used to denote a line that is commented out. + + The comment character. + + + + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + + + + Gets the constant. + + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant. + + + + + + + + + + A value indicating whether the number of bytes should + be counted while parsing. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + A value indicating whether the number of bytes should + be counted while parsing. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + A value indicating whether the number of bytes should + be counted while parsing. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + + + + + When applied to a member, specifies the + used when type converting the member. When applied to a type, the value of + in the + returned by + + + + + Gets the culture info. + + + + + + The name of a culture (case insensitive), or the literal values "InvariantCulture", + "CurrentCulture", "CurrentUICulture", "InstalledUICulture" to use the + corresponding static properties on . + + + + + + + + + + + + + + The to use when type converting. + This is used when doing any conversions. + + + + + Gets the date time styles. + + + + + The to use when type converting. + This is used when doing any conversions. + + The date time styles. + + + + + + + + + + The default value that will be used when reading when + the CSV field is empty. + + + + + Gets the default value. + + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value + + + + + + + + + + The delimiter used to separate fields. + + + + + Gets the delimiter. + + + + + The delimiter used to separate fields. + + The delimiter. + + + + + + + A value indicating whether changes in the column + count should be detected. If , a + will be thrown if a different column count is detected. + + + + + A value indicating whether changes in the column + count should be detected. If , a + will be thrown if a different column count is detected. + + + + + A value indicating whether changes in the column + count should be detected. If , a + will be thrown if a different column count is detected. + + + + + + + + Detect the delimiter instead of using the delimiter from configuration. + + + + + Detect the delimiter instead of using the delimiter from configuration. + + + + + Detect the delimiter instead of using the delimiter from configuration. + + + + + + + + The possible delimiter values used when detecting the delimiter. + Default is [",", ";", "|", "\t"]. + + + + + The possible delimiter values used when detecting the delimiter. + + + + + The possible delimiter values used when detecting the delimiter. + + Whitespace separated list of values. + + + + + + + The encoding used when counting bytes. + + + + + Gets the encoding used when counting bytes. + + + + + The encoding used when counting bytes. + + + + + + The encoding used when counting bytes. + + + + + + + + + Ignore case when parsing enums. + + + + + + + + + + + + + + The escape character used to escape a quote inside a field. + + + + + Gets the escape character used to escape a quote inside a field. + + + + + The escape character used to escape a quote inside a field. + + The escape character. + + + + + + + A value indicating whether exception messages contain raw CSV data. + if exceptions contain raw CSV data, otherwise . + + + + + A value indicating whether exception messages contain raw CSV data. + if exceptions contain raw CSV data, otherwise . + + + + + A value indicating whether exception messages contain raw CSV data. + if exceptions contain raw CSV data, otherwise . + + + + + + + + The string format to be used when type converting. + + + + + Gets the formats. + + + + + The string format to be used when type converting. + + The format. + + + + The string format to be used when type converting. + + The formats. + + + + + + + + + + A value indicating whether the CSV file has a header record. + + + + + Gets a value indicating whether the CSV file has a header record. + + + + + A value indicating whether the CSV file has a header record. + + A value indicating whether the CSV file has a header record. + + + + + + + Appends a prefix to the header of each field of the reference member. + + + + + Gets the prefix. + + + + + Gets a value indicating whether the prefix should inherit parent prefixes. + + + + + Appends a prefix to the header of each field of the reference member. + + + + + Appends a prefix to the header of each field of the reference member. + + The prefix. + + + + Appends a prefix to the header of each field of the reference member. + + Inherits parent object prefixes. + + + + Appends a prefix to the header of each field of the reference member. + + The prefix. + Inherits parent object prefixes. + + + + + + + + + + Defines methods to enable pluggable configuration. + + + + + Applies configuration. + + The configuration to apply to. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + + + + + + + + + + Ignores base classes when auto mapping. + + + + + A value indicating whether blank lines should be ignored when reading. + + + + + Gets a value indicating whether blank lines should be ignored when reading. + + + + + A value indicating whether blank lines should be ignored when reading. + + + + + + + + Gets a value indicating whether references + should be ignored when auto mapping. to ignore + references, otherwise . + + + + + Gets a value indicating whether references + should be ignored when auto mapping. to ignore + references, otherwise . + + + + + Gets a value indicating whether references + should be ignored when auto mapping. to ignore + references, otherwise . + + + + + + + + Defines methods to enable pluggable configuration of member mapping. + + + + + Applies configuration to the given . + + The member map. + + + + Defines methods to enable pluggable configuration of member reference mapping. + + + + + Applies configuration to the given . + + The reference map. + + + + A value indicating whether private members should be read from and written to. + + + + + Gets a value indicating whether private members should be read from and written to. + + + + + A value indicating whether private members should be read from and written to. + + + + + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + + + + Gets the index. + + + + + Gets the index end. + + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index. + The index end. + + + + + + + + + + Gets the characters that are used for injection attacks. + + + + + Gets the characters that are used for injection attacks. + Default is '=', '@', '+', '-', '\t', '\r'. + + + + + Gets the characters that are used for injection attacks. + + + + + + + + + The character used to escape a detected injection. + + + + + The character used to escape a detected injection. + + + + + The character used to escape a detected injection. + + + + + + + + + The injection options. + + + + + The injection options. + + + + + The injection options. + + + + + + + + + Defines methods to enable pluggable configuration of parameter mapping. + + + + + Applies configuration to the given . + + The parameter map. + + + + Defines methods to enable pluggable configuration of parameter reference mapping. + + + + + Applies configuration to the given . + + The reference map. + + + + A value indicating whether a line break found in a quote field should + be considered bad data. to consider a line break bad data, otherwise . + + + + + A value indicating whether a line break found in a quote field should + be considered bad data. to consider a line break bad data, otherwise . + + + + + A value indicating whether a line break found in a quote field should + be considered bad data. to consider a line break bad data, otherwise . + + + + + + + + Gets or sets the maximum size of a field. + Defaults to 0, indicating maximum field size is not checked. + + + + + Gets or sets the maximum size of a field. + + + + + Gets or sets the maximum size of a field. + + + + + + + + + The member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + + + + The mode. + See for more details. + + + + + The mode. + See for more details. + + + + + The mode. + See for more details. + + + + + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + + + + Gets the names. + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The name + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The names. + + + + + + + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + + + + The name index. + + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The name index. + + + + + + + + + + The newline string to use. Default is \r\n (CRLF). + When writing, this value is always used. + When reading, this value is only used if explicitly set. + If not set, the parser uses one of \r\n, \r, or \n. + + + + The newline string to use. Default is \r\n (CRLF). + When writing, this value is always used. + When reading, this value is only used if explicitly set. + If not set, the parser uses one of \r\n, \r, or \n. + + + The newline string to use. Default is \r\n (CRLF). + When writing, this value is always used. + When reading, this value is only used if explicitly set. + If not set, the parser uses one of \r\n, \r, or \n. + + + + + + + The string values used to represent null when converting. + + + + + Gets the null values. + + + + + The string values used to represent null when converting. + + The null values. + + + + The string values used to represent null when converting. + + The null values. + + + + + + + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + Gets the number styles. + + + + + The to use when type converting. + This is used when doing any number conversions. + + The number styles. + + + + + + + + + + Ignore the member when reading if no matching field name can be found. + + + + + + + + + + + The size of the buffer used when processing fields. + Default is 1024. + + + + + The size of the buffer used when processing fields. + + + + + The size of the buffer used when processing fields. + + + + + + + + + The character used to quote fields. + + + + + Gets the character used to quote fields. + + + + + The character used to quote fields. + + The quote character. + + + + + + + The fields trimming options. + + + + + Gets the fields trimming options. + + + + + The fields trimming options. + + The TrimOptions. + + + + + + + Specifies the to use + when converting the member to and from a CSV field. + + + + + Gets the type converter. + + + + + Specifies the to use + when converting the member to and from a CSV field. + + The type of the . + + + + Specifies the to use + when converting the member to and from a CSV field. + + The type of the . + Type constructor arguments for the type converter. + + + + + + + + + + Gets a value indicating that during writing whether a new + object should be created when a reference member is . + to create a new object and use its defaults for the + fields, or to leave the fields empty for all the + reference member's members. + + + + + Gets a value indicating that during writing whether a new + object should be created when a reference member is . + to create a new object and use its defaults for the + fields, or to leave the fields empty for all the + reference member's members. + + + + + Gets a value indicating that during writing whether a new + object should be created when a reference member is . + to create a new object and use its defaults for the + fields, or to leave the fields empty for all the + reference member's members. + + + + + + + + Characters considered whitespace. + Used when trimming fields. + Default is [' ']. + + + + + Characters considered whitespace. + Used when trimming fields. + + + + + Characters considered whitespace. + Used when trimming fields. + + + + + + + + + Maps class members to CSV fields. + + + + + The type of the class this map is for. + + + + + The class constructor parameter mappings. + + + + + The class member mappings. + + + + + The class member reference mappings. + + + + + Allow only internal creation of CsvClassMap. + + The type of the class this map is for. + + + + Maps a member to a CSV field. + + The type of the class this map is for. This may not be the same type + as the member.DeclaringType or the current ClassType due to nested member mappings. + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Maps a non-member to a CSV field. This allows for writing + data that isn't mapped to a class member. + + The member mapping. + + + + Maps a member to another class map. + + The type of the class map. + The member. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Maps a constructor parameter to a CSV field. + + The name of the constructor parameter. + + + + Maps a constructor parameter to a CSV field. + + A function that returns the for the constructor. + The name of the constructor parameter. + + + + Maps a constructor parameter to a CSV field. + + The for the constructor. + The for the constructor parameter. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The culture. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The configuration. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The context. + + + + Get the largest index for the + members and references. + + The max index. + + + + Resets the indexes based on the given start index. + + The index start. + The last index + 1. + + + + Auto maps the given map and checks for circular references as it goes. + + The map to auto map. + The context. + The list of parents for the map. + The index starting point. + + + + Auto maps the given map using constructor parameters. + + The map. + The context. + The list of parents for the map. + The index starting point. + + + + Checks for circular references. + + The type to check for. + The list of parents to check against. + A value indicating if a circular reference was found. + True if a circular reference was found, otherwise false. + + + + Gets the generic type for this class map. + + + + + Applies attribute configurations to the map. + + The parameter map. + + + + Applies attribute configurations to the map. + + The parameter reference map. + + + + Applies attribute configurations to the map. + + The member map. + + + + Applies attribute configurations to the map. + + The member reference map. + + + + Has mapping capabilities. + + The class type. + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Options after a mapping call. + + The class type. + The member type. + + + + Has type converter capabilities. + + The class type. + The member type. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Options after a type converter call. + + The class type. + The member type. + + + + Has index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Options after an index call. + + The class type. + The member type. + + + + Has optional capabilities. + + The class type. + The member type. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Options after an optional call. + + The class type. + The member type. + + + + Has name capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + Options after a name call. + + The class type. + The member type. + + + + Has name index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + Options after a name index call. + + The class type. + The member type. + + + + Has convert using capabilities. + + The class type. + The member type. + + + + Specifies an expression to be used to convert data in the + row to the member. + + The convert expression. + + + + Specifies an expression to be used to convert the object + to a field. + + The convert expression. + + + + Has default capabilities. + + The class type. + The member type. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + Options after a default call. + + The class type. + The member type. + + + + Has constant capabilities. + + The class type. + The member type. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Has validate capabilities. + + The class type. + The member type. + + + + The validate expression that will be called on every field when reading. + The expression should return true if the field is valid. + If false is returned, a + will be thrown. + + The validation expression. + + + + Has build capabilities. + + The class type. + + + + Builds the . + + + + + Collection that holds CsvClassMaps for record types. + + + + + Gets the for the specified record type. + + + The . + + The record type. + The for the specified record type. + + + + Creates a new instance using the given configuration. + + The context. + + + + Finds the for the specified record type. + + The record type. + The for the specified record type. + + + + Adds the specified map for it's record type. If a map + already exists for the record type, the specified + map will replace it. + + The map. + + + + Removes the class map. + + The class map type. + + + + Removes all maps. + + + + + Goes up the inheritance tree to find the type instance of CsvClassMap{}. + + The type to traverse. + The type that is CsvClassMap{}. + + + + Sets defaults for the mapping tree. The defaults used + to be set inside the classes, but this didn't allow for + the TypeConverter to be created from the Configuration's + TypeConverterFactory. + + The map to set defaults on. + + + + Maps class members to CSV fields. + + The of class to map. + + + + Creates an instance of . + + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Meant for internal use only. + Maps a member to another class map. When this is used, accessing a property through + sub-property mapping later won't work. You can only use one or the other. When using + this, ConvertUsing will also not work. + + The type of the class map. + The expression. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Represents configuration errors that occur. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + Holds the default callback methods for delegate members of CsvHelper.Configuration.Configuration. + + + + Throws a if is not empty. + + + + + Throws a MissingFieldException. + + + + + Throws a . + + + + + Throws the given . + + + + + Returns true if the field contains a , + starts with a space, ends with a space, contains \r or \n, or contains + the . + + The args. + true if the field should be quoted, otherwise false. + + + + Returns the as given. + + + + + Returns true if : + 1. does not have a parameterless constructor + 2. has a constructor + 3. is not a value type + 4. is not a primitive + 5. is not an enum + 6. is not an interface + 7. TypeCode is an Object. + + + + + Returns the type's constructor with the most parameters. + If two constructors have the same number of parameters, then + there is no guarantee which one will be returned. If you have + that situation, you should probably implement this function yourself. + + + + + Returns the header name ran through . + If no header exists, property names will be Field1, Field2, Field3, etc. + + The args. + + + + Detects the delimiter based on the given text. + Return the detected delimiter or null if one wasn't found. + + The args. + + + + Configuration used for reading and writing CSV data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class + using the given . Since + uses for its default, the given + will be used instead. + + The culture information. + + + + Initializes a new instance of the class + using the given . Since + uses for its default, the given + will be used instead. + + The culture information. + The type that contains the configuration attributes. + This will call automatically. + + + + Validates the configuration. + + + + + Applies class level attribute to configuration. + + Type with attributes. + + + + Applies class level attribute to configuration. + + Type with attributes. + + + + Creates a instance configured using CsvHelper attributes applied + to at the type-level. This method requires to + be annotated with (or to sub-class a type which is). + + + The type whose attributes should be used to configure the instance. + This is normally the type you are intending to map for reading and writing. + + A new instance configured with attributes applied to . + + CsvHelper attributes applied to members and parameters do not influence the return value of this method. + Such attributes do not define values which are used in and instead influence + the maps which are built and used during reading and writing. See and . + + If is not annotated with . + If the argument to the is . + If the argument to the does not specify a supported culture. + + + + Creates a instance configured using + and CsvHelper attributes applied to at the type-level. + This method ignores any applied to . + + + The to configure the returned with. + A new instance configured with and attributes applied to . + + + + + Creates a instance configured using CsvHelper attributes applied + to at the type-level. This method requires to + be annotated with (or to sub-class a type which is). + + + A new instance configured with attributes applied to . + + CsvHelper attributes applied to members and parameters do not influence the return value of this method. + Such attributes do not define values which are used in and instead influence + the maps which are built and used during reading and writing. See and . + + If is not annotated with . + If the argument to the is . + If the argument to the does not specify a supported culture. + + + + Creates a instance configured using + and CsvHelper attributes applied to at the type-level. + This method ignores any applied to . + + + + A new instance configured with and attributes applied to + + + + + A default that can be used + to create a class map dynamically. + + + + + + Options for handling injection attacks. + + + + + No injection protection. + + + + + Escape injection characters. + + + + + Strip injection characters. + + + + + Throw an exception if injection characters are detected. + + + + + Configuration used for the . + + + + + Gets the culture info used to read an write CSV files. + + + + + Cache fields that are created when parsing. + Default is false. + + + + + The newline string to use. Default is \r\n (CRLF). + When writing, this value is always used. + When reading, this value is only used if explicitly set. + If not set, the parser uses one of \r\n, \r, or \n. + + + + + A value indicating if was set. + + + true if was set. false if is the default. + + + + + The mode. + See for more details. + + + + + Gets the size of the buffer + used for parsing and writing CSV files. + Default is 0x1000. + + + + + The size of the buffer used when processing fields. + Default is 1024. + + + + + Gets a value indicating whether the number of bytes should + be counted while parsing. Default is false. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + Gets the encoding used when counting bytes. + + + + + Gets the function that is called when bad field data is found. A field + has bad data if it contains a quote and the field is not quoted (escaped). + You can supply your own function to do other things like logging the issue + instead of throwing an exception. + + + + + Gets or sets the maximum size of a field. + Defaults to 0, indicating maximum field size is not checked. + + + + + Gets a value indicating if a line break found in a quote field should + be considered bad data. true to consider a line break bad data, otherwise false. + Defaults to false. + + + + + Gets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets a value indicating if comments are allowed. + true to allow commented out lines, otherwise false. + + + + + Gets a value indicating if blank lines + should be ignored when reading. + true to ignore, otherwise false. Default is true. + + + + + Gets the character used to quote fields. + Default is '"'. + + + + + The delimiter used to separate fields. + Default is . + + + + + Detect the delimiter instead of using the delimiter from configuration. + Default is false. + + + + + Gets the function that is called when is enabled. + + + + + The possible delimiter values used when detecting the delimiter. + Default is [",", ";", "|", "\t"]. + + + + + The character used to escape characters. + Default is '"'. + + + + + Gets the field trimming options. + + + + + Characters considered whitespace. + Used when trimming fields. + Default is [' ']. + + + + + A value indicating if exception messages contain raw CSV data. + true if exception contain raw CSV data, otherwise false. + Default is true. + + + + + Validates the configuration. + + + + + Configuration used for the . + + + + + Gets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets the function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + + + + + Gets the function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + + + + + Gets the function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + + + + + Prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + Determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + Chooses the constructor to use for constructor mapping. + + + + + Gets the name to use for the property of the dynamic object. + + + + + Gets a value indicating whether references + should be ignored when auto mapping. true to ignore + references, otherwise false. Default is false. + + + + + Gets the callback that will be called to + determine whether to skip the given record or not. + + + + + Gets a value indicating if private + member should be read from and written to. + true to include private member, otherwise false. Default is false. + + + + + Gets a callback that will return the prefix for a reference header. + + + + + Gets a value indicating whether changes in the column + count should be detected. If true, a + will be thrown if a different column count is detected. + + + + + Gets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + Configuration used for the . + + + + + Gets the size of the buffer + used for parsing and writing CSV files. + Default is 0x1000. + + + + + The mode. + See for more details. + + + + + Gets the delimiter used to separate fields. + Default is ','; + + + + + Gets the character used to quote fields. + Default is '"'. + + + + + The character used to escape characters. + Default is '"'. + + + + + Gets the field trimming options. + + + + + Gets the injection options. + + + + + Gets the characters that are used for injection attacks. + + + + + Gets the character used to escape a detected injection. + + + + + The newline string to use. Default is \r\n (CRLF). + When writing, this value is always used. + When reading, this value is only used if explicitly set. If not set, + the parser uses one of \r\n, \r, or \n. + + + + + A value indicating if was set. + + + true if was set. false if is the default. + + + + + Gets a function that is used to determine if a field should get quoted + when writing. + + + + + Gets the culture info used to read and write CSV files. + + + + + Gets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets a callback that will return the prefix for a reference header. + + + + + Gets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + Gets a value indicating that during writing if a new + object should be created when a reference member is null. + True to create a new object and use it's defaults for the + fields, or false to leave the fields empty for all the + reference member's member. + + + + + Gets the comparer used to order the properties + of dynamic objects when writing. The default is null, + which will preserve the order the object properties + were created with. + + + + + A value indicating if exception messages contain raw CSV data. + true if exception contain raw CSV data, otherwise false. + Default is true. + + + + + Validates the configuration. + + + + + Mapping info for a member to a CSV field. + + + + + Gets the member map data. + + + + + Type converter options. + + + + + Creates an instance of using the given Type and . + + Type of the class the member being mapped belongs to. + The member being mapped. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + Use default on conversion failure. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Specifies an expression to be used to validate a field when reading. + + + + + + Specifies an expression to be used to validate a field when reading along with specified exception message. + + + + + + + A collection that holds 's. + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + + Gets a value indicating whether the is read-only. + + + true if the is read-only; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The comparer to use when sorting the member maps. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + + Adds a range of items to the . + + The collection to add. + + + + Removes all items from the . + + The is read-only. + + + + + Determines whether the contains a specific value. + + + true if is found in the ; otherwise, false. + + The object to locate in the . + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0.The number of elements in the source is greater than the available space from to the end of the destination . + + + + Removes the first occurrence of a specific object from the . + + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The object to remove from the . + The is read-only. + + + + + Determines the index of a specific item in the . + + + The index of if found in the list; otherwise, -1. + + The object to locate in the . + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + + + Gets or sets the element at the specified index. + + + The element at the specified index. + + The zero-based index of the element to get or set. + is not a valid index in the . + The member is set and the is read-only. + + + + + Finds the using the given member expression. + + The the member is on. + The member expression. + The for the given expression, or null if not found. + + + + Finds the using the given member. + + The member. + The for the given expression, or null if not found. + + + + Adds the members from the mapping. This will recursively + traverse the mapping tree and add all members for + reference maps. + + The mapping where the members are added from. + + + + Used to compare s. + The order is by field index ascending. Any + fields that don't have an index are pushed + to the bottom. + + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + Value + Condition + Less than zero + is less than . + Zero + equals . + Greater than zero + is greater than . + + The first object to compare. + The second object to compare. + Neither nor implements the interface. + -or- + and are of different types and neither one can handle comparisons with the other. + 2 + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + Value + Condition + Less than zero + is less than . + Zero + equals . + Greater than zero + is greater than . + + The first object to compare. + The second object to compare. + + + + + The configured data for the member map. + + + + + Gets the member type. + + + + + Gets the that the data + is associated with. + + + + + Gets the list of column names. + + + + + Gets or sets the index of the name. + This is used if there are multiple + columns with the same names. + + + + + Gets or sets a value indicating if the name was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the column index. + + + + + Gets or sets the index end. The Index end is used to specify a range for use + with a collection member. Index is used as the start of the range, and IndexEnd + is the end of the range. + + + + + Gets or sets a value indicating if the index was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the type converter. + + + + + Gets or sets the type converter options. + + + + + Gets or sets a value indicating whether the field should be ignored. + + + + + Gets or sets the default value used when a CSV field is empty. + + + + + Gets or sets a value indicating whether this instance is default value set. + the default value was explicitly set. True if it was + explicitly set, otherwise false. + + + + + Gets or setse a value indicating if the default value should be used when + a type conversion failure happens. true to use the default, otherwise + false. + + + + + Gets or sets the constant value used for every record. + + + + + Gets or sets a value indicating if a constant was explicitly set. + + + + + Gets or sets the expression used to convert data in the + row to the member. + + + + + Gets or sets the expression to be used to convert the object + to a field. + + + + + Gets or sets the expression use to validate a field. + + + + + Gets or sets the expression used to get the validation message when validation fails. + + + + + Gets or sets a value indicating if a field is optional. + + + + + Initializes a new instance of the class. + + The member. + + + + Sets type converter options on a member map. + + + + + Creates a new instance using the given . + + The member map the options are being applied to. + + + + The used when type converting. + This will override the global + setting. + + The culture info. + + + + The to use when type converting. + This is used when doing any conversions. + + The date time style. + + + + The to use when type converting. + This is used when doing converting. + + The time span styles. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + + The string format to be used when type converting. + + The format. + + + + The to use when converting. + This is used when doing conversions. + + Kind of the URI. + + + + The string values used to represent a boolean when converting. + + A value indicating whether true values or false values are being set. + A value indication if the current values should be cleared before adding the new ones. + The string boolean values. + + + + The string values used to represent null when converting. + + The values that represent null. + + + + + The string values used to represent null when converting. + + A value indication if the current values should be cleared before adding the new ones. + The values that represent null. + + + + + Ignore case when parsing enums. + + true to ignore case, otherwise false. + + + + Mapping info for a member to a CSV field. + + + + + + + + Creates a new instance using the specified member. + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + Use default on conversion failure. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + Use default on conversion failure. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Specifies an expression to be used to convert data in the + row to the member. + + The convert expression. + + + + Specifies an expression to be used to convert the object + to a field. + + The convert expression. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Specifies an expression to be used to validate a field when reading. + + + + + + Specifies an expression to be used to validate a field when reading along with specified exception message. + + + + + + + A collection that holds member names. + + + + + Gets the name at the given index. If a prefix is set, + it will be prepended to the name. + + + + + + + Gets the prefix to use for each name. + + + + + Gets the raw list of names without + the prefix being prepended. + + + + + Gets the count. + + + + + Adds the given name to the collection. + + The name to add. + + + + Clears all names from the collection. + + + + + Adds a range of names to the collection. + + The range to add. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Mapping info for a reference member mapping to a class. + + + + + Gets the member reference map data. + + + + + Initializes a new instance of the class. + + The member. + The to use for the reference map. + + + + Appends a prefix to the header of each field of the reference member. + + The prefix to be prepended to headers of each reference member. + Inherit parent prefixes. + The current + + + + Get the largest index for the + members and references. + + The max index. + + + + A collection that holds 's. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + is not a valid index in the . + The member is set and the is read-only. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + 1 + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + 2 + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Removes all items from the . + The is read-only. + + + Determines whether the contains a specific value. + true if is found in the ; otherwise, false. + The object to locate in the . + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Removes the first occurrence of a specific object from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + The object to remove from the . + The is read-only. + + + Determines the index of a specific item in the . + The index of if found in the list; otherwise, -1. + The object to locate in the . + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Finds the using the given member expression. + + The the member is on. + The member expression. + The for the given expression, or null if not found. + + + + Finds the using the given member. + + The member. + The for the given expression, or null if not found. + + + + The configuration data for the reference map. + + + + + Gets or sets the header prefix to use. + + + + + Gets or sets a value indicating if a prefix should inherit its parent. + true to inherit, otherwise false. + + + + + Gets the that the data + is associated with. + + + + + Gets the mapping this is a reference for. + + + + + Initializes a new instance of the class. + + The member. + The mapping this is a reference for. + + + + Flags for the type of members that + can be used for auto mapping. + + + + + No members. This is not a valid value + and will cause an exception if used. + + + + + Properties on a class. + + + + + Fields on a class. + + + + + Mapping for a constructor parameter. + This may contain value type data, a constructor type map, + or a reference map, depending on the type of the parameter. + + + + + Gets the parameter map data. + + + + + Type converter options. + + + + + Gets or sets the map for a constructor type. + + + + + Gets or sets the map for a reference type. + + + + + Creates an instance of using + the given information. + + The parameter being mapped. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + + + + Ignore the parameter when reading and writing. + + + + + Ignore the parameter when reading and writing. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + The field is optional. + + + + + Specifies the to use + when converting the parameter to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the parameter to and from a CSV field. + + The of the + to use. + + + + The constructor parameter data for the map. + + + + + Gets the that the data + is associated with. + + + + + Gets the list of column names. + + + + + Gets or sets the index of the name. + This is used if there are multiple + columns with the same names. + + + + + Gets or sets a value indicating if the name was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the column index. + + + + + Gets or sets a value indicating if the index was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the type converter. + + + + + Gets or sets the type converter options. + + + + + Gets or sets a value indicating whether the field should be ignored. + + + + + Gets or sets the default value used when a CSV field is empty. + + + + + Gets or sets a value indicating whether this instance is default value set. + the default value was explicitly set. True if it was + explicitly set, otherwise false. + + + + + Gets or sets the constant value used for every record. + + + + + Gets or sets a value indicating if a constant was explicitly set. + + + + + Gets or sets a value indicating if a field is optional. + + + + + Initializes a new instance of the class. + + The constructor parameter. + + + + Sets type converter options on a parameter map. + + + + + Creates a new instance using the given . + + The member map the options are being applied to. + + + + The used when type converting. + This will override the global + setting. + + The culture info. + + + + The to use when type converting. + This is used when doing any conversions. + + The date time style. + + + + The to use when type converting. + This is used when doing converting. + + The time span styles. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + + The string format to be used when type converting. + + The format. + + + + The to use when converting. + This is used when doing conversions. + + Kind of the URI. + + + + The string values used to represent a boolean when converting. + + A value indicating whether true values or false values are being set. + A value indication if the current values should be cleared before adding the new ones. + The string boolean values. + + + + The string values used to represent null when converting. + + The values that represent null. + + + + + The string values used to represent null when converting. + + A value indication if the current values should be cleared before adding the new ones. + The values that represent null. + + + + + Mapping info for a reference parameter mapping to a class. + + + + + Gets the parameter reference map data. + + + + + Initializes a new instance of the class. + + The parameter. + The to use for the reference map. + + + + Appends a prefix to the header of each field of the reference parameter. + + The prefix to be prepended to headers of each reference parameter. + Inherit parent prefixes. + The current + + + + Get the largest index for the + members and references. + + The max index. + + + + The configuration data for the reference map. + + + + + Gets or sets the header prefix to use. + + + + + Gets or sets a value indicating if a prefix should inherit its parent. + true to inherit, otherwise false. + + + + + Gets the that the data + is associated with. + + + + + Gets the mapping this is a reference for. + + + + + Initializes a new instance of the class. + + The parameter. + The mapping this is a reference for. + + + + Options for trimming of fields. + + + + + No trimming. + + + + + Trims the whitespace around a field. + + + + + Trims the whitespace inside of quotes around a field. + + + + + Share state for CsvHelper. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + The configured s. + + + + + Gets the parser. + + + + + Gets the reader. + + + + + Gets the writer. + + + + + Gets the configuration. + + + + + Initializes a new instance of the class. + + The reader. + + + + Initializes a new instance of the class. + + The parser. + + + + Initializes a new instance of the class. + + The writer. + + + + Initializes a new instance of the class. + + The configuration. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only members specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + Provides a means of reading a CSV file forward-only by using CsvReader. + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + The CSV. + The DataTable representing the file schema. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents errors that occur in CsvHelper. + + + + + Gets the context. + + + + + Initializes a new instance of the CsvHelperException class. + + + + + Initializes a new instance of the CsvHelperException class. + + The message that describes the error. + + + + Initializes a new instance of the CsvHelperException class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The context. + The message that describes the error. + + + + 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 context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Mode to use when parsing and writing. + + + + + Uses RFC 4180 format (default). + If a field contains a or , + it is wrapped in s. + If quoted field contains a , it is preceded by . + + + + + Uses escapes. + If a field contains a , , + or , it is preceded by . + Newline defaults to \n. + + + + + Doesn't use quotes or escapes. + This will ignore quoting and escape characters. This means a field cannot contain a + , , or + , as they cannot be escaped. + + + + + Parses a CSV file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + The reader. + The culture. + if set to true [leave open]. + + + + Initializes a new instance of the class. + + The reader. + The configuration. + if set to true [leave open]. + + + + + + + + + + Processes a field that complies with RFC4180. + + The start index of the field. + The length of the field. + The number of counted quotes. + The processed field. + + + + Processes a field that does not comply with RFC4180. + + The start index of the field. + The length of the field. + The processed field. + + + + Processes an escaped field. + + The start index of the field. + The length of the field. + The processed field. + + + + + Processes an non-escaped field. + + The start index of the field. + The length of the field. + The processed field. + + + + + + + Disposes the object. + + Indicates if the object is being disposed. + + + + Processes a raw field based on configuration. + This will remove quotes, remove escapes, and trim if configured to. + + + + + The start of the field in the buffer. + + + + + The length of the field in the buffer. + + + + + The buffer that contains the field. + + + + + Creates a new instance of ProcessedField. + + The start of the field in the buffer. + The length of the field in the buffer. + The buffer that contains the field. + + + + Starting position of the field. + This is an offset from . + + + + + Reads data that was parsed from . + + + + + + + + + + + + + + + + + + + + + + + Creates a new CSV reader using the given . + + The reader. + The culture. + true to leave the open after the object is disposed, otherwise false. + + + + Creates a new CSV reader using the given and + and as the default parser. + + The reader. + The configuration. + true to leave the open after the object is disposed, otherwise false. + + + + Creates a new CSV reader using the given . + + The used to parse the CSV file. + + + + + + + Validates the header to be of the given type. + + The expected type of the header + + + + Validates the header to be of the given type. + + The expected type of the header. + + + + Validates the header to be of the given type. + + The mapped classes. + The invalid headers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the index of the field with the given name. + + The name of the field. + The index of the field. + Indicates if a TryGet is executed. + The index of the field. + + + + Gets the index of the field with the given name. + + The names of the field. + The index of the field. + Indicates if a TryGet is executed. + Indicates if the field is optional. + The index of the field. + + + + Indicates if values can be read. + + The member map. + True if values can be read. + + + + Indicates if values can be read. + + The member reference map. + True if values can be read. + + + + + + + Disposes the object. + + Indicates if the object is being disposed. + + + + Checks if the file has been read. + + Thrown when the file has not yet been read. + + + + Parses the named indexes. + + Thrown when no header record was found. + + + + Used to write CSV files. + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + The writer. + The culture. + true to leave the open after the object is disposed, otherwise false. + + + + Initializes a new instance of the class. + + The writer. + The configuration. + true to leave the open after the object is disposed, otherwise false. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Writes a dynamic header record. + + The header record to write. + Thrown when no record is passed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Flushes the buffer. + + + + + Asynchronously flushes the buffer. + + + + + Indicates if values can be written. + + The member map. + True if values can be written. + + + + Determines the type for the given record. + + The type of the record. + The record to determine the type of. + The System.Type for the record. + + + + Sanitizes the given field, before it is injected. + + The field to sanitize. + The sanitized field. + Thrown when an injection character is found in the field. + + + + Writes the given value to the buffer. + + The value to write. + + + + + + + Disposes the object. + + Indicates if the object is being disposed. + + + + + + + + + + Function that gets called when bad data is found. + + The args. + + + + Information about the field that caused to be called. + + + + + The full field unedited. + + + + + The full row unedited. + + + + + The context. + + + + + Creates a new instance of BadDataFoundArgs. + + The full field unedited. + The full row unedited. + The context. + + + + Function that converts a string into an object. + + The type of the member. + The args. + The class object. + + + + args. + + + + + The row. + + + + + Creates a new instance of ConvertFromStringArgs. + + The row. + + + + Function that converts an object into a string. + + The type of the class. + The args. + The string. + + + + args. + + The value to convert. + + + + The value to convert. + + + + + Creates a new instance of ConvertToStringArgs{TClass}. + + The value to convert. + + + + Function that chooses the constructor to use for constructor mapping. + + + + + GetConstructor args. + + + + + The class type. + + + + + Creates a new instance of GetConstructorArgs. + + The class type. + + + + Function that resolves the delimiter from the given text. + Returns null if no delimiter is found. + + + + + + + GetDelimiter args. + + + + + The text to resolve the delimiter from. + + + + + The configuration. + + + + + Creates an instance of GetDelimiterArgs. + + The text to resolve the delimiter from. + The configuration. + + + + Function that gets the name to use for the property of the dynamic object. + + + + + GetDynamicPropertyName args. + + + + + The field index. + + + + + The context. + + + + + Creates a new instance of GetDynamicPropertyNameArgs. + + The field index. + The context. + + + + Function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + + + + + HeaderValidated args. + + + + + The invalid headers. + + + + + The context. + + + + + Creates a new instance of HeaderValidatedArgs. + + The invalid headers. + The context. + + + + Function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + + + + + MissingFieldFound args. + + + + + The header names. + + + + + The index. + + + + + The context. + + + + + Creates a new instance of MissingFieldFoundArgs. + + The header names. + The index. + The context. + + + + Function that prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + PrepareHeaderForMatch args. + + + + + The header. + + + + + The field index. + + + + + Creates a new instance of PrepareHeaderForMatchArgs. + + The header. + The field index. + + + + Function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + + + + + ReadingExceptionOccurred args. + + + + + The record that will be returned from GetRecord. If this is null, + GetRecord will return a null, even though it is non-nullable. + + + + + The exception. + + + + + Creates a new instance of ReadingExceptionOccurredArgs. + + The exception. + + + + Function that will return the prefix for a reference header. + + + + + ReferenceHeaderPrefix args. + + + + + The member type. + + + + + The member name. + + + + + Creates a new instance of ReferenceHeaderPrefixArgs. + + The member type. + The member name. + + + + Function that is used to determine if a field should get quoted when writing. + + + + + ShouldQuote args. + + + + + The field. + + + + + The field type. + + + + + The row. + + + + + Creates a new instance of ShouldQuoteArgs. + + The field. + The field type. + The row. + + + + Function that determines whether to skip the given record or not. + + + + + ShouldSkipRecord args. + + + + + The record. + + + + + Creates a new instance of ShouldSkipRecordArgs. + + The row. + + + + Function that determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + ShouldUseConstructorParameters args. + + + + + The parameter type. + + + + + Creates a new instance of ShouldUseConstructorParametersArgs. + + The parameter type. + + + + Function that validates a field. + + The args. + true if the field is valid, otherwise false. + + + + Function that gets the exception message when validation fails. + + The args. + The exception message. + + + + Validate args. + + + + + The field. + + + + + The row. + + + + + Creates a new instance of ValidateArgs. + + The field. + The row. + + + + Creates dynamic records. + + + + + Initializes a new instance. + + The reader. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Creates a dynamic record of the current reader row. + + + + + Write dynamic records. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The type for the record. + + + + Writes expando objects. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Manages expression creation. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates the constructor arguments used to create a type. + + The mapping to create the arguments for. + The arguments that will be added to the mapping. + + + + Creates the member assignments for the given . + + The mapping to create the assignments for. + The assignments that will be added to from the mapping. + + + + Creates an expression the represents getting the field for the given + member and converting it to the member's type. + + The mapping for the member. + + + + Creates a member expression for the given member on the record. + This will recursively traverse the mapping to find the member + and create a safe member accessor for each level as it goes. + + The current member expression. + The mapping to look for the member to map on. + The member map to look for on the mapping. + An Expression to access the given member. + + + + Creates an instance of the given type using , then assigns + the given member assignments to that instance. + + The type of the record we're creating. + The member assignments that will be assigned to the created instance. + A representing the instance creation and assignments. + + + + Creates an expression that converts the field expression using a type converter. + + The mapping for the member. + The field expression. + + + + Creates an expression that converts the field expression using a type converter. + + The mapping for the parameter. + The field expression. + + + + Creates a default expression if field expression is empty. + + The mapping for the member. + The field expression. + + + + Creates a default expression if field expression is empty. + + The mapping for the parameter. + The field expression. + + + + Creates objects. + + + + + Initializes a new instance using the given reader. + + + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Writes objects. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The type for the record. + + + + Creates primitive records. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Writes primitives. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The type for the record. + + + + Base implementation for classes that create records. + + + + + The reader. + + + + + The expression manager. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Gets the delegate to create a record for the given record type. + If the delegate doesn't exist, one will be created and cached. + + The record type. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Factory to create record creators. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Creates a record creator for the given record type. + + The record type. + + + + Hydrates members of an existing record. + + + + + Creates a new instance using the given reader. + + The reader. + + + + Hydrates members of the given record using the current reader row. + + The record type. + The record. + + + + Gets the action delegate used to hydrate a custom class object's members with data from the reader. + + The record type. + + + + Creates the action delegate used to hydrate a record's members with data from the reader. + + The record type. + + + + Manages record manipulation. + + + + + Initializes a new instance using the given reader. + + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Gets a cached reader delegate for the given type. + + The type of the record. + The type of the record. + + + + Hydrates the given record using the current reader row. + + The type of the record. + The record to hydrate. + + + + Gets a cached writer delegate for the given type. + + The record type information. + The type of record being written. + + + + Base implementation for classes that write records. + + + + + Gets the writer. + + + + + The expression manager. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Gets the delegate to write the given record. + If the delegate doesn't exist, one will be created and cached. + + The record type. + The type for the record. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Creates a of type + that will write the given record using the current writer row. + + The type of the record. + + + + Combines the delegates into a single multicast delegate. + This is needed because Silverlight doesn't have the + Delegate.Combine( params Delegate[] ) overload. + + The delegates to combine. + A multicast delegate combined from the given delegates. + + + + Factory to create record writers. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a new record writer for the given record. + + The type of the record. + + + + Creates CsvHelper classes. + + + + + Creates an . + + The text reader to use for the csv parser. + The configuration to use for the csv parser. + The created parser. + + + + Creates an . + + The text reader to use for the csv parser. + The culture information. + + The created parser. + + + + + Creates an . + + The text reader to use for the csv reader. + The configuration to use for the reader. + The created reader. + + + + Creates an . + + The text reader to use for the csv reader. + The culture information. + + The created reader. + + + + + Creates an . + + The parser used to create the reader. + The created reader. + + + + Creates an . + + The text writer to use for the csv writer. + The configuration to use for the writer. + The created writer. + + + + Creates an . + + The text writer to use for the csv writer. + The culture information. + + The created writer. + + + + + Access point for fluent interface to dynamically build a + + Type you will be making a class map for + Options to further configure the + + + + Caches fields. + Based on C#'s . + + + + + Represents a user supplied field validation failure. + + + + + Gets the field that failed validation. + + + + + Initializes a new instance of the class. + + The reading context. + The field that failed validation. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The field that failed validation. + The message that describes the error. + + + + 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 reading context. + The field that failed validation. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents a header validation failure. + + + + + Gets the invalid headers. + + + + + Initializes a new instance of the class. + + The reading context. + The invalid headers. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The invalid headers. + The message that describes the error. + + + + 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 reading context. + The invalid headers. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Defines methods used to create + CsvHelper classes. + + + + + Creates an . + + The text reader to use for the csv parser. + The configuration to use for the csv parser. + The created parser. + + + + Creates an . + + The text reader to use for the csv parser. + The culture information. + + The created parser. + + + + + Creates an . + + The text reader to use for the csv reader. + The configuration to use for the reader. + The created reader. + + + + Creates an . + + The text reader to use for the csv reader. + The culture information. + + The created reader. + + + + + Creates an . + + The parser used to create the reader. + The created reader. + + + + Creates an . + + The text writer to use for the csv writer. + The configuration to use for the writer. + The created writer. + + + + Creates an . + + The text writer to use for the csv writer. + The culture information. + + The created writer. + + + + + Provides a fluent interface for dynamically creating s + + Type of class to map + Next available options + + + + Invalid header information. + + + + + Header names mapped to a CSV field that couldn't be found. + + + + + Header name index maped to a CSV field that couldn't be found. + + + + + Defines the functionality of a class that creates objects + from a given type. + + + + + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + + A value indicating if the resolver is able to resolve + the given type. True if the type can be resolved, + otherwise false. + + + + + The function that creates an object from a given type. + + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Defines methods used the parse a CSV file. + + + + + Gets the count of how many bytes have been read. + needs + to be enabled for this value to be populated. + + + + + Gets the count of how many characters have been read. + + + + + Gets the number of fields for the current row. + + + + + Gets the field at the specified index for the current row. + + The index. + The field. + + + + Gets the record for the current row. Note: + It is much more efficient to only get the fields you need. If + you need all fields, then use this. + + + + + Gets the raw record for the current row. + + + + + Gets the CSV row the parser is currently on. + + + + + Gets the raw row the parser is currently on. + + + + + The delimiter the parser is using. + + + + + Gets the reading context. + + + + + Gets the configuration. + + + + + Reads a record from the CSV file. + + True if there are more records to read, otherwise false. + + + + Reads a record from the CSV file asynchronously. + + True if there are more records to read, otherwise false. + + + + Defines methods used to read parsed data + from a CSV file. + + + + + Reads the header record without reading the first row. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + The cancellation token to stop the writing. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + The cancellation token to stop the writing. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + The cancellation token to stop the writing. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + /// The cancellation token to stop the writing. + An of records. + + + + Defines methods used to read parsed data + from a CSV file row. + + + + + Gets the column count of the current row. + This should match . + + + + + Gets the field index the reader is currently on. + + + + + Gets the header record. + + + + + Gets the parser. + + + + + Gets the reading context. + + + + + Gets or sets the configuration. + + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name and the index + instance of that field. The index is used when there are + multiple columns with the same header name. + + The named index of the field. + The zero based index of the instance of the field. + The raw field. + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the record converted into T. + + The of the record. + The record converted to T. + + + + Get the record converted into T. + + The of the record. + The anonymous type definition to use for the record. + The record converted to T. + + + + Gets the record. + + The of the record. + The record. + + + + Defines methods used to write to a CSV file. + + + + + Flushes the internal buffer to the then + flushes the . + + + + + Flushes the internal buffer to the then + flushes the . + + + + + Ends writing of the current record and starts a new record. + This flushes the buffer to the but + does not flush the . + + + + + Ends writing of the current record and starts a new record. + This flushes the buffer to the but + does not flush the . + + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Writes the list of records to the CSV file. + + The records to write. + The cancellation token to stop the writing. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + The cancellation token to stop the writing. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + The cancellation token to stop the writing. + + + + Defines methods used to write a CSV row. + + + + + The header record. + + + + + The current row. + + + + + The current field index. + + + + + Gets the writing context. + + + + + Gets or sets the configuration. + + + + + Writes a field that has already been converted to a + from an . + If the field is null, it won't get written. A type converter + will always return a string, even if field is null. If the + converter returns a null, it means that the converter has already + written data, and the returned value should not be written. + + The converted field to write. + The type of the field before it was converted into a string. + + + + Writes the field to the CSV file. The field + may get quotes added to it. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + + + + Writes the field to the CSV file. This will + ignore any need to quote and ignore + + and just quote based on the shouldQuote + parameter. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + True to quote the field, otherwise false. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + The converter used to convert the field into a string. + + + + Writes the field to the CSV file + using the given . + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The type of the converter. + The field to write. + + + + Writes a comment. + + The comment to write. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the record to the CSV file. + + The type of the record. + The record to write. + + + + Represents an error due to a field that is too large. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + 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 reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents an error caused because a field is missing + in the header while reading a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + 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 reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Efficiently creates instances of object types. + + + + + Creates an instance of type T using the given arguments. + + The type to create an instance of. + The constrcutor arguments. + + + + Creates an instance of the given type using the given arguments. + + The type to create an instance of. + The constructor arguments. + + + + Creates objects from a given type. + + + + + Gets or sets the current resolver. + Use an instance of this instead if at all possible. + + + + + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + + A function that returns a value indicating if the resolver + is able to resolve the given type. True if the type can be + resolved, otherwise false. + + + + + The function that creates an object from a given type. + + + + + Creates an instance of the object resolver using default values. + + + + + Creates an instance of the object resolver using the given can create function + and create function. + + A function that returns a value indicating if the resolver + is able to resolve the given type. True if the type can be + resolved, otherwise false. + The function that creates an object from a given type. + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Represents errors that occur while parsing a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + 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 reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents errors that occur while reading a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + 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 reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Type information for a record. + + + + + The type of the record. + + + + + A value indicating if the type was an object and GetType() was used over typeof. + true if the type is an object, otherwise false. + + + + + The hash code for the type. + + + + + Initializes a new instance using the given and . + + The type of the record. + A value indicating if the type was an object and GetType() was used over typeof. + true if the type is an object, otherwise false. + + + + Extensions to help with reflection. + + + + + Gets the type from the member. + + The member to get the type from. + The type. + + + + Gets a member expression for the member. + + The member to get the expression for. + The member expression. + The member expression. + + + + Gets a value indicating if the given type is anonymous. + True for anonymous, otherwise false. + + The type. + + + + Gets a value indicating if the given type has a parameterless constructor. + True if it has a parameterless constructor, otherwise false. + + The type. + + + + Gets a value indicating if the given type has any constructors. + + The type. + + + + Gets the constructor that contains the most parameters. + + The type. + + + + Gets a value indicating if the type is a user defined struct. + True if it is a user defined struct, otherwise false. + + The type. + + + + Gets a string representation of the constructor. + + The constructor. + + + + Gets a string representation of the parameter. + + The parameter. + + + + Common reflection tasks. + + + + + Gets the from the type where the property was declared. + + The type the property belongs to. + The property to search. + Flags for how the property is retrieved. + + + + Gets the from the type where the field was declared. + + The type the field belongs to. + The field to search. + Flags for how the field is retrieved. + + + + Walk up the inheritance tree collecting properties. This will get a unique set of properties in the + case where parents have the same property names as children. + + The to get properties for. + The flags for getting the properties. + If true, parent class properties that are hidden by `new` child properties will be overwritten. + + + + Walk up the inheritance tree collecting fields. This will get a unique set of fields in the + case where parents have the same field names as children. + + The to get fields for. + The flags for getting the fields. + If true, parent class fields that are hidden by `new` child fields will be overwritten. + + + + Gets the property from the expression. + + The type of the model. + The type of the property. + The expression. + The for the expression. + + + + Gets the member inheritance chain as a stack. + + The type of the model. + The type of the property. + The member expression. + The inheritance chain for the given member expression as a stack. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + + + + + + + Converts a to and from a . + + + + + Creates a new ByteArrayConverter using the given . + + The options. + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Options for converting byte arrays. + + + + + No options. + + + + + Hexadecimal encoding. + + + + + Base64 encoding. + + + + + Use dashes in between hex values. + + + + + Prefix hex number with 0x. + + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + + + + + + + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + + + + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Creates a new for the given . + + The type of the Enum. + + + + + + + + + + + + + + + + + + + Throws an exception when used. This is here so that it's apparent + that there is no support for type conversion. A custom + converter will need to be created to have a field convert to and + from an IEnumerable. + + + + + Throws an exception. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + + + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts objects to and from strings. + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Produces for the specified + + + + + Determines if the factory can create a type converter for the given type. + + The to be checked + true if the factory can create the type, otherwise false. + + + + Creates a type converter for the given type and assigns it to the given out typeConverter parameter. + + The type to create the converter for. + The type converter cache. + The parameter to set the converter to. + true if the converter should be added to the cache, otherwise false. + + + + Throws an exception when used. This is here so that it's apparent + that there is no support for type conversion. A custom + converter will need to be created to have a field convert to and + from . + + + + + Throws an exception. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts a to and from a . + + + + + Gets the type of the nullable. + + + The type of the nullable. + + + + + Gets the underlying type of the nullable. + + + The underlying type. + + + + + Gets the type converter for the underlying type. + + + The type converter. + + + + + Creates a new for the given . + + The nullable type. + The type converter factory. + type is not a nullable type. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts the object to a string. + + The object to convert to a string. + + + The string representation of the object. + + + + + + + + + + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts values to and from strings. + + + + + Converts the string to a (T) value. + + The string to convert to an object. + The for the current record. + The for the member being created. + The value created from the string. + + + + Converts the value to a string. + + The value to convert to a string. + The for the current record. + The for the member being written. + The string representation of the value. + + + + Caches s for a given type. + + + + + Initializes the class. + + + + + Determines if there is a converter registered for the given type. + + The type to check. + true if the converter is registered, otherwise false. + + + + Adds the . + Factories are queried in order of being added and first factory that handles the type is used for creating the . + + Type converter factory + + + + Adds the for the given . + + The type the converter converts. + The type converter that converts the type. + + + + Adds the for the given . + + The type the converter converts. + The type converter that converts the type. + + + + Adds the for the given . + + The type the converter converts. + The type converter that converts the type. + + + + Adds the given to all registered types. + + The type converter. + + + + Removes the for the given . + + The type to remove the converter for. + + + + Removes the for the given . + + The type to remove the converter for. + + + + Removes the ITypeConverterFactory. + + The ITypeConverterFactory to remove. + + + + Gets the converter for the given . + + The type to get the converter for. + The for the given . + + + + Gets the converter for the given member. If an attribute is + found on the member, that will be used, otherwise the cache + will be used. + + The member to get the converter for. + + + + Gets the converter for the given . + + The type to get the converter for. + The for the given . + + + + Represents errors that occur while reading a CSV file. + + + + + The text used in ConvertFromString. + + + + + The value used in ConvertToString. + + + + + The type converter. + + + + + The member map data used in ConvertFromString and ConvertToString. + + + + + Initializes a new instance of the class. + + The type converter. + The member map data. + The text. + The reading context. + + + + Initializes a new instance of the class. + + The type converter. + The member map data. + The value. + The writing context. + + + + Initializes a new instance of the class + with a specified error message. + + The type converter. + The member map data. + The text. + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message. + + The type converter. + The member map data. + The value. + The writing context. + The message that describes the error. + + + + 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 type converter. + The member map data. + The text. + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The type converter. + The member map data. + The value. + The writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Options used when doing type conversion. + + + + + Gets or sets the culture info. + + + + + Gets or sets the date time style. + + + + + Gets or sets the time span style. + + + + + Gets or sets the number style. + + + + + Gets or sets the string format. + + + + + Gets or sets the . + + + + + Ingore case when parsing enums. Default is false. + + + + + Gets the list of values that can be + used to represent a boolean of true. + + + + + Gets the list of values that can be + used to represent a boolean of false. + + + + + Gets the list of values that can be used to represent a null value. + + + + + Merges TypeConverterOptions by applying the values of sources in order on to each other. + The first object is the source object. + + The sources that will be applied. + The updated source object. + + + + Caches for a given type. + + + + + Adds the for the given . + + The type the options are for. + The options. + + + + Adds the for the given . + + The type the options are for. + The options. + + + + Adds the given to all registered types. + + + + + + Removes the for the given type. + + The type to remove the options for. + + + + Removes the for the given type. + + The type to remove the options for. + + + + Get the for the given . + + The type the options are for. + The options for the given type. + + + + Get the for the given . + + The type the options are for. + The options for the given type. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the to a . + + The string to convert to an object. + The for the current record. + The for the member being created. + + The created from the string. + + + + + Represents a user supplied validation failure. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + 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 reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents errors that occur while writing a CSV file. + + + + + Initializes a new instance of the class. + + The writing context. + + + + Initializes a new instance of the class + with a specified error message. + + The writing context. + The message that describes the error. + + + + 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 writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/F23.StringSimilarity.dll b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/F23.StringSimilarity.dll new file mode 100644 index 00000000000..1bba71fa744 Binary files /dev/null and b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/F23.StringSimilarity.dll differ diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/F23.StringSimilarity.xml b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/F23.StringSimilarity.xml new file mode 100644 index 00000000000..741098b8131 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/F23.StringSimilarity.xml @@ -0,0 +1,669 @@ + + + + F23.StringSimilarity + + + + + Implements Cosine Similarity between strings. The strings are first + transformed in vectors of occurrences of k-shingles(sequences of k + characters). In this n-dimensional space, the similarity between the two + strings is the cosine of their respective vectors. + + + + + + Implements Cosine Similarity between strings. The strings are first + transformed in vectors of occurrences of k-shingles(sequences of k + characters). In this n-dimensional space, the similarity between the two + strings is the cosine of their respective vectors. + + Default k is 3. + + + + + Compute the cosine similarity between strings. + + The first string to compare. + The second string to compare. + The cosine similarity in the range [0, 1] + If s1 or s2 is null. + + + + Compute the norm L2 : sqrt(Sum_i( v_i²)). + + + + + + + Returns 1.0 - similarity. + + The first string to compare. + The second string to compare. + 1.0 - the cosine similarity in the range [0, 1] + If s1 or s2 is null. + + + + + + + + + + + + Implementation of Damerau-Levenshtein distance with transposition (also + sometimes calls unrestricted Damerau-Levenshtein distance). + It is the minimum number of operations needed to transform one string into + the other, where an operation is defined as an insertion, deletion, or + substitution of a single character, or a transposition of two adjacent + characters. + It does respect triangle inequality, and is thus a metric distance. + This is not to be confused with the optimal string alignment distance, which + is an extension where no substring can be edited more than once. + + + + + Compute the distance between strings: the minimum number of operations + needed to transform one string into the other(insertion, deletion, + substitution of a single character, or a transposition of two adjacent + characters). + + The first string to compare. + The second string to compare. + The computed distance. + If s1 or s2 is null. + + + + Sift4 - a general purpose string distance algorithm inspired by JaroWinkler + and Longest Common Subsequence. + Original JavaScript algorithm by siderite, java port by Nathan Fischer 2016. + https://siderite.dev/blog/super-fast-and-accurate-string-distance.html + https://blackdoor.github.io/blog/sift4-java/ + + + + + Gets or sets the maximum distance to search for character transposition. + Compuse cost of algorithm is O(n . MaxOffset) + + + + + Used to store relation between same character in different positions + c1 and c2 in the input strings. + + + .NET port notes: should this be a struct instead? + + + + + Sift4 - a general purpose string distance algorithm inspired by JaroWinkler + and Longest Common Subsequence. + Original JavaScript algorithm by siderite, java port by Nathan Fischer 2016. + https://siderite.dev/blog/super-fast-and-accurate-string-distance.html + https://blackdoor.github.io/blog/sift4-java/ + + + + + + + + As an adjunct to , this interface + allows you to specify the cost of deletion or insertion of a + character. + + + + + Computes the deletion cost. + + The character being deleted. + The cost to be allocated to deleting the given character, + in the range [0, 1]. + + + + Computes the insertion cost. + + The character being inserted. + The cost to be allocated to inserting the given character, + in the range [0, 1]. + + + Used to indicate the cost of character substitution. + + Cost should always be in [0.0 .. 1.0] + For example, in an OCR application, cost('o', 'a') could be 0.4 + In a checkspelling application, cost('u', 'i') could be 0.4 because these are + next to each other on the keyboard... + + + + Indicate the cost of substitution c1 and c2. + + The first character of the substitution. + The second character of the substitution. + The cost in the range [0, 1]. + + + + Span distances that implement this interface are metrics, which means: + - d(x, y) ≥ 0 (non-negativity, or separation axiom) + - d(x, y) = 0 if and only if x = y (identity, or coincidence axiom) + - d(x, y) = d(y, x) (symmetry) + - d(x, z) ≤ d(x, y) + d(y, z) (triangle inequality). + + + + + Compute and return the metric distance. + + The first span. + The second span. + The metric distance. + + + + String distances that implement this interface are metrics, which means: + - d(x, y) ≥ 0 (non-negativity, or separation axiom) + - d(x, y) = 0 if and only if x = y (identity, or coincidence axiom) + - d(x, y) = d(y, x) (symmetry) + - d(x, z) ≤ d(x, y) + d(y, z) (triangle inequality). + + + + + Compute and return the metric distance. + + + + + + + + Compute and return a measure of distance. + Must be >= 0. + + This method operates on spans such as byte arrays. + Note that, when used on bytes, string encodings that + use more than one byte per codepoint (such as UTF-8) + are not supported and will most likely return + incorrect results. + + The first span. + The second span. + The measure of distance between the spans. + + + + Compute and return a measure of similarity between 2 spans. + + The first span + The second span + Similarity (0 means both spans are completely different) + + + + Compute and return a measure of distance. + Must be >= 0. + + + + + + + + Compute and return a measure of similarity between 2 strings. + + The first string + The second string + Similarity (0 means both strings are completely different) + + + + Each input string is converted into a set of n-grams, the Jaccard index is + then computed as |V1 inter V2| / |V1 union V2|. + Like Q-Gram distance, the input strings are first converted into sets of + n-grams (sequences of n characters, also called k-shingles), but this time + the cardinality of each n-gram is not taken into account. + Distance is computed as 1 - cosine similarity. + Jaccard index is a metric distance. + + + + + The strings are first transformed into sets of k-shingles (sequences of k + characters), then Jaccard index is computed as |A inter B| / |A union B|. + The default value of k is 3. + + + + + + The strings are first transformed into sets of k-shingles (sequences of k + characters), then Jaccard index is computed as |A inter B| / |A union B|. + The default value of k is 3. + + + + + Compute jaccard index: |A inter B| / |A union B|. + + The first string to compare. + The second string to compare. + The Jaccard index in the range [0, 1] + If s1 or s2 is null. + + + + Distance is computed as 1 - similarity. + + The first string to compare. + The second string to compare. + 1 - the Jaccard similarity. + If s1 or s2 is null. + + + The Jaro–Winkler distance metric is designed and best suited for short + strings such as person names, and to detect typos; it is (roughly) a + variation of Damerau-Levenshtein, where the substitution of 2 close + characters is considered less important then the substitution of 2 characters + that a far from each other. + Jaro-Winkler was developed in the area of record linkage (duplicate + detection) (Winkler, 1990). It returns a value in the interval [0.0, 1.0]. + The distance is computed as 1 - Jaro-Winkler similarity. + + + + The current value of the threshold used for adding the Winkler bonus. The default value is 0.7. + + + + + Creates a new instance with default threshold (0.7) + + + + + Creates a new instance with given threshold to determine when Winkler bonus should + be used. Set threshold to a negative value to get the Jaro distance. + + + + + + Compute Jaro-Winkler similarity. + + The first string to compare. + The second string to compare. + The Jaro-Winkler similarity in the range [0, 1] + If s1 or s2 is null. + + + + Return 1 - similarity. + + The first string to compare. + The second string to compare. + 1 - similarity + If s1 or s2 is null. + + + The Levenshtein distance between two words is the Minimum number of + single-character edits (insertions, deletions or substitutions) required to + change one string into the other. + + + + Equivalent to Distance(s1, s2, Int32.MaxValue). + + The first string to compare. + The second string to compare. + The Levenshtein distance between strings + + + + The Levenshtein distance, or edit distance, between two words is the + Minimum number of single-character edits (insertions, deletions or + substitutions) required to change one word into the other. + + http://en.wikipedia.org/wiki/Levenshtein_distance + + It is always at least the difference of the sizes of the two strings. + It is at most the length of the longer string. + It is zero if and only if the strings are equal. + If the strings are the same size, the HamMing distance is an upper bound + on the Levenshtein distance. + The Levenshtein distance verifies the triangle inequality (the distance + between two strings is no greater than the sum Levenshtein distances from + a third string). + + Implementation uses dynamic programMing (Wagner–Fischer algorithm), with + only 2 rows of data. The space requirement is thus O(m) and the algorithm + runs in O(mn). + + The first string to compare. + The second string to compare. + The maximum result to compute before stopping. This + means that the calculation can terminate early if you + only care about strings with a certain similarity. + Set this to Int32.MaxValue if you want to run the + calculation to completion in every case. + The Levenshtein distance between strings + If s1 or s2 is null. + + + The longest common subsequence (LCS) problem consists in finding the longest + subsequence common to two (or more) sequences. It differs from problems of + finding common substrings: unlike substrings, subsequences are not required + to occupy consecutive positions within the original sequences. + + It is used by the diff utility, by Git for reconciling multiple changes, etc. + + The LCS distance between Strings X (length n) and Y (length m) is n + m - 2 + |LCS(X, Y)| min = 0 max = n + m + + LCS distance is equivalent to Levenshtein distance, when only insertion and + deletion is allowed (no substitution), or when the cost of the substitution + is the double of the cost of an insertion or deletion. + + ! This class currently implements the dynamic programming approach, which has + a space requirement O(m * n)! + + + + Return the LCS distance between strings s1 and s2, computed as |s1| + + |s2| - 2 * |LCS(s1, s2)|. + + The first string to compare. + The second string to compare. + + The LCS distance between strings s1 and s2, computed as |s1| + + |s2| - 2 * |LCS(s1, s2)| + + If s1 or s2 is null. + + + + Return the length of Longest Common Subsequence (LCS) between strings s1 + and s2. + + The first string to compare. + The second string to compare. + The length of LCS(s2, s2) + If s1 or s2 is null. + + + + Distance metric based on Longest Common Subsequence, from the notes "An + LCS-based string metric" by Daniel Bakkelund. + + + + + Distance metric based on Longest Common Subsequence, computed as + 1 - |LCS(s1, s2)| / max(|s1|, |s2|). + + The first string to compare. + The second string to compare. + LCS distance metric + If s1 or s2 is null. + + + + N-Gram Similarity as defined by Kondrak, "N-Gram Similarity and Distance", + String Processing and Information Retrieval, Lecture Notes in Computer + Science Volume 3772, 2005, pp 115-126. + + The algorithm uses affixing with special character '\n' to increase the + weight of first characters. The normalization is achieved by dividing the + total similarity score the original length of the longest word. + + total similarity score the original length of the longest word. + + + + + Compute n-gram distance. + + The first string to compare. + The second string to compare. + The computed n-gram distance in the range [0, 1] + If s0 or s1 is null. + + + This distance is computed as levenshtein distance divided by the length of + the longest string. The resulting value is always in the interval [0.0 1.0] + but it is not a metric anymore! The similarity is computed as 1 - normalized + distance. + + + + Compute distance as Levenshtein(s1, s2) / max(|s1|, |s2|). + + The first string to compare. + The second string to compare. + The computed distance in the range [0, 1] + If s1 or s2 is null. + + + + Return 1 - distance. + + The first string to compare. + The second string to compare. + 1 - distance + If s1 or s2 is null. + + + + Compute the distance between strings: the minimum number of operations + needed to transform one string into the other (insertion, deletion, + substitution of a single character, or a transposition of two adjacent + characters) while no substring is edited more than once. + + The first string to compare. + The second string to compare. + the OSA distance + If s1 or s2 is null. + + + Q-gram distance, as defined by Ukkonen in "Approximate string-matching with + q-grams and maximal matches". The distance between two strings is defined as + the L1 norm of the difference of their profiles (the number of occurences of + each n-gram): SUM( |V1_i - V2_i| ). Q-gram distance is a lower bound on + Levenshtein distance, but can be computed in O(m + n), where Levenshtein + requires O(m.n). + + + + Q-gram similarity and distance. Defined by Ukkonen in "Approximate + string-matching with q-grams and maximal matches", + http://www.sciencedirect.com/science/article/pii/0304397592901434 The + distance between two strings is defined as the L1 norm of the difference + of their profiles (the number of occurences of each k-shingle). Q-gram + distance is a lower bound on Levenshtein distance, but can be computed in + O(|A| + |B|), where Levenshtein requires O(|A|.|B|) + + + + + + Q-gram similarity and distance. Defined by Ukkonen in "Approximate + string-matching with q-grams and maximal matches", + http://www.sciencedirect.com/science/article/pii/0304397592901434 The + distance between two strings is defined as the L1 norm of the difference + of their profiles (the number of occurence of each k-shingle). Q-gram + distance is a lower bound on Levenshtein distance, but can be computed in + O(|A| + |B|), where Levenshtein requires O(|A|.|B|) + Default k is 3. + + + + + The distance between two strings is defined as the L1 norm of the + difference of their profiles (the number of occurence of each k-shingle). + + The first string to compare. + The second string to compare. + The computed Q-gram distance. + If s1 or s2 is null. + + + + Compute QGram distance using precomputed profiles. + + + + + + + + Ratcliff/Obershelp pattern recognition + + The Ratcliff/Obershelp algorithm computes the similarity of two strings a + the doubled number of matching characters divided by the total number of + characters in the two strings.Matching characters are those in the longest + common subsequence plus, recursively, matching characters in the unmatched + region on either side of the longest common subsequence. + The Ratcliff/Obershelp distance is computed as 1 - Ratcliff/Obershelp + similarity. + + Author: Ligi https://github.com/dxpux (as a patch for fuzzystring) + Ported to java from .net by denmase + Ported back to .NET by paulirwin to retain compatibility with upstream Java project + + + + + Compute the Ratcliff-Obershelp similarity between strings. + + The first string to compare. + The second string to compare. + The RatcliffObershelp similarity in the range [0, 1] + If s1 or s2 is null. + + + + Return 1 - similarity. + + The first string to compare. + The second string to compare. + 1 - similarity + If s1 or s2 is null. + + + + Return k, the length of k-shingles (aka n-grams). + + + + + Pattern for finding multiple following spaces + + + + + + + If k is less than or equal to 0. + + + Similar to Jaccard index, but this time the similarity is computed as 2 * |V1 + inter V2| / (|V1| + |V2|). Distance is computed as 1 - cosine similarity. + + + + Sorensen-Dice coefficient, aka Sørensen index, Dice's coefficient or + Czekanowski's binary (non-quantitative) index. + + The strings are first converted to boolean sets of k-shingles (sequences + of k characters), then the similarity is computed as 2 * |A inter B| / + (|A| + |B|). Attention: Sorensen-Dice distance (and similarity) does not + satisfy triangle inequality. + + + + + + Sorensen-Dice coefficient, aka Sørensen index, Dice's coefficient or + Czekanowski's binary (non-quantitative) index. + + The strings are first converted to boolean sets of k-shingles (sequences + of k characters), then the similarity is computed as 2 * |A inter B| / + (|A| + |B|). Attention: Sorensen-Dice distance (and similarity) does not + satisfy triangle inequality. + Default k is 3. + + + + + Similarity is computed as 2 * |A inter B| / (|A| + |B|). + + The first string to compare. + The second string to compare. + The computed Sorensen-Dice similarity. + If s1 or s2 is null. + + + + Returns 1 - similarity. + + The first string to compare. + The second string to compare. + 1.0 - the computed similarity + If s1 or s2 is null. + + + Implementation of Levenshtein that allows to define different weights for + different character substitutions. + + + + Instantiate with provided character substitution. + + The strategy to determine character substitution weights. + + + + Instantiate with provided character substitution, insertion, and + deletion weights. + + The strategy to determine character substitution weights. + The strategy to determine character insertion/deletion weights. + + + + Equivalent to Distance(s1, s2, Double.MaxValue). + + The first string to compare. + The second string to compare. + The computed weighted Levenshtein distance. + + + + Compute Levenshtein distance using provided weights for substitution. + + The first string to compare. + The second string to compare. + The maximum result to compute before stopping. This + means that the calculation can terminate early if you + only care about strings with a certain similarity. + Set this to Double.MaxValue if you want to run the + calculation to completion in every case. + The computed weighted Levenshtein distance. + If s1 or s2 is null. + + + diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/System.Numerics.Vectors.dll b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/System.Numerics.Vectors.dll new file mode 100644 index 00000000000..10205772c39 Binary files /dev/null and b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/System.Numerics.Vectors.dll differ diff --git a/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/System.Numerics.Vectors.xml b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/System.Numerics.Vectors.xml new file mode 100644 index 00000000000..da34d390c52 --- /dev/null +++ b/pwiz_tools/Skyline/Executables/DevTools/TutorialLocalization/lib/System.Numerics.Vectors.xml @@ -0,0 +1,2621 @@ + + + System.Numerics.Vectors + + + + Represents a 3x2 matrix. + + + Creates a 3x2 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a rotation matrix using the given rotation in radians. + The amount of rotation, in radians. + The rotation matrix. + + + Creates a rotation matrix using the specified rotation in radians and a center point. + The amount of rotation, in radians. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified X and Y components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center. + The uniform scale to use. + The center offset. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The center point. + The scaling matrix. + + + Creates a scaling matrix that scales uniformly with the given scale. + The uniform scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a scaling matrix from the specified vector scale with an offset from the specified center point. + The scale to use. + The center offset. + The scaling matrix. + + + Creates a skew matrix from the specified angles in radians. + The X angle, in radians. + The Y angle, in radians. + The skew matrix. + + + Creates a skew matrix from the specified angles in radians and a center point. + The X angle, in radians. + The Y angle, in radians. + The center point. + The skew matrix. + + + Creates a translation matrix from the specified 2-dimensional vector. + The translation position. + The translation matrix. + + + Creates a translation matrix from the specified X and Y components. + The X position. + The Y position. + The translation matrix. + + + Returns a value that indicates whether this instance and another 3x2 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant for this matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + The multiplicative identify matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Represents a 4x4 matrix. + + + Creates a object from a specified object. + A 3x2 matrix. + + + Creates a 4x4 matrix from the specified components. + The value to assign to the first element in the first row. + The value to assign to the second element in the first row. + The value to assign to the third element in the first row. + The value to assign to the fourth element in the first row. + The value to assign to the first element in the second row. + The value to assign to the second element in the second row. + The value to assign to the third element in the second row. + The value to assign to the third element in the second row. + The value to assign to the first element in the third row. + The value to assign to the second element in the third row. + The value to assign to the third element in the third row. + The value to assign to the fourth element in the third row. + The value to assign to the first element in the fourth row. + The value to assign to the second element in the fourth row. + The value to assign to the third element in the fourth row. + The value to assign to the fourth element in the fourth row. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values of value1 and value2. + + + Creates a spherical billboard that rotates around a specified object position. + The position of the object that the billboard will rotate around. + The position of the camera. + The up vector of the camera. + The forward vector of the camera. + The created billboard. + + + Creates a cylindrical billboard that rotates around a specified axis. + The position of the object that the billboard will rotate around. + The position of the camera. + The axis to rotate the billboard around. + The forward vector of the camera. + The forward vector of the object. + The billboard matrix. + + + Creates a matrix that rotates around an arbitrary vector. + The axis to rotate around. + The angle to rotate around axis, in radians. + The rotation matrix. + + + Creates a rotation matrix from the specified Quaternion rotation value. + The source Quaternion. + The rotation matrix. + + + Creates a rotation matrix from the specified yaw, pitch, and roll. + The angle of rotation, in radians, around the Y axis. + The angle of rotation, in radians, around the X axis. + The angle of rotation, in radians, around the Z axis. + The rotation matrix. + + + Creates a view matrix. + The position of the camera. + The target towards which the camera is pointing. + The direction that is &quot;up&quot; from the camera&#39;s point of view. + The view matrix. + + + Creates an orthographic perspective matrix from the given view volume dimensions. + The width of the view volume. + The height of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a customized orthographic projection matrix. + The minimum X-value of the view volume. + The maximum X-value of the view volume. + The minimum Y-value of the view volume. + The maximum Y-value of the view volume. + The minimum Z-value of the view volume. + The maximum Z-value of the view volume. + The orthographic projection matrix. + + + Creates a perspective projection matrix from the given view volume dimensions. + The width of the view volume at the near view plane. + The height of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. + The field of view in the y direction, in radians. + The aspect ratio, defined as view space width divided by height. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + fieldOfView is less than or equal to zero. + -or- + fieldOfView is greater than or equal to . + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a customized perspective projection matrix. + The minimum x-value of the view volume at the near view plane. + The maximum x-value of the view volume at the near view plane. + The minimum y-value of the view volume at the near view plane. + The maximum y-value of the view volume at the near view plane. + The distance to the near view plane. + The distance to the far view plane. + The perspective projection matrix. + nearPlaneDistance is less than or equal to zero. + -or- + farPlaneDistance is less than or equal to zero. + -or- + nearPlaneDistance is greater than or equal to farPlaneDistance. + + + Creates a matrix that reflects the coordinate system about a specified plane. + The plane about which to create a reflection. + A new matrix expressing the reflection. + + + Creates a matrix for rotating points around the X axis. + The amount, in radians, by which to rotate around the X axis. + The rotation matrix. + + + Creates a matrix for rotating points around the X axis from a center point. + The amount, in radians, by which to rotate around the X axis. + The center point. + The rotation matrix. + + + The amount, in radians, by which to rotate around the Y axis from a center point. + The amount, in radians, by which to rotate around the Y-axis. + The center point. + The rotation matrix. + + + Creates a matrix for rotating points around the Y axis. + The amount, in radians, by which to rotate around the Y-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis. + The amount, in radians, by which to rotate around the Z-axis. + The rotation matrix. + + + Creates a matrix for rotating points around the Z axis from a center point. + The amount, in radians, by which to rotate around the Z-axis. + The center point. + The rotation matrix. + + + Creates a scaling matrix from the specified vector scale. + The scale to use. + The scaling matrix. + + + Creates a uniform scaling matrix that scale equally on each axis. + The uniform scaling factor. + The scaling matrix. + + + Creates a scaling matrix with a center point. + The vector that contains the amount to scale on each axis. + The center point. + The scaling matrix. + + + Creates a uniform scaling matrix that scales equally on each axis with a center point. + The uniform scaling factor. + The center point. + The scaling matrix. + + + Creates a scaling matrix from the specified X, Y, and Z components. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The scaling matrix. + + + Creates a scaling matrix that is offset by a given center point. + The value to scale by on the X axis. + The value to scale by on the Y axis. + The value to scale by on the Z axis. + The center point. + The scaling matrix. + + + Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. + The direction from which the light that will cast the shadow is coming. + The plane onto which the new matrix should flatten geometry so as to cast a shadow. + A new matrix that can be used to flatten geometry onto the specified plane from the specified direction. + + + Creates a translation matrix from the specified 3-dimensional vector. + The amount to translate in each axis. + The translation matrix. + + + Creates a translation matrix from the specified X, Y, and Z components. + The amount to translate on the X axis. + The amount to translate on the Y axis. + The amount to translate on the Z axis. + The translation matrix. + + + Creates a world matrix with the specified parameters. + The position of the object. + The forward direction of the object. + The upward direction of the object. Its value is usually [0, 1, 0]. + The world matrix. + + + Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. + The source matrix. + When this method returns, contains the scaling component of the transformation matrix if the operation succeeded. + When this method returns, contains the rotation component of the transformation matrix if the operation succeeded. + When the method returns, contains the translation component of the transformation matrix if the operation succeeded. + true if matrix was decomposed successfully; otherwise, false. + + + Returns a value that indicates whether this instance and another 4x4 matrix are equal. + The other matrix. + true if the two matrices are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Calculates the determinant of the current 4x4 matrix. + The determinant. + + + Returns the hash code for this instance. + The hash code. + + + Gets the multiplicative identity matrix. + Gets the multiplicative identity matrix. + + + Inverts the specified matrix. The return value indicates whether the operation succeeded. + The matrix to invert. + When this method returns, contains the inverted matrix if the operation succeeded. + true if matrix was converted successfully; otherwise, false. + + + Indicates whether the current matrix is the identity matrix. + true if the current matrix is the identity matrix; otherwise, false. + + + Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. + The first matrix. + The second matrix. + The relative weighting of matrix2. + The interpolated matrix. + + + The first element of the first row. + + + + The second element of the first row. + + + + The third element of the first row. + + + + The fourth element of the first row. + + + + The first element of the second row. + + + + The second element of the second row. + + + + The third element of the second row. + + + + The fourth element of the second row. + + + + The first element of the third row. + + + + The second element of the third row. + + + + The third element of the third row. + + + + The fourth element of the third row. + + + + The first element of the fourth row. + + + + The second element of the fourth row. + + + + The third element of the fourth row. + + + + The fourth element of the fourth row. + + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Adds each element in one matrix with its corresponding element in a second matrix. + The first matrix. + The second matrix. + The matrix that contains the summed values. + + + Returns a value that indicates whether the specified matrices are equal. + The first matrix to compare. + The second matrix to care + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether the specified matrices are not equal. + The first matrix to compare. + The second matrix to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. + The matrix to scale. + The scaling value to use. + The scaled matrix. + + + Returns the matrix that results from multiplying two matrices together. + The first matrix. + The second matrix. + The product matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Negates the specified matrix by multiplying all its values by -1. + The matrix to negate. + The negated matrix. + + + Subtracts each element in a second matrix from its corresponding element in a first matrix. + The first matrix. + The second matrix. + The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this matrix. + The string representation of this matrix. + + + Transforms the specified matrix by applying the specified Quaternion rotation. + The matrix to transform. + The rotation t apply. + The transformed matrix. + + + Gets or sets the translation component of this matrix. + The translation component of the current instance. + + + Transposes the rows and columns of a matrix. + The matrix to transpose. + The transposed matrix. + + + Represents a three-dimensional plane. + + + Creates a object from a specified four-dimensional vector. + A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin. + + + Creates a object from a specified normal and the distance along the normal from the origin. + The plane&#39;s normal vector. + The plane&#39;s distance from the origin along its normal vector. + + + Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal. + The X component of the normal. + The Y component of the normal. + The Z component of the normal. + The distance of the plane along its normal from the origin. + + + Creates a object that contains three specified points. + The first point defining the plane. + The second point defining the plane. + The third point defining the plane. + The plane containing the three points. + + + The distance of the plane along its normal from the origin. + + + + Calculates the dot product of a plane and a 4-dimensional vector. + The plane. + The four-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane. + The plane. + The 3-dimensional vector. + The dot product. + + + Returns the dot product of a specified three-dimensional vector and the vector of this plane. + The plane. + The three-dimensional vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another plane object are equal. + The other plane. + true if the two planes are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + The normal vector of the plane. + + + + Creates a new object whose normal vector is the source plane&#39;s normal vector normalized. + The source plane. + The normalized plane. + + + Returns a value that indicates whether two planes are equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are equal; otherwise, false. + + + Returns a value that indicates whether two planes are not equal. + The first plane to compare. + The second plane to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the string representation of this plane object. + A string that represents this object. + + + Transforms a normalized plane by a 4x4 matrix. + The normalized plane to transform. + The transformation matrix to apply to plane. + The transformed plane. + + + Transforms a normalized plane by a Quaternion rotation. + The normalized plane to transform. + The Quaternion rotation to apply to the plane. + A new plane that results from applying the Quaternion rotation. + + + Represents a vector that is used to encode three-dimensional physical rotations. + + + Creates a quaternion from the specified vector and rotation parts. + The vector part of the quaternion. + The rotation part of the quaternion. + + + Constructs a quaternion from the specified components. + The value to assign to the X component of the quaternion. + The value to assign to the Y component of the quaternion. + The value to assign to the Z component of the quaternion. + The value to assign to the W component of the quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Concatenates two quaternions. + The first quaternion rotation in the series. + The second quaternion rotation in the series. + A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation. + + + Returns the conjugate of a specified quaternion. + The quaternion. + A new quaternion that is the conjugate of value. + + + Creates a quaternion from a vector and an angle to rotate about the vector. + The vector to rotate around. + The angle, in radians, to rotate around the vector. + The newly created quaternion. + + + Creates a quaternion from the specified rotation matrix. + The rotation matrix. + The newly created quaternion. + + + Creates a new quaternion from the given yaw, pitch, and roll. + The yaw angle, in radians, around the Y axis. + The pitch angle, in radians, around the X axis. + The roll angle, in radians, around the Z axis. + The resulting quaternion. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Calculates the dot product of two quaternions. + The first quaternion. + The second quaternion. + The dot product. + + + Returns a value that indicates whether this instance and another quaternion are equal. + The other quaternion. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Gets a quaternion that represents no rotation. + A quaternion whose values are (0, 0, 0, 1). + + + Returns the inverse of a quaternion. + The quaternion. + The inverted quaternion. + + + Gets a value that indicates whether the current instance is the identity quaternion. + true if the current instance is the identity quaternion; otherwise, false. + + + Calculates the length of the quaternion. + The computed length of the quaternion. + + + Calculates the squared length of the quaternion. + The length squared of the quaternion. + + + Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion. + The first quaternion. + The second quaternion. + The relative weight of quaternion2 in the interpolation. + The interpolated quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Divides each component of a specified by its length. + The quaternion to normalize. + The normalized quaternion. + + + Adds each element in one quaternion with its corresponding element in a second quaternion. + The first quaternion. + The second quaternion. + The quaternion that contains the summed values of value1 and value2. + + + Divides one quaternion by a second quaternion. + The dividend. + The divisor. + The quaternion that results from dividing value1 by value2. + + + Returns a value that indicates whether two quaternions are equal. + The first quaternion to compare. + The second quaternion to compare. + true if the two quaternions are equal; otherwise, false. + + + Returns a value that indicates whether two quaternions are not equal. + The first quaternion to compare. + The second quaternion to compare. + true if value1 and value2 are not equal; otherwise, false. + + + Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor. + The source quaternion. + The scalar value. + The scaled quaternion. + + + Returns the quaternion that results from multiplying two quaternions together. + The first quaternion. + The second quaternion. + The product quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Reverses the sign of each component of the quaternion. + The quaternion to negate. + The negated quaternion. + + + Interpolates between two quaternions, using spherical linear interpolation. + The first quaternion. + The second quaternion. + The relative weight of the second quaternion in the interpolation. + The interpolated quaternion. + + + Subtracts each element in a second quaternion from its corresponding element in a first quaternion. + The first quaternion. + The second quaternion. + The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1. + + + Returns a string that represents this quaternion. + The string representation of this quaternion. + + + The rotation component of the quaternion. + + + + The X value of the vector component of the quaternion. + + + + The Y value of the vector component of the quaternion. + + + + The Z value of the vector component of the quaternion. + + + + Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms. + The vector type. T can be any primitive numeric type. + + + Creates a vector whose components are of a specified type. + The numeric type that defines the type of the components in the vector. + + + Creates a vector from a specified array. + A numeric array. + values is null. + + + Creates a vector from a specified array starting at a specified index position. + A numeric array. + The starting index position from which to create the vector. + values is null. + index is less than zero. + -or- + The length of values minus index is less than . + + + Copies the vector instance to a specified destination array. + The array to receive a copy of the vector values. + destination is null. + The number of elements in the current vector is greater than the number of elements available in the destination array. + + + Copies the vector instance to a specified destination array starting at a specified index position. + The array to receive a copy of the vector values. + The starting index in destination at which to begin the copy operation. + destination is null. + The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array. + index is less than zero or greater than the last index in destination. + + + Returns the number of elements stored in the vector. + The number of elements stored in the vector. + Access to the property getter via reflection is not supported. + + + Returns a value that indicates whether this instance is equal to a specified vector. + The vector to compare with this instance. + true if the current instance and other are equal; otherwise, false. + + + Returns a value that indicates whether this instance is equal to a specified object. + The object to compare with this instance. + true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance. + + + Returns the hash code for this instance. + The hash code. + + + Gets the element at a specified index. + The index of the element to return. + The element at index index. + index is less than zero. + -or- + index is greater than or equal to . + + + Returns a vector containing all ones. + A vector containing all ones. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Returns a new vector by performing a bitwise And operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise And of left and right. + + + Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise Or of the elements in left and right. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Returns a value that indicates whether each pair of elements in two specified vectors are equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors. + The first vector. + The second vector. + The vector that results from the bitwise XOr of the elements in left and right. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Reinterprets the bits of the specified vector into a vector of type . + The vector to reinterpret. + The reinterpreted vector. + + + Returns a value that indicates whether any single pair of elements in the specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if any element pairs in left and right are equal. false if no element pairs are equal. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar value. + The source vector. + A scalar value. + The scaled vector. + + + Multiplies a vector by the given scalar. + The scalar value. + The source vector. + The scaled vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The one&#39;s complement vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates a given vector. + The vector to negate. + The negated vector. + + + Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Returns the string representation of this vector using default formatting. + The string representation of this vector. + + + Returns the string representation of this vector using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns a vector containing all zeroes. + A vector containing all zeroes. + + + Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. + + + Returns a new vector whose elements are the absolute values of the given vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The absolute value vector. + + + Returns a new vector whose values are the sum of each pair of elements from two given vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The summed vector. + + + Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a double-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of signed bytes. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a single-precision floating-point vector. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Reinterprets the bits of a specified vector into those of a vector of unsigned long integers. + The source vector. + The vector type. T can be any primitive numeric type. + The reinterpreted vector. + + + Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The new vector with elements selected based on the mask. + + + Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector. + The integral mask vector used to drive selection. + The first source vector. + The second source vector. + The vector type. T can be any primitive numeric type. + The new vector with elements selected based on the mask. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose values are the result of dividing the first vector&#39;s elements by the corresponding elements in the second vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The divided vector. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The dot product. + + + Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether each pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left and right are equal; otherwise, false. + + + Returns a value that indicates whether any single pair of elements in the given vectors is equal. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element pair in left and right is equal; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is greater than or equal to the corresponding element in right; otherwise, false. + + + Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support. + true if vector operations are subject to hardware acceleration; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than the corresponding element in right; otherwise, false. + + + Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector. + The first vector to compare. + The second vector to compare. + The resulting long integer vector. + + + Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector. + The first vector to compare. + The second vector to compare. + The resulting integral vector. + + + Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false. + + + Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + true if any element in left is less than or equal to the corresponding element in right; otherwise, false. + + + Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The maximum vector. + + + Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors. + The first vector to compare. + The second vector to compare. + The vector type. T can be any primitive numeric type. + The minimum vector. + + + Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector. + The scalar value. + The vector. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + Returns a new vector whose values are the product of each pair of elements in two specified vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The product vector. + + + Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value. + The vector. + The scalar value. + The vector type. T can be any primitive numeric type. + The scaled vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector whose elements are the negation of the corresponding element in the specified vector. + The source vector. + The vector type. T can be any primitive numeric type. + The negated vector. + + + Returns a new vector whose elements are obtained by taking the one&#39;s complement of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Returns a new vector whose elements are the square roots of a specified vector&#39;s elements. + The source vector. + The vector type. T can be any primitive numeric type. + The square root vector. + + + Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The difference vector. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors. + The first vector. + The second vector. + The vector type. T can be any primitive numeric type. + The resulting vector. + + + Represents a vector with two single-precision floating-point values. + + + Creates a new object whose two elements have the same value. + The value to assign to both elements. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of the vector. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 2 elements are equal to one. + A vector whose two elements are equal to one (that is, it returns the vector (1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 3x2 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 3x2 matrix. + The source vector. + The matrix. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0). + The vector (1,0). + + + Gets the vector (0,1). + The vector (0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + Returns a vector whose 2 elements are equal to zero. + A vector whose two elements are equal to zero (that is, it returns the vector (0,0). + + + Represents a vector with three single-precision floating-point values. + + + Creates a new object whose three elements have the same value. + The value to assign to all three elements. + + + Creates a new object from the specified object and the specified value. + The vector with two elements. + The additional value to assign to the field. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the cross product of two vectors. + The first vector. + The second vector. + The cross product. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 3 elements are equal to one. + A vector whose three elements are equal to one (that is, it returns the vector (1,1,1). + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns the reflection of a vector off a surface that has the specified normal. + The source vector. + The normal of the surface being reflected off. + The reflected vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a vector normal by the given 4x4 matrix. + The source vector. + The matrix. + The transformed vector. + + + Gets the vector (1,0,0). + The vector (1,0,0). + + + Gets the vector (0,1,0). + The vector (0,1,0).. + + + Gets the vector (0,0,1). + The vector (0,0,1). + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 3 elements are equal to zero. + A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0). + + + Represents a vector with four single-precision floating-point values. + + + Creates a new object whose four elements have the same value. + The value to assign to all four elements. + + + Constructs a new object from the specified object and a W component. + The vector to use for the X, Y, and Z components. + The W component. + + + Creates a new object from the specified object and a Z and a W component. + The vector to use for the X and Y components. + The Z component. + The W component. + + + Creates a vector whose elements have the specified values. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + The value to assign to the field. + + + Returns a vector whose elements are the absolute values of each of the specified vector&#39;s elements. + A vector. + The absolute value vector. + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Restricts a vector between a minimum and a maximum value. + The vector to restrict. + The minimum value. + The maximum value. + The restricted vector. + + + Copies the elements of the vector to a specified array. + The destination array. + array is null. + The number of elements in the current instance is greater than in the array. + array is multidimensional. + + + Copies the elements of the vector to a specified array starting at a specified index position. + The destination array. + The index at which to copy the first element of the vector. + array is null. + The number of elements in the current instance is greater than in the array. + index is less than zero. + -or- + index is greater than or equal to the array length. + array is multidimensional. + + + Computes the Euclidean distance between the two given points. + The first point. + The second point. + The distance. + + + Returns the Euclidean distance squared between two specified points. + The first point. + The second point. + The distance squared. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector resulting from the division. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The vector that results from the division. + + + Returns the dot product of two vectors. + The first vector. + The second vector. + The dot product. + + + Returns a value that indicates whether this instance and another vector are equal. + The other vector. + true if the two vectors are equal; otherwise, false. + + + Returns a value that indicates whether this instance and a specified object are equal. + The object to compare with the current instance. + true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false. + + + Returns the hash code for this instance. + The hash code. + + + Returns the length of this vector object. + The vector&#39;s length. + + + Returns the length of the vector squared. + The vector&#39;s length squared. + + + Performs a linear interpolation between two vectors based on the given weighting. + The first vector. + The second vector. + A value between 0 and 1 that indicates the weight of value2. + The interpolated vector. + + + Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The maximized vector. + + + Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors. + The first vector. + The second vector. + The minimized vector. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiplies a vector by a specified scalar. + The vector to multiply. + The scalar value. + The scaled vector. + + + Multiplies a scalar value by a specified vector. + The scaled value. + The vector. + The scaled vector. + + + Negates a specified vector. + The vector to negate. + The negated vector. + + + Returns a vector with the same direction as the specified vector, but with a length of one. + The vector to normalize. + The normalized vector. + + + Gets a vector whose 4 elements are equal to one. + Returns . + + + Adds two vectors together. + The first vector to add. + The second vector to add. + The summed vector. + + + Divides the first vector by the second. + The first vector. + The second vector. + The vector that results from dividing left by right. + + + Divides the specified vector by a specified scalar value. + The vector. + The scalar value. + The result of the division. + + + Returns a value that indicates whether each pair of elements in two specified vectors is equal. + The first vector to compare. + The second vector to compare. + true if left and right are equal; otherwise, false. + + + Returns a value that indicates whether two specified vectors are not equal. + The first vector to compare. + The second vector to compare. + true if left and right are not equal; otherwise, false. + + + Multiplies two vectors together. + The first vector. + The second vector. + The product vector. + + + Multiples the specified vector by the specified scalar value. + The vector. + The scalar value. + The scaled vector. + + + Multiples the scalar value by the specified vector. + The vector. + The scalar value. + The scaled vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The vector that results from subtracting right from left. + + + Negates the specified vector. + The vector to negate. + The negated vector. + + + Returns a vector whose elements are the square root of each of a specified vector&#39;s elements. + A vector. + The square root vector. + + + Subtracts the second vector from the first. + The first vector. + The second vector. + The difference vector. + + + Returns the string representation of the current instance using default formatting. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements. + A or that defines the format of individual elements. + The string representation of the current instance. + + + Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting. + A or that defines the format of individual elements. + A format provider that supplies culture-specific formatting information. + The string representation of the current instance. + + + Transforms a four-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a four-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a three-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a two-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Transforms a two-dimensional vector by the specified Quaternion rotation value. + The vector to rotate. + The rotation to apply. + The transformed vector. + + + Transforms a three-dimensional vector by a specified 4x4 matrix. + The vector to transform. + The transformation matrix. + The transformed vector. + + + Gets the vector (0,0,0,1). + The vector (0,0,0,1). + + + Gets the vector (1,0,0,0). + The vector (1,0,0,0). + + + Gets the vector (0,1,0,0). + The vector (0,1,0,0).. + + + Gets a vector whose 4 elements are equal to zero. + The vector (0,0,1,0). + + + The W component of the vector. + + + + The X component of the vector. + + + + The Y component of the vector. + + + + The Z component of the vector. + + + + Gets a vector whose 4 elements are equal to zero. + A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0). + + + \ No newline at end of file diff --git a/pwiz_tools/Skyline/Test/LocalizedHtmlTutorialsTest.cs b/pwiz_tools/Skyline/Test/LocalizedHtmlTutorialsTest.cs index 1a6b8a375cc..16ae45ed741 100644 --- a/pwiz_tools/Skyline/Test/LocalizedHtmlTutorialsTest.cs +++ b/pwiz_tools/Skyline/Test/LocalizedHtmlTutorialsTest.cs @@ -146,6 +146,7 @@ public static IEnumerable LocalizableXPaths yield return "/html/body/ul/li"; yield return "/html/body/ol/li"; yield return "/html/body/table/tr/td"; + yield return "/html/body/div/table/tr/td"; } }