注意
.NET 6 及更高版本支持使用 C#/WinRT 创作 Windows 运行时组件。
C#/WinRT NuGet 包支持在 C# 中创作自己的 Windows 运行时类型和组件,并从任何与 Windows 运行时兼容的语言(如 C++ /WinRT 或 Rust)使用它们。 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 运行时类型显示给组件的用户。