c# – System.Reflection.RuntimeReflectionExtensions中的方法的目的是什么?

前端之家收集整理的这篇文章主要介绍了c# – System.Reflection.RuntimeReflectionExtensions中的方法的目的是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
自.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);
}

这写了两次.

(==操作符在这里重载,但是甚至检查引用与(object)prop1 ==(object)prop2和(object)meth1 ==(object)meth2给出True的相等性).

那么这些新的公开可见的方法的目的是什么?显然我必须忽视或误解某事.

解决方法

GetRuntime *方法用于WinRT项目.由于WinRT使用的类型可能与.NET使用的类型不同,但仍然具有相同的名称并具有相同的名称,因此这些反射方法可确保返回正确的MemberInfo.如果您正在运行WinRT,则不太可能在运行时需要.NET MemberInfo.

请参阅Hans Passant对原始问题的评论.

猜你在找的C#相关文章