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对原始问题的评论. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |