使用 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 运行时组件的指南和类型限制(请参阅使用 C# 和 Visual Basic 的 Windows 运行时组件)。 大多数情况下,该组件可以像任何其他 C# 库一样实现。 但是,组件中的公共类型受到限制,这些类型将向 Windows 运行时公开并在生成的 .winmd 中声明,以供其他人使用。

在外部,只能为参数和返回值公开 Windows 运行时类型。 只要存在从 .NET 类型到 WinRT 的映射,就可以将内置 C# 类型用作组件公共外围的一部分(请参阅 C #/WinRT 中 WinRT 类型的 .NET 映射),并且这些类型将作为相应的 Windows 运行时类型显示给组件用户。 其他 Windows 运行时组件和 Windows SDK 中的 Windows 运行时类型也可以用作组件的公共实现的一部分,例如 in 参数、返回类型和类继承。

注意

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