Начиная с .NET 4.5 (2012), появляются некоторые новые методы расширения из System.Reflection.RuntimeReflectionExtensions
class. Однако новые методы, похоже, не дают нам ничего нового. Пример:
static void Main()
{
var prop1 = typeof(string).GetProperty("Length");
var prop2 = typeof(string).GetRuntimeProperty("Length"); // extension, needs: using System.Reflection;
Console.WriteLine(prop1 == prop2);
Action a = Main;
var meth1 = a.Method;
var meth2 = a.GetMethodInfo(); // extension, needs: using System.Reflection;
Console.WriteLine(meth1 == meth2);
}
Это дважды записывает True
.
(Здесь оператор ==
перегружен, но даже проверка ссылочного равенства с (object)prop1 == (object)prop2
и (object)meth1 == (object)meth2
дает True
).
Итак, какова цель этих новых общедоступных методов? Ясно, что я должен что-то игнорировать или недопонимать.