C# Windows应用商店应用程序中的GetTypeInfo性能

C# Windows应用商店应用程序中的GetTypeInfo性能,c#,.net,reflection,windows-store-apps,portable-class-library,C#,.net,Reflection,Windows Store Apps,Portable Class Library,当从.Net Framework 4.5移植到可移植类库配置文件或Windows应用商店应用程序时,大量使用反射的库和应用程序的一个重大变化正在过渡到,即从Type转移到TypeInfo 可能很容易做到这一点,并从中转换大量代码: someType.AccessReflectionAPI(); …对这样的事情: someType.GetTypeInfo().AccessReflectionAPI(); 这导致了大量的GetTypeInfo调用,这让我很担心。由于.Net Framework

当从.Net Framework 4.5移植到可移植类库配置文件或Windows应用商店应用程序时,大量使用反射的库和应用程序的一个重大变化正在过渡到,即从
Type
转移到
TypeInfo

可能很容易做到这一点,并从中转换大量代码:

someType.AccessReflectionAPI();
…对这样的事情:

someType.GetTypeInfo().AccessReflectionAPI();
这导致了大量的
GetTypeInfo
调用,这让我很担心。由于.Net Framework 4.5中的
TypeInfo
源于
Type
,因此
GetTypeInfo
实现非常简单(甚至可能是JIT内联的?),但Windows应用商店应用程序和.Net Core的实现又如何呢


在这些平台上调用GetTypeInfo的影响有多大?每次调用都会创建一个新对象吗?每次调用都意味着查字典吗?这里的开销是什么?

GetTypeInfo作为静态反射方法不会创建新对象,因此唯一的开销是速度。根据我的经验,大多数反射都是JIT内联的,并且基于C++/CLI的代码性能并不是问题


如果您感兴趣,如果您在reflector或其他程序集检查器中查看mscorlib,那么反射api的内部结构很容易解释。

不确定静态反射方法与创建或不创建新对象有什么关系-取决于它们的实现方式,不是吗?这就是我要问的。我已经看过mscorlib了,但它当然是.NET4.5版本。不是我感兴趣的-你在哪里找到Windows应用商店应用程序的实现?