title: Can I declare a variable of Type<T> without specifying T at compile time?
body: <p>How do I Load the class "MyContent" dynamically ?
  I have 1 <code>interface&lt;T&gt;</code>, 1 abstract generic <code>class&lt;T&gt;</code> and 1 class. Check my code out:</p>
  
  <pre><code>public interface IMyObjectInterface{
  }
  public abstract MyAbstractObject : IMyObjectInterface{
  }
  public class MyObject : MyAbstractObject{
  }
  
  public interface IMyContentInterface&lt;T&gt;  where T : MyAbstractObject
  {
    void MyMethod();
  }
  public abstract MyAbstractContent&lt;T&gt;, IMyContentInterface&lt;T&gt;  where T : MyAbstractObject
  {
    public abstract void MyMethod();
  }
  public public class MyContent : MyAbstractContent&lt;MyObject&gt;
  {
    public override void MyMethod() { //do something }
  }
  </code></pre>
  
  <p>I am trying but obviously it's not working:</p>
  
  <pre><code>IMyObjectInterface obj = (IMyObjectInterface)Assembly.Load("MyAssembly").CreateInstance("MyObject");
  IMyContentInterface&lt;obj&gt; content = (IMyContentInterface&lt;obj&gt;)Assembly.Load("MyAssembly").CreateInstance("MyContent");
  content.MyMethod();
  //assembly and type names are correct
  </code></pre>
  
  <p>If I change <code>IMyContentInterface&lt;obj&gt;</code> to <code>IMyContentInterface&lt;MyObject&gt;</code>, works :</p>
  
  <pre><code>IMyContentInterface&lt;MyObject&gt; content = (IMyContentInterface&lt;MyObject&gt;)Assembly.Load("MyAssembly").CreateInstance("MyContent");
  content.MyMethod();
  //assembly and type names are correct
  </code></pre>
  
  <p>The problem is that i don't what is going to be my object in the 2nd line, when defining <code>IMyContentInterface&lt;T&gt;</code>. Please, does somebody know how to do it in .NET Framework 4.0?</p>