title: Assign string held in an object variable to a string property of a dynamic (C#)
body: <p>I know its a bit of a mouthful and may not be totally understandable. So here is an example of what I am trying to do.</p>
  
  <pre><code>public class TypeWithString
  {
      public string MyString { get; set; }
  }
  
  string s = "We Want Moshiach Now";
  TypeWithString tws = new TypeWithString();
  object o = s;
  dynamic d = tws;
  d.MyString = o;
  </code></pre>
  
  <p>This code surprisingly generates an error <code>RuntimeBinderException: Cannot implicitly convert type 'object' to 'string'</code>.
  Even though <code>MyString</code> is of type <code>string</code> and what is being held in <code>o</code> is a <code>string</code>.</p>
  
  <p>is this a bug or a shortcoming in the DLR?</p>
  
  <p>Is there a way to get around it?</p>
  
  <p>If I do not know the type ahead of time. But I do know that it complies with duck typing. i.e. I know that it implements an unwritten interface. Is there anyway I can assign one variable to the other when they really are the correct type?</p>
  
  <p>Thank you so much</p>