title: Problems with abstract types and interafaces as generic type params with the new() constraint
body: <p>I need to have the generic type parameter as an interface, however I would like to instantiate the type in the generic class (SomeGenericType) as follows:</p>
  
  <pre><code>class Program
  {
      static void Main(string[] args)
      {
          var val = new SomeGenericType&lt;ISomeInterface&gt;();
  
          Console.ReadKey();
      }
  }
  
  internal class SomeGenericType&lt;T&gt; where T : new()
  {
      public SomeGenericType()
      {
          var test = new T();  
      }
  }
  
  public class SomeClass : ISomeInterface
  {
      public string TestVal { get; set; }
  }
  
  public interface ISomeInterface
  {
      string TestVal { get; set; }
  }
  </code></pre>
  
  <p>This throws the following compile time error:</p>
  
  <p>"ISomeInterface must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'T' in the generic type or method SomeGenericType"</p>
  
  <p>I understand why it happens, however I was wondering if there is any way around this problem?</p>
  
  <p>Thanks.</p>