У нас очень простая программа, вызывающая статический метод Type.GetType
. Оба примера должны возвращать действительный экземпляр типа. На самом деле это только вторая. Похоже, что что-то странное происходит со сканированием стека, используемым GetType
, но что конкретно здесь проблема? Это ошибка или какая-то неясная особенность?
public class TestClass { }
class Program
{
static void Main(string[] args)
{
var fullName = typeof(TestClass).FullName;
Console.WriteLine("Full name: {0}", fullName);
new[] { fullName }.Select(Type.GetType).ToList().ForEach(t => Console.WriteLine("Method group: '{0}'", t));
new[] { fullName }.Select(t => Type.GetType(t)).ToList().ForEach(t => Console.WriteLine("Closure: '{0}'", t));
}
}
Продолжительность:
Full name: GetTypeBeingWeird.TestClass
Method group: ''
Closure: 'GetTypeBeingWeird.TestClass'