Creare componenti Windows Runtime con C#/WinRT

Nota

La creazione di componenti Windows Runtime con C#/WinRT è supportata in .NET 6 e versioni successive.

Il pacchetto NuGet C#/WinRT offre il supporto per la creazione di tipi e componenti Windows Runtime personalizzati in C# e l'utilizzo da qualsiasi linguaggio compatibile con Windows Runtime, ad esempio C++/WinRT o Rust. Il supporto per la creazione e l'hosting di C#/WinRT richiede .NET 6 e Visual Studio 2022 ed è progettato per supportare scenari di applicazioni desktop, tra cui Windows App SDKe WinUI3.

Per una procedura dettagliata che illustra come creare un componente Windows Runtime con .NET 6 e come usarlo da un'applicazione console C++/WinRT, vedere Procedura dettagliata: Creare un componente C#/WinRT e usarlo da C++/WinRT.

Per altri dettagli e per cercare o segnalare eventuali problemi, vedere il Repository GitHub C#/WinRT e Creazione di componenti C#/WinRT.

Dichiarazione dei tipi nei componenti Windows Runtime

Durante la creazione del componente Windows Runtime, seguire le linee guida e le restrizioni sui tipi descritte nella documentazione della piattaforma UWP esistente sui componenti Windows Runtime. Vedere Componenti Windows Runtime con C# e Visual Basic. Il componente può essere implementato nella maggior parte dei casi come qualsiasi altra libreria C#. Esistono tuttavia restrizioni sui tipi pubblici nel componente che verranno esposti a Windows Runtime e dichiarati nel .winmd generato per consentirne l'utilizzo da parte di altri utenti.

Esternamente è possibile esporre solo i tipi Windows Runtime per i parametri e i valori restituiti. È possibile usare tipi C# predefiniti come parte della superficie pubblica del componente, purché sia presente un mapping dal tipo .NET a WinRT (vedere Mapping .NET dei tipi WinRT in C#/WinRT). Verranno visualizzati agli utenti del componente come tipi di Windows Runtime corrispondenti. I tipi di Windows Runtime di altri componenti Windows Runtime e Windows SDK possono essere usati anche come parte dell'implementazione pubblica del componente, ad esempio parametri in, tipi restituiti ed ereditarietà delle classi.

Nota

Esistono alcuni tipi di Windows Runtime mappati ai tipi .NET. Vedere Mapping .NET dei tipi WinRT in C#/WinRT. Questi tipi .NET possono essere usati nell'interfaccia pubblica del componente Windows Runtime e appariranno agli utenti del componente come i tipi Windows Runtime corrispondenti.