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

注意

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

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

有关演示如何使用 .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#/WinRT 中 WinRT 类型的.NET 映射),即可将内置 C# 类型用作组件公共图面的一部分,并且它们将显示为组件的相应 Windows 运行时类型。 来自其他 Windows 运行时组件和 Windows SDK 的 Windows 运行时类型还可以用作组件的公共实现的一部分,例如 in 参数、返回类型和类继承。

注意

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