注意
.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 存储库,和 Authoring C#/WinRT Components。
声明Windows 运行时组件中的类型
在编写 Windows 运行时 组件时,请遵循现有 UWP 文档中关于 Windows 运行时 组件的准则和类型限制(请参阅 使用 C# 和 Visual Basic 的 Windows 运行时 组件)。 大部分组件可以像实现任何其他 C# 库一样实现。 但是,组件中的公共类型存在限制,这些类型将公开给Windows 运行时,并在生成的 .winmd 中声明供他人使用。
在外部,只能公开参数和返回值的Windows 运行时类型。 只要有从 .NET 类型到 WinRT 的映射(请参阅 C#/WinRT 中 WinRT 类型的in 参数、返回类型和类继承。
注意
有一些 Windows 运行时 类型可以映射到 .NET 类型(请参阅 C#/WinRT 中 WinRT 类型的 .NET 映射)。 这些.NET类型可以在Windows 运行时组件的公共接口中使用,并且这些类型将显示给组件的用户作为相应的Windows 运行时类型。