我试图深入了解.NET 4.5/.NET 4.5 for Metro-style apps/WinRT之间的关系。
我的结论是,.NET Metro的参考程序集(位于Program Files(x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5)在Reference Assembly System.Runtime中定义了System.String类型。然而,“常规”的.NET 4.5的参考程序集将System.String类型定义在mscorlib中,而System.Runtime参考程序集为空。
起初,我认为这可能是因为基于Metro的应用程序可能会使用与本地WinRT层通信所必需的不同字符串实现。但是,我在控制台应用程序和Metro Style 应用程序中尝试了以下代码:
System.String k = "abc"; var m = k.GetType().AssemblyQualifiedName.
猜猜看:在两种情况下,字符串的主机程序集都是相同的mscorlib。
那么为什么Microsoft没有像以前一样在mscorlib中定义所有这些基本类型呢?
谢谢, TH