1

参照アセンブリとCLRがこれらをどのように処理しているかを理解しようとすると、実際に機能している.NETCLRがいくつあるかについて少し混乱しています。

APIがwinmdファイルによって投影され、後で参照アセンブリによって.NETで処理される.NET Metroプロファイルを見ると、どのバージョン/種類のCLRがこれを処理していますか?

これは、SilverlightプロファイルとWindows Phoneプロファイルで行われるのと同じ種類のメカニズムのようです。したがって、これらのそれぞれに同じCLRが読み込まれますが、ターゲットに応じて、関連するAPIのみが公開されます。

それは意味がありますか?

4

1 に答える 1

5

デスクトップ、モバイル、電話、Xbox、Silverlight、マイクロなど、すべてのプラットフォームに1つあります。そして、今年の後半には、もう1つARMパッドが登場する予定です。しかし、それは重要ではありません。プログラムは、CLRではなく参照アセンブリに対して構築されます。プログラムが行うすべての呼び出しはフレームワークメソッド呼び出しであり、CLR関数を直接呼び出すことはありません。

したがって、プロファイル、c:\ program files\referenceアセンブリに格納されている参照アセンブリのコレクションがあります。それらは大まかにプラットフォームの境界に沿って分類されますが、追加のバリエーションがあります。デスクトップアプリのように、フル、クライアント、またはメトロプロファイルをターゲットにできます。WinRTターゲティングを有効にするリファレンスアセンブリの重要な機能は、タイプをリダイレクトできることです。その魔法は[TypeForwardedTo]属性によって実装されます。

したがって、Metroプロファイルの.NET apiを対象とする場合、参照アセンブリはサブディレクトリから取得され、WinRTプロジェクションを実装するFramework\.NETCoreのアセンブリセットにすべてのタイプをリダイレクトするmscorlib.dll参照アセンブリへの参照があります。コアとなるのは、System.Runtime.dllとSystem.Runtime.WindowsRuntime.dllなどです。ポータブルクラスライブラリ機能を有効にする同じメカニズム。詳細はこちら

于 2012-05-05T00:34:12.063 に答える