Compartir a través de


Creación de componentes de Windows Runtime con C#/WinRT

Nota:

La creación de componentes de Windows Runtime con C#/WinRT se admite en .NET 6 y versiones posteriores.

El paquete NuGet de C#/WinRT proporciona compatibilidad para crear sus propios tipos y componentes de Windows Runtime en C#, y consumirlos desde cualquier lenguaje compatible con Windows Runtime, como C++/WinRT o Rust. La compatibilidad con la creación y el hospedaje de C#/WinRT requiere .NET 6 o posterior y Visual Studio 2022 o posterior, y está pensado para admitir escenarios de aplicaciones de escritorio, incluidos los SDK de Aplicaciones para Windows y WinUI3.

Para ver un tutorial que muestra cómo crear un componente de Windows Runtime con .NET 6 o posterior, y cómo consumirlo desde una aplicación de consola de C++/WinRT, consulte Walkthrough: Crear un componente de C#/WinRT y consumirlo desde C++/WinRT.

Para obtener más información y buscar o archivar cualquier problema, consulte el repositorio C#/WinRT GitHub repo y Authoring C#/WinRT Components.

Declaración de tipos en componentes de Windows Runtime

Al crear el componente de Windows Runtime, sigue las directrices y restricciones de tipos que se describen en la documentación existente de UWP sobre los componentes de Windows Runtime (consulta Windows Runtime componentes con C# y Visual Basic). El componente puede implementarse como cualquier otra biblioteca de C#. Sin embargo, hay restricciones en los tipos públicos del componente que se expondrán al Windows Runtime y que se declararán en el .winmd generado para su consumo por parte de otros.

Externamente, solo puede exponer tipos de Windows Runtime para los parámetros y valores devueltos. Puede usar tipos integrados de C# como parte de la superficie pública del componente siempre que haya una asignación del tipo .NET a WinRT (consulte asignaciones de tipos de .NET a WinRT en C#/WinRT), y estos se presentarán a los usuarios del componente como los tipos correspondientes de Windows Runtime. Tipos de Windows Runtime de otros componentes de Windows Runtime y del SDK de Windows también pueden ser utilizados como parte de la implementación pública del componente, como in parámetros, tipos de retorno y herencia de clases.

Nota:

Hay algunos tipos de Windows Runtime que se asignan a tipos de .NET (consulte .NET mapeos de tipos de WinRT en C#/WinRT). Estos tipos de .NET se pueden usar en la interfaz pública del componente de Windows Runtime, y aparecerán a los usuarios del componente como los tipos de Windows Runtime correspondientes.