title: Is it possible to know if a System.Object was actually specified as dynamic (C#)?
body: <p>I have a couple of scenarios that cover this, but I'll write specifically about the one that's easier to demonstrate</p>
  
  <p>I have a factory interface:</p>
  
  <pre><code>interface IFactory
  {
    Create&lt;T&gt;();
  }
  </code></pre>
  
  <p>And a piece of code that uses it thus:</p>
  
  <pre><code>public static void func(IFactory f)
  {
    var o = f.Create&lt;dynamic&gt;();
  }
  </code></pre>
  
  <p>Now, in an implementation of <code>Create&lt;T&gt;()</code> - is is there any way, via reflection over <code>T</code>, to determine if the caller is intending dynamic dispatch on their object as opposed to a straightforward <code>object</code>?  I have a class where being able to make that distinction would be quite useful...</p>
  
  <p>I've had a look to see if I can find attributes on the type or something like that, but no joy.</p>