diff options
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps')
13 files changed, 6117 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/auto-mapping/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/auto-mapping/index.html new file mode 100644 index 0000000..e410ab5 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/auto-mapping/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Auto Mapping | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="auto-mapping">Auto Mapping</h1> +<p>If you don't supply a map to the configuration, one is automatically created for you on the fly. You can call auto mapping directly in your class map also. You may want to do this if you have a large number of properties that will be set up correctly by default, and only need to make a couple changes.</p> +<h6 id="data">Data</h6> +<pre><code>Id,The Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + AutoMap(CultureInfo.InvariantCulture); + Map(m => m.Name).Name("The Name"); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/constant-value/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/constant-value/index.html new file mode 100644 index 0000000..8c4b933 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/constant-value/index.html @@ -0,0 +1,464 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Constant Value | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="constant-value">Constant Value</h1> +<p>You can set a constant value to a property instead of mapping it to a field.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public bool IsDirty { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.IsDirty).Constant(true); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/ignoring-properties/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/ignoring-properties/index.html new file mode 100644 index 0000000..8a8b126 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/ignoring-properties/index.html @@ -0,0 +1,463 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Ignoring Properties | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="ignoring-properties">Ignoring Properties</h1> +<p>When you use auto mapping in your class map, every property will get mapped. If there are properties that you don't want mapped, you can ignore them.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public bool IsDirty { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + AutoMap(CultureInfo.InvariantCulture); + Map(m => m.IsDirty).Ignore(); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/index.html new file mode 100644 index 0000000..26c946e --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/index.html @@ -0,0 +1,489 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Class Maps | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="class-maps">Class Maps</h1> +<table> +<thead> +<tr> +<th>Topics</th> +<th>Â </th> +</tr> +</thead> +<tbody> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a></td> +<td>Mapping to properties.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a></td> +<td>Mapping properties by header name.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a></td> +<td>Mapping properties that may be one of many names.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a></td> +<td>Mapping properties that have duplicate header names.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a></td> +<td>Mapping properties by header index position.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a></td> +<td>Automatic mapping.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a></td> +<td>Ignoring mapped properites.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a></td> +<td>Setting a constant value for a property.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a></td> +<td>Using a specific type converter.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a></td> +<td>Convert a field to a type inline.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a></td> +<td>Map a property only if it exists.</td> +</tr> +<tr> +<td><a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a></td> +<td>Validate a field value.</td> +</tr> +</tbody> +</table> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/inline-type-conversion/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/inline-type-conversion/index.html new file mode 100644 index 0000000..0ec199e --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/inline-type-conversion/index.html @@ -0,0 +1,515 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Inline Type Conversion | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="inline-type-conversion">Inline Type Conversion</h1> +<p>If you don't want to write a full <code>ITypeConverter</code> implementation, you can specify a function that will do the same thing.</p> +<h2 id="reading">Reading</h2> +<h6 id="data">Data</h6> +<pre><code>Id,Name,Json +1,one,"{ ""Foo"": ""Bar"" }" +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public Json Json { get; set; } +} + +public class Json +{ + public string Foo { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Json).Convert(row => JsonConvert.DeserializeObject<Json>(row.GetField("Json"))); + } +} +</code></pre> +<h2 id="writing">Writing</h2> +<h6 id="example-1">Example</h6> +<pre><code class="language-cs">void Main() +{ + var records = new List<Foo> + { + new Foo { Id = 1, Name = "one" } + }; + + using (var writer = new StreamWriter("path\\to\\file.csv")) + using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.WriteRecords(records); + + writer.ToString().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public Json Json { get; set; } +} + +public class Json +{ + public string Foo { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Json).Convert(o => JsonConvert.SerializeObject(o)); + } +} +</code></pre> +<h6 id="output">Output</h6> +<pre><code>Id,Name,Json +1,one,"{""Id"":1,""Name"":""one"",""Json"":null}" +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-alternate-names/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-alternate-names/index.html new file mode 100644 index 0000000..62e3bd7 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-alternate-names/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping By Alternate Names | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-by-alternate-names">Mapping by Alternate Names</h1> +<p>If you have a header name that could vary, you can specify multiple header names.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Name("TheId", "Id"); + Map(m => m.Name).Name("TheName", "Name"); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-index/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-index/index.html new file mode 100644 index 0000000..9aa7759 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-index/index.html @@ -0,0 +1,465 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping By Index | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-by-index">Mapping by Index</h1> +<p>If your data doesn't have a header you can map by index instead of name. You can't rely on the order of class properties in .NET, so if you're not mapping by name, make sure you specify an index.</p> +<h6 id="data">Data</h6> +<pre><code>1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + var config = new CsvConfiguration(CultureInfo.InvariantCulture) + { + HasHeaderRecord = false, + }; + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, config)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Index(0); + Map(m => m.Name).Index(1); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-name/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-name/index.html new file mode 100644 index 0000000..cb15885 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-by-name/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping By Name | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-by-name">Mapping by Name</h1> +<p>If your property names don't match your class names, you can map the property to the column by name.</p> +<h6 id="data">Data</h6> +<pre><code>ColumnA,ColumnB +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id).Name("ColumnA"); + Map(m => m.Name).Name("ColumnB"); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-duplicate-names/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-duplicate-names/index.html new file mode 100644 index 0000000..d7dc521 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-duplicate-names/index.html @@ -0,0 +1,464 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping Duplicate Names | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-duplicate-names">Mapping Duplicate Names</h1> +<p>Sometimes you have duplicate header names. This is handled through a header name index. The name index is the index of how many occurrences of that header name there are, not the position of the header.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name,Name +1,first,last +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string FirstName { get set; } + public string LastName { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.FirstName).Name("Name").NameIndex(0); + Map(m => m.LastName).Name("Name").NameIndex(1); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-properties/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-properties/index.html new file mode 100644 index 0000000..05640ec --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/mapping-properties/index.html @@ -0,0 +1,462 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Mapping Properties | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="mapping-properties">Mapping Properties</h1> +<p>This will map the properties of a class to the header names of the CSV data. The mapping needs to be registered in the context. This example is identical to not using a class mapping at all. The headers match the property names.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + var records = csv.GetRecords<Foo>(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } +} + +public sealed class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/optional-maps/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/optional-maps/index.html new file mode 100644 index 0000000..d57dcad --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/optional-maps/index.html @@ -0,0 +1,464 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Optional Maps | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="optional-maps">Optional Maps</h1> +<p>If you have data that may or may not have a header, you can make the mapping optional.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,one +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public DateTimeOffset? Date { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Date).Optional(); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/type-conversion/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/type-conversion/index.html new file mode 100644 index 0000000..56bf740 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/type-conversion/index.html @@ -0,0 +1,482 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Type Conversion | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="type-conversion">Type Conversion</h1> +<p>If you need to convert to or from a non-standard .NET type, you can supply a type converter to use for a property.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name,Json +1,one,"{ ""Foo"": ""Bar"" }" +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public Json Json { get; set; } +} + +public class Json +{ + public string Foo { get; set; } +} + +public class JsonConverter<T> : DefaultTypeConverter +{ + public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) + { + return JsonConvert.DeserializeObject<T>(text); + } + + public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData) + { + return JsonConvert.SerializeObject(value); + } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name); + Map(m => m.Json).TypeConverter<JsonConverter<Json>>(); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> diff --git a/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/validation/index.html b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/validation/index.html new file mode 100644 index 0000000..b97f314 --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/examples/configuration/class-maps/validation/index.html @@ -0,0 +1,463 @@ +<!DOCTYPE html> +<html lang="en-us"> +<head> + <meta charSet="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" /> + <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" /> + <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" /> + <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" /> + <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" /> + <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" /> + <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" /> + <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" /> + <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" /> + <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" /> + <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" /> + <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" /> + <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" /> + <link rel="manifest" href="/CsvHelper/manifest.json" /> + <meta name="msapplication-TileColor" content="#ffffff" /> + <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" /> + <meta name="theme-color" content="#ffffff" /> + <title>Validation | CsvHelper</title> + + + + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" /> + + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" /> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" /> + <link rel="stylesheet" href="/CsvHelper/styles/index.css" /> + + <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script> + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> +</head> +<body> + <header id="header" class="header"> + <nav class="navbar is-light"> + <div class="navbar-brand"> + <a class="navbar-item" href="/CsvHelper"> + <img src="/CsvHelper/images/logo.svg" width="66" height="28" /> + </a> + <div id="navbar-burger" class="navbar-burger"> + <span></span> + <span></span> + <span></span> + </div> + </div> + <div id="navbar-menu" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a> + <a class="navbar-item" href="/CsvHelper/examples">Examples</a> + <a class="navbar-item" href="/CsvHelper/migration">Migration</a> + <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a> + </div> + <div class="navbar-end"> + <a class="navbar-item" href="https://twitter.com/JoshClose"> + <span class="icon"> + <i class="fab fa-twitter"></i> + </span> + </a> + <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper"> + <span class="icon"> + <i class="fab fa-github"></i> + </span> + </a> + </div> + </div> + </nav> +</header> + + + <main id="main" class="container is-fluid"> + <div class="columns is-variable is-1"> + <div class="column is-2"> + +<div id="sidebar" class="sidebar"> + <ul class=""> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/prerequisites">Prerequisites</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/prerequisites/streams">Streams</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/reading">Reading</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/writing">Writing</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration">Configuration</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/configuration/attributes">Attributes</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + <a class="expander"></a> + + <a href="/CsvHelper/examples/type-conversion">Type Conversion</a> + </span> + + <ul class="is-hidden"> + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a> + </span> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a> + </span> + +</li> + +</ul> + +</li> + + <li> + <span> + + <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a> + </span> + +</li> + + <li> + <span> + + <a href="#">Back to top</a> + </span> + +</li> + +</ul> + +</div> + + </div> + <div class="column"> + <div class="content"> + <h1 id="validation">Validation</h1> +<p>If you want to ensure your data conforms to some sort of standard, you can validate it.</p> +<h6 id="data">Data</h6> +<pre><code>Id,Name +1,on-e +</code></pre> +<h6 id="example">Example</h6> +<pre><code class="language-cs">void Main() +{ + using (var reader = new StreamReader("path\\to\\file.csv")) + using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) + { + csv.Context.RegisterClassMap<FooMap>(); + csv.GetRecords<Foo>().ToList().Dump(); + } +} + +public class Foo +{ + public int Id { get; set; } + public string Name { get; set; } + public DateTimeOffset? Date { get; set; } +} + +public class FooMap : ClassMap<Foo> +{ + public FooMap() + { + Map(m => m.Id); + Map(m => m.Name).Validate(field => !field.Contains("-")); + } +} +</code></pre> + + </div> + </div> + </div> + </main> + + <br /><br /> + + <footer id="footer" class="footer"> + <div class="has-text-centered">© 2009-2022 Josh Close</div> +</footer> + + + + <script> + hljs.configure({ + tabReplace: " " + }); + hljs.initHighlightingOnLoad(); + </script> + <script src="/CsvHelper/scripts/header.js"></script> + <script src="/CsvHelper/scripts/sidebar.js"></script> + +</body> +</html> |