Créer des composants Windows Runtime avec C#/WinRT

Note

La création de composants Windows Runtime avec C#/WinRT est prise en charge sur .NET 6 et versions ultérieures.

Le package NuGet C#/WinRT prend en charge la création de vos propres types et composants Windows Runtime en C# et leur consommation à partir de n'importe quel langage compatible Windows Runtime tel que C++/WinRT ou Rust. La prise en charge de la création et de l'hébergement C#/WinRT nécessite .NET 6 et Visual Studio 2022, et est destinée à prendre en charge les scénarios d'applications de bureau, notamment le SDK d'application Windows et WinUI3.

Pour une procédure pas à pas montrant comment créer un composant Windows Runtime avec .NET 6 et comment l'utiliser à partir d'une application console C++/WinRT, consultez Procédure pas à pas : créer un composant C#/WinRT et l'utiliser à partir de C++/WinRT.

Pour plus de détails et pour rechercher ou signaler des problèmes, reportez-vous au dépôt Github C#/WinRT et à la création de composants C#/WinRT.

Déclaration de types dans les composants Windows Runtime

Lors de la création de votre composant Windows Runtime, suivez les instructions et les restrictions de type décrites dans la documentation UWP existante sur les composants Windows Runtime (voir Composants Windows Runtime avec C# et Visual De base). Le composant peut pour la plupart être implémenté comme n’importe quelle autre bibliothèque C#. Cependant, il existe des restrictions sur les types publics du composant qui seront exposés au Windows Runtime et déclarés dans le fichier généré .winmd pour que d'autres puissent les consommer.

En externe, vous pouvez exposer uniquement les types Windows Runtime pour les paramètres et les valeurs de retour. Vous pouvez utiliser les types C# intégrés dans le cadre de la surface publique du composant tant qu'il existe un mappage du type .NET vers WinRT (voir Mappages .NET des types WinRT en C#/WinRT), et ils apparaîtront comme utilisateurs du composant comme types Windows Runtime correspondants. Les types Windows Runtime provenant d’autres composants Windows Runtime et du SDK Windows peuvent également être utilisés dans le cadre de l’implémentation publique du composant, tels que les paramètres in, les types de retour et l’héritage de classe.

Note

Certains types Windows Runtime sont mappés aux types .NET (voir Mappages .NET des types WinRT en C#/WinRT). Ces types .NET peuvent être utilisés dans l’interface publique de votre composant Windows Runtime et apparaîtront aux utilisateurs du composant comme les types Windows Runtime correspondants.