diff options
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs/migration/v23/index.html')
-rw-r--r-- | ThirdParty/CsvHelper-master/docs/migration/v23/index.html | 295 |
1 files changed, 295 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs/migration/v23/index.html b/ThirdParty/CsvHelper-master/docs/migration/v23/index.html new file mode 100644 index 0000000..e5be91c --- /dev/null +++ b/ThirdParty/CsvHelper-master/docs/migration/v23/index.html @@ -0,0 +1,295 @@ +<!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>V23 | 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"> + <div class="content"> + <h1 id="migrating-from-version-22-to-23">Migrating from version 22 to 23</h1> +<h2 id="csvconfiguration">CsvConfiguration</h2> +<p>All the constructor parameters were removed in favor of using +property setters. Apply this change to any of the options.</p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture, delimiter = ";"); + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + Delimiter = ";", +}; +</code></pre> +<h2 id="delegates">Delegates</h2> +<p>All delegates now take in a single struct argument.</p> +<p><strong>BadDataFound</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + BadDataFound = (field, context) => + { + Console.WriteLine($"field: {field}"); + Console.WriteLine($"context: {context}"); + }, +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + BadDataFound = args => + { + Console.WriteLine($"field: {args.Field}"); + Console.WriteLine($"context: {args.Context}"); + }, +}; +</code></pre> +<p><strong>ConvertFromString</strong></p> +<pre><code class="language-cs">// v22 +Map(m => m.Property).Convert(row => row.GetField(0)); + +// v23 +Map(m => m.Property).Convert(args => args.Row.GetField(0)); +</code></pre> +<p><strong>ConvertToString</strong></p> +<pre><code class="language-cs">// v22 +Map(m => m.Property).Convert(value => value.ToString()); + +// v23 +Map(m => m.Property).Convert(args => args.Value.ToString()); +</code></pre> +<p><strong>GetConstructor</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetConstructor = classType => classType.GetConstructors().First(), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetConstructor = args => args.ClassType.GetConstructors().First(), +}; +</code></pre> +<p><strong>GetDynamicPropertyName</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetDynamicPropertyName = (fieldIndex, context) => $"Field{fieldIndex}"; +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + GetDynamicPropertyName = args => $"Field{args.FieldIndex}", +}; +</code></pre> +<p><strong>HeaderValidated</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + HeaderValidated = (invalidHeaders, context) => Console.WriteLine($"Invalid headers count: {invalidHeaders.Count}"), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + HeaderValidated = args => Console.WriteLine($"Invalid headers count: {args.InvalidHeaders.Count}"), +}; +</code></pre> +<p><strong>MissingFieldFound</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + MissingFieldFound = (headerNames, index, context) => Console.WriteLine($"Missing field: {headerNames[0]}"), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + MissingFieldFound = args => Console.WriteLine($"Missing field: {args.HeaderNames[0]}"), +}; +</code></pre> +<p><strong>PrepareHeaderForMatch</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + PrepareHeaderForMatch = (header, fieldIndex) => header.ToLower(), +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + PrepareHeaderForMatch = args => args.Header.ToLower(), +}; +</code></pre> +<p><strong>ReadingExceptionOccurred</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReadingExceptionOccurred = exception => + { + Console.WriteLine(exception.Message); + throw args.Exception; + }, +}; +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReadingExceptionOccurred = args => + { + Console.WriteLine(args.Exception.Message); + throw args.Exception; + }, +}; +</code></pre> +<p><strong>ReferenceHeaderPrefix</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReferenceHeaderPrefix = (memberType, memberName) => $"{memberName}.", +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ReferenceHeaderPrefix = args => $"{args.MemberName}.", +}; +</code></pre> +<p><strong>ShouldQuote</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldQuote = (field, fieldType, row) => true, +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldQuote = args => true, +}; +</code></pre> +<p><strong>ShouldSkipRecord</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldSkipRecord = (records) => record.Length == 0, +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldSkipRecord = args => args.Record.Length == 0, +}; +</code></pre> +<p><strong>ShouldUseConstructorParameters</strong></p> +<pre><code class="language-cs">// v22 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldUseConstructorParameters = type => true; +}; + +// v23 +var config = new CsvConfiguration(CultureInfo.InvariantCulture) +{ + ShouldUseConstructorParameters = args => true; +}; +</code></pre> +<p><strong>Validate</strong></p> +<pre><code class="language-cs">// v22 +Map(m => m.Property).Validate(field => !string.IsNullOrEmpty(field)); + +// v23 +Map(m => m.Property).Validate(args => !string.IsNullOrEmpty(args.Field)); +</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> |