12章アセンブリ

 本書では、コンポーネントという用語で、ライブラリまたは実行形式の両方を表していました。本章では、コンポーネントが正確には何を意味するのかについてより詳しく見ていくことにします。.NETでは、コンポーネントは正式にはアセンブリと呼ばれます。これは通常.dllまたは.exeファイルです。場合によっては、アセンブリは複数ファイルに分割されていることがありますが、そのような場合でもアセンブリは不可分のデプロイ(配布)単位です。ランタイムがアセンブリ全体を利用できるようにするか、全くデプロイしないかのいずれかでなければなりません。アセンブリは、型システムにとっても重要です。それぞれの型はその名前と名前空間だけではなく、含まれているアセンブリからも識別されるためです。アセンブリは、個々の型よりも大きなスケールで操作する一種のカプセル化を提供します。このようなことが可能なのはアクセス指定子internalによるものであり、アセンブリレベルで作用します。

 ランタイムは、アセンブリローダーを提供しています。アセンブリローダーは、プログラムが必要とするアセンブリを自動的に探してロードします。ローダーが正しいコンポーネントを探し出すことができるように、アセンブリには構造化された名前が付与されており、バージョン情報も含まれています。また、曖昧さをなくすために、グローバルレベルで一意な要素を含めることもできます。

 Visual Studioでは、[新しいプロジェクトの作成]ダイアログにあるたいていのC#プロジェクトタイプは、主な出力として単一のアセンブリを生成します。多くの場合、出力フォルダにはこれ以外にも追加のファイルを出力します。プロジェクトで利用する.NETランタイムに組み込まれていないアセンブリのコピーや、アプリケーションに必要なその他のファイルなどです(例えば、通常Webサイトプロジェクトでは、サーバ側コードに加えてCSSやスクリプトファイルを作成する必要があります)。しかし、通常はプロジェクトのビルドのターゲットとなる特定のアセンブリがあり、プロジェクトで定義したすべての型とその型で定義したコードを含んでいます。 ...

Get プログラミングC# 第8版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.