title: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException when using a dynamic parameter
body: <p>In order to use any version of an API, I am choosing the DLL at runtime. In this DLL (ExternalDLL), there is  a class like this one:</p>
  
  <pre><code>public class NameClass
  {
      private string firstN;
      private string lastN;
  
      public NameClass(string firstN, string lastN)
      {
          this.firstN = firstN;
          this.lastN = lastN;
      }
  }
  
  public class MyClass
  {
      private List&lt;NameClass&gt; listN = new List&lt;NameClass&gt;();
      public int CurrentIndex;
  
      public void GetName(out NameClass nclass)
      {
          if (CurrentIndex &gt; -1 &amp;&amp; CurrentIndex &lt; listN.Count) nclass = listN[CurrentIndex];
          else nclass = null;
      }
  
  }
  </code></pre>
  
  <p>So, the exception is raised when I try to use the method GetName()</p>
  
  <pre><code>dynamic myClass = Activator.CreateInstance("ExternalDLL.MyClass");
  dynamic nameClass = Activator.CreateInstance("ExternalDLL.NameClass");
  myClass.GetName(out nameClass);
  </code></pre>
  
  <p>When the method is called I get the RuntimeBinderException with this information:</p>
  
  <p>Microsoft.CSharp.RuntimeBinder.RuntimeBinderException occurred
    HResult=0x80131500
    Message=A melhor correspondência de método sobrecarregado 'Tekla.Structures.Model.ModelObject.GetPhase(out Tekla.Structures.Model.Phase)' tem alguns argumentos inválidos</p>