C#/WinRT を使用して Windows ランタイム コンポーネントを作成する

注意

C#/WinRT を使用した Windows ランタイム コンポーネントの作成は、.NET 6 以降でサポートされています。

C#/WinRT NuGet パッケージでは、C# で独自のWindows ランタイム型とコンポーネントを作成し、C++/WinRTRust などのWindows ランタイムと互換性のある言語からそれらを使用するためのサポートが提供されます。 C#/WinRT の作成とホスティングのサポートには .NET 6 と Visual Studio 2022 が必要であり、Windows App SDKWinUI3 などのデスクトップ アプリケーション シナリオをサポートすることを目的としています。

.NET 6 を使用してWindows ランタイム コンポーネントを作成する方法と、C++/WinRT コンソール アプリケーションから使用する方法を示すチュートリアルについては、「チュートリアル: C#/WinRT コンポーネントを作成して C++/WinRT から使用する」を参照してください。

詳細については、また、問題を検索または報告するには、C#/WinRT Github リポジトリおよび「C#/WinRT コンポーネントの作成」を参照してください。

Windows ランタイム コンポーネントでの型の宣言

Windows ランタイム コンポーネントを作成する際は、Windows ランタイム コンポーネントに関する既存の UWP ドキュメントに記載されているガイドラインと型の制限に従ってください (「C# および Visual Basic を使用した Windows ランタイム コンポーネント」を参照してください)。 コンポーネントは、ほとんどの場合、他の C# ライブラリと同様に実装できます。 ただし、コンポーネント内のパブリック型には、制限があります。これらの型は、他のユーザーが使用するために、生成された .winmd で宣言し、Windows ランタイムに公開します。

外部的には、パラメーターと戻り値の Windows ランタイム型のみを公開できます。 組み込みの C# 型は、.NET 型から WinRT へのマッピングがある限り、コンポーネントのパブリック サーフェスの一部として使用でき (「C#/WinrtRT での WinRT 型の .NET マッピング」を参照)、対応するWindows ランタイム型としてコンポーネントのユーザーに表示されます。 他のWindows ランタイム コンポーネントのWindows ランタイム型と Windows SDK は、in パラメーター、戻り値の型、クラスの継承など、コンポーネントのパブリック実装の一部としても使用できます。

注意

一部の Windows ランタイム型は、.NET 型にマップされます (「C#/WinrtRT での WinRT 型の .NET マッピング」を参照)。 これらの .NET 型は、Windows ランタイム コンポーネントのパブリック インターフェイス内で使用でき、対応する Windows ランタイム型としてコンポーネントのユーザーに表示されます。