使用 C#/WinRT 创作 Windows 运行时组件

注意

.NET 6 及更高版本支持使用 C#/WinRT 创作Windows 运行时组件。

C#/WinRT NuGet 包支持在 C# 中创作自己的Windows 运行时类型和组件,并从任何兼容Windows 运行时的语言(如 C++/WinRTRust)中使用它们。 C#/WinRT 创作和托管支持需要 .NET 6 和 Visual Studio 2022,它旨在支持桌面应用程序方案,包括Windows 应用 SDKWinUI3

有关如何使用 .NET 6 创作Windows 运行时组件以及如何从 C++/WinRT 控制台应用程序使用它的演练,请参阅演练:创建 C#/WinRT 组件并从 C++/WinRT 使用它

有关更多详细信息,以及搜索或提交任何问题,请参阅 C#/WinRT Github 存储库创作 C#/WinRT 组件

声明 Windows 运行时组件中的类型

创作Windows 运行时组件时,请遵循现有 UWP 文档中概述的关于Windows 运行时组件 (Windows 运行时组件以及Visual Basic) 的准则和类型限制。 该组件最多可以像任何其他 C# 库一样实现。 但是,组件中的公共类型存在限制,这些类型将公开给Windows 运行时,并在生成的.winmd中声明供其他人使用。

在外部,只能公开参数和返回值的Windows 运行时类型。 只要有从 .NET 类型到 WinRT 的映射,即可将内置 C# 类型用作组件公共图面的一部分,只要有从 .NET 类型到 WinRT (的映射,就会看到 C#/WinRT) 中的 WinRT 类型的 .NET 映射,组件的用户将显示为相应的Windows 运行时类型。 来自其他Windows 运行时组件和Windows SDK 的Windows 运行时类型还可以用作组件的公共实现的一部分,例如in参数、返回类型和类继承。

注意

有一些映射到 .NET 类型的Windows 运行时类型, (请参阅 C#/WinRT) 中的 WinRT 类型的 .NET 映射。 这些 .NET 类型可以在Windows 运行时组件的公共接口中使用,这些类型将显示给组件的用户作为相应的Windows 运行时类型。