加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – System.Reflection.RuntimeReflectionExtensions中的方法

发布时间:2020-12-15 06:24:36 所属栏目:百科 来源:网络整理
导读:自.NET 4.5(2012)以来,从 System.Reflection.RuntimeReflectionExtensions class开始出现了一些新的扩展方法.但是,新的方法似乎没有给我们任何新的东西.一个例子: static void Main(){ var prop1 = typeof(string).GetProperty("Length"); var prop2 = type
自.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对原始问题的评论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读