tag:github.com,2008:https://github.com/aoancea/runtime-mapper/releases Release notes from runtime-mapper 2017-07-26T20:06:23Z tag:github.com,2008:Repository/94851561/0.0.3-alpha 2017-07-27T09:24:52Z 0.0.3-alpha <h1>0.0.3-alpha (2017-07-26)</h1> <h3>Bug Fixes</h3> <ul> <li><strong>mapper-string</strong>: decouple string mapping from value types mapping as we don't want to get into mapping a string to an int which might crash</li> </ul> <h3>Features</h3> <ul> <li><strong>mapper-value-type</strong>: mapping primitive types between <em>value</em> and <em>nullable value</em> types</li> </ul> <p>You can now do something like this:</p> <div class="highlight highlight-source-cs notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[TestMethod] public void DeepCopyTo_Int_To_NullableInt_DestinationCopied() { int source = 5; int? destination = source.DeepCopyTo&lt;int?&gt;(); Assert.AreEqual(5, destination); }"><pre><span class="pl-kos">[</span><span class="pl-c1">TestMethod</span><span class="pl-kos">]</span> <span class="pl-k">public</span> <span class="pl-smi">void</span> <span class="pl-en">DeepCopyTo_Int_To_NullableInt_DestinationCopied</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">int</span> <span class="pl-s1">source</span> <span class="pl-c1">=</span> <span class="pl-c1">5</span><span class="pl-kos">;</span> <span class="pl-smi">int</span><span class="pl-c1">?</span> <span class="pl-s1">destination</span> <span class="pl-c1">=</span> <span class="pl-s1">source</span><span class="pl-kos">.</span><span class="pl-smi">DeepCopyTo</span><span class="pl-c1">&lt;</span><span class="pl-smi">int</span><span class="pl-c1">?</span><span class="pl-c1">&gt;</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">Assert</span><span class="pl-kos">.</span><span class="pl-en">AreEqual</span><span class="pl-kos">(</span><span class="pl-c1">5</span><span class="pl-kos">,</span> <span class="pl-s1">destination</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span></pre></div> <div class="highlight highlight-source-cs notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[TestMethod] public void DeepCopyTo_NullableInt_To_Int_DestinationCopied() { int? source = 5; int destination = source.DeepCopyTo&lt;int&gt;(); Assert.AreEqual(5, destination); }"><pre><span class="pl-kos">[</span><span class="pl-c1">TestMethod</span><span class="pl-kos">]</span> <span class="pl-k">public</span> <span class="pl-smi">void</span> <span class="pl-en">DeepCopyTo_NullableInt_To_Int_DestinationCopied</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">int</span><span class="pl-c1">?</span> <span class="pl-s1">source</span> <span class="pl-c1">=</span> <span class="pl-c1">5</span><span class="pl-kos">;</span> <span class="pl-smi">int</span> <span class="pl-s1">destination</span> <span class="pl-c1">=</span> <span class="pl-s1">source</span><span class="pl-kos">.</span><span class="pl-smi">DeepCopyTo</span><span class="pl-c1">&lt;</span><span class="pl-smi">int</span><span class="pl-c1">&gt;</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">Assert</span><span class="pl-kos">.</span><span class="pl-en">AreEqual</span><span class="pl-kos">(</span><span class="pl-c1">5</span><span class="pl-kos">,</span> <span class="pl-s1">destination</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span></pre></div> <h3>Code Refactorings</h3> <ul> <li><strong>mapper</strong>: few renamings, delete comments, indent IfTheElse expression blocks for visibility</li> <li><strong>mapper-value-type</strong>: move value type tests such as <em>Int</em>, <em>Guid</em>, <em>Enum</em> inside their own test files for better visibility and grouping</li> </ul> <h3>Performance Improvements</h3> <ul> <li><strong>mapper-collection</strong>: remove the fetching of the <em>destinationUnderlyingType</em> while mapping arrays or lists as it was already fetched</li> </ul> <h3>Test Coverage</h3> <ul> <li><strong>mapper-value-type</strong>: add <em>object -&gt; value</em>, <em>object -&gt; nullable value</em>, <em>value -&gt; object</em>, <em>nullable value -&gt; object</em> tests</li> </ul> aoancea tag:github.com,2008:Repository/94851561/0.0.2-alpha 2017-07-25T12:38:14Z 0.0.2-alpha <ul> <li>Change Target Framework Version to v4.5(net45) for better compatibility with older versionsof .NET(there is no need to migrate towards net461 in order to use Runtime.Mapper)</li> </ul> aoancea