<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NSubstitute on MemoryLeak</title><link>https://blog.memoryleak.ovh/tags/nsubstitute/</link><description>Recent content in NSubstitute on MemoryLeak</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Fri, 20 Apr 2018 12:40:03 +0000</lastBuildDate><atom:link href="https://blog.memoryleak.ovh/tags/nsubstitute/index.xml" rel="self" type="application/rss+xml"/><item><title>Blazor : Injectez vos interop Javascript</title><link>https://blog.memoryleak.ovh/posts/blazor-injectez-vos-interop-js/</link><pubDate>Fri, 20 Apr 2018 12:40:03 +0000</pubDate><guid>https://blog.memoryleak.ovh/posts/blazor-injectez-vos-interop-js/</guid><description>&lt;p&gt;Commençons par ce qui fait mal. Je dois avouer que ce blog post fait suite à un fail.&lt;/p&gt;
&lt;p&gt;Dans cette &lt;a href="https://blogs.msdn.microsoft.com/webdev/2018/04/17/blazor-0-2-0-release-now-available/" target="_blank"&gt;version 0.2&lt;/a&gt; de Blazor, il y a pas mal de code glue à produire pour pouvoir appeler une fonction javascript à partir de votre code C#.&lt;/p&gt;
&lt;p&gt;Cela se passe en 2 étapes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A partir de votre code javascript, il faut enregistrer une fonction dans le contexte de Blazor.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Blazor.registerFunction(&amp;#39;DisplayAlert&amp;#39;, (data) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; alert(data);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; return true;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Quand vous souhaitez faire appel à cette fonction on utilisera alors un code de ce type, cette fois ci dans votre code C#.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RegisteredFunction.Invoke(&amp;#34;DisplayAlert&amp;#34;, text);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On remarque que tout ca fonctionne à base de magic strings (le nom de la methode), que les functions sont obligées de retourner une valeur (void n&amp;rsquo;est pas prit en compte pour l&amp;rsquo;instant), et puis ce RegisteredFunction.Invoke c&amp;rsquo;est vraiment pas super sexy.&lt;/p&gt;</description></item></channel></rss>