通过


使用 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 存储库,和 Authoring C#/WinRT Components

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

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

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

注意

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