微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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对原始问题的评论.

原文地址:https://www.jb51.cc/csharp/95694.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐