1. Windows应用程序简介

Windows应用程序使用.NET Core,但是Web应用程序和ASP.NET Core有很大的区别。Windows应用程序只在Windows平台上运行,在Windows 10上运行。这些应用程序不仅适用于桌面,也适用于Xbox、HoloLens和Raspberry PI。...
摘要由CSDN通过智能技术生成

Windows应用程序使用.NET Core,但是Web应用程序和ASP.NET Core有很大的区别。Windows应用程序只在Windows平台上运行,在Windows 10上运行。这些应用程序不仅适用于桌面,也适用于Xbox、HoloLens和Raspberry PI。

1. Windows 运行库

Windows应用程序还利用了Windows运行库(Windows Rutime, WinRT)。Windows运行库是使用C++和新一代COM对象创建的平台。因此,Windows运行库不仅适用于.NET应用程序,也适用于C++和使用JavaScript创建的应用程序。为了从这些不同的平台上访问Windows运行库,还创建了一个兼容层:语言投影。通过语言投影,Windows运行库提供的API看起来像.NET API。

运行库看起来像.NET是由于语言投影。Windows运行库的元数据以与.NET相同的形式创建。可以使用相同的工具(例如isdasm)在Windows运行库中读取元数据信息。使用COM动态读取元数据已经有不短的历史了。那时,可以在类型中访问元数据。这种元数据技术不如.NET实现时的元数据强大。在.NET中,元数据尅使用自定义属性进行扩展,并且可以使用反射进行访问。Windows运行库现在使用与.NET相同的元数据格式。因此,可以使用isdasm命令行打开.winmd文件(Windows运行库的元数据文件),查看带有参数的API调用。Windows元数据文件可以在目录...\ProgramFiles(x86)\Windows kits\10\References\中找到。

语言投影将Windows运行库类型映射到.NET类型上。例如,在文件Windows.Foundation.FoundationContract.winmd中,名称空间Windows.Foundation.Collections包含IIterable和IIterator接口。这些接口看起来非常类似于.NET接口IEnumerable和IEnumerator。实际上,它们使用语言投影自动映射的。

Windows运行库不包含集合。相反,集合是由使用Windows运行库的不同平台实现的,例如C++、JavaScript和.NET。

并不是所有的协定接口都可以直接映射。名称空间Windows.Storage.Streams中带有Windows运行库的文件和流。要将Windows流与.NET流一起使用,可以使用扩展方法,如AsStream、AsStreamForRead和AsStreamForWrite。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值