using System; using System.Collections.Generic; using System.Linq; using System.Reflection; public class MyClass { public T MainModel { get; set; } public Type GetTheType() { return typeof(T).GetInterfaces().Where(i => i.IsGenericType) .Single(i => i.GetGenericTypeDefinition() == typeof(IEnumerable<>)) .GetGenericArguments().First(); } } public class Test { public static void Main() { var mainInstance = new MyClass>(); Console.Out.WriteLine(mainInstance.GetTheType().FullName); } }