次の方法で共有


AssemblyName クラス

アセンブリの一意の ID を完全に記述します。

この型のすべてのメンバの一覧については、AssemblyName メンバ を参照してください。

System.Object
   System.Reflection.AssemblyName

<Serializable>
NotInheritable Public Class AssemblyName   Implements ICloneable, ISerializable, IDeserializationCallback
[C#]
[Serializable]
public sealed class AssemblyName : ICloneable, ISerializable,   IDeserializationCallback
[C++]
[Serializable]
public __gc __sealed class AssemblyName : public ICloneable,   ISerializable, IDeserializationCallback
[JScript]
public
   Serializable
class AssemblyName implements ICloneable, ISerializable,   IDeserializationCallback

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

アセンブリ キャッシュ マネージャは、 AssemblyName オブジェクトを使用して、アセンブリに関する情報をバインドおよび取得します。アセンブリの ID は、簡易名、バージョン番号、暗号キーのペア、サポートされているカルチャで構成されます。簡易名は、暗号化されていない名前で、厳密な名前とは区別されます。厳密な名前は、公開暗号キーと秘密暗号キーのペアで保護されているアセンブリ名です。

入れ子になったクラスに対して、共通言語ランタイムをサポートするすべてのコンパイラは簡易名を生成し、リフレクションが、照会されたときに次の規則に従って完全限定名を生成します。

区切り記号 意味
円記号 (\) エスケープ文字。
コンマ (,) アセンブリ名の前に置きます。
プラス記号 (+) 入れ子になったクラスの前に置きます。
ピリオド (.) 名前空間識別子を示します。

たとえば、クラスの完全限定名は次のようになります。

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly

名前空間が TopNamespace.Sub+Namespace である場合、プラス記号 (+) が、入れ子になったクラスの区切り文字として解釈されないように、プラス記号 (+) の前にエスケープ文字 (\) を付ける必要があります。リフレクションは、この文字列を次のように生成します。

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly

"++" は "\+\+"、"\" は "\\" となります。

この完全限定名は永続化でき、後で Type を読み込むために使用できます。 Type を検索して読み込むには、型名だけ、またはアセンブリ限定型名のいずれかを指定して GetType を使用します。型名だけを指定して GetType を使用した場合は、呼び出し元のアセンブリの Type だけが検索され、次に System アセンブリが検索されます。アセンブリ限定型名を指定して GetType を使用した場合は、任意のアセンブリ内の Type が検索されます。

型名の末尾には、その型に関する追加情報を示す文字を追加できます。たとえば、その型が参照型か、ポインタ型か、配列型かなどを表す文字を追加できます。このような末尾の文字を除いて型名だけを取得するには、 t.GetElementType().ToString() を使用します。 t が型を示します。

アセンブリ名を除く、すべての型名の構成要素では空白が認識されます。アセンブリ名では、区切り記号 ',' の前のスペースには意味がありますが、区切り記号 ',' の後のスペースは無視されます。

AssemblyName を完全に指定する場合、名前、カルチャ、公開キーまたは公開キー トークン、メジャー バージョン、マイナ バージョン、ビルド番号、リビジョン番号の各パラメータを、この順序で指定する必要があります。最後の 4 パラメータは、 Version 型にパッケージ化されます。しかし、一意のアセンブリを明示的に決定するためのパラメータ数が不足している場合は、 AssemblyName に一部のパラメータだけを指定することもできます。アセンブリ キャッシュ マネージャが、指定した AssemblyName に一致する最初のアセンブリを返します。アセンブリ名として一部のパラメータだけを指定する場合でも、それらのパラメータを上記の順序で指定する必要があります。たとえば、バージョン パラメータを省略し、名前、カルチャ、および公開キーまたは公開キー トークンを指定して一致するアセンブリを探すことはできますが、カルチャとバージョンの両方を省略し、名前と公開キーまたは公開キー トークンだけを指定することはできません。バインディングに使用する場合、少なくとも名前は指定する必要があります。

簡易名を作成するには、既定のコンストラクタを使用して AssemblyName オブジェクトを作成し、 Name を設定します。他のプロパティは省略可能です。

完全な厳密な名前を作成するには、既定のコンストラクタを使用して AssemblyName オブジェクトを作成し、 Name および KeyPair を設定します。他のプロパティは省略可能です。 SetPublicKey および SetPublicKeyToken を使用して、公開キーと厳密な名前を設定します。厳密な名前による署名では、必ず SHA1 ハッシュ アルゴリズムが使用されます。

厳密な名前を部分的に指定して作成するには、既定のコンストラクタを使用して AssemblyName オブジェクトを作成し、名前と公開キーを設定します。他のプロパティは省略可能です。 AssemblyName などを使用して作成したアセンブリには、アセンブリ リンカ (Al.exe) を使用して後から署名できます。

公開キーと KeyPair には、矛盾する値を指定できます。このことが、開発において役に立つ場合があります。この場合、 GetPublicKey で取得される公開キーには正しい公開キーを指定し、 KeyPair には開発中に使用する公開キーと秘密キーを指定します。ランタイムによって KeyPair と公開キーの矛盾が検出されると、公開キーと一致する正しいキーがレジストリ内で検索されます。

AssemblyName の表示名の書式は、次のように、名前から始まるコンマ区切りの Unicode 文字列です。 Name <,Culture = CultureInfo> <,Version = Major.Minor.Build.Revision> <, StrongName> <,PublicKeyToken> '\0'

Name はアセンブリの名前を表すテキストです。 CultureInfo は、RFC1766 の書式で定義されているカルチャです。 MajorMinorBuild 、および Revision は、アセンブリのメジャー バージョン、マイナ バージョン、ビルド番号、およびリビジョン番号です。 StrongName は、SHA-1 ハッシュ アルゴリズムと SetPublicKey で指定された公開キーを使用して生成される公開キーのハッシュ値の下位 64 ビットを 16 進エンコードした値です。 PublicKeyToken は、 SetPublicKey で指定され、16 進値にエンコードされた公開キーです。

山かっこで囲まれている値は省略可能です。16 進値にエンコードするとは、バイナリ オブジェクトの各バイトを最下位バイトから最上位バイトの順に、16 進値を表す 2 桁の英数文字に変換することです。必要に応じて、他の表示値が追加される場合もあります。

完全な公開キーが明らかな場合は、StrongName の代わりに PublicKey を使用できます。

また、 Name は先頭に指定する必要がありますが、その他のパラメータの順序は重要ではありません。特に設定されていないパラメータ (VersionCultureStrongName 、または PublicKey) は省略されたと見なされ、 AssemblyName は部分的に指定されていると解釈されます。部分的な情報を指定する場合は、上で説明した順序でパラメータを指定する必要があります。

表示名を指定するときに StrongName =null または PublicKey= null と指定した場合は、簡易名を持つアセンブリにバインドする必要があることや、そのようなアセンブリに一致する必要があることを示します。また、 Culture= "" (空の文字列を表す二重引用符) を指定すると、既定のカルチャに一致するように指定したことになります。

既定のカルチャを使用する、簡易名を持つアセンブリに対する AssemblyName のコード例を次に示します。

com.microsoft.crypto, Culture=""

カルチャ "en" を使用し、厳密な名前を持つアセンブリに対して完全に指定した参照のコード例を次に示します。

com.microsoft.crypto, Culture=en, PublicKeyToken=a5d015c7d5a0b012, Version=1.0.0.0

部分的に指定した AssemblyName のコード例を次に示します。これらの例は、厳密な名前または簡易名のいずれかを持つアセンブリと一致します。

com.microsoft.crypto

com.microsoft.crypto, Culture=""

com.microsoft.crypto, Culture=en

部分的に指定した AssemblyName のコード例を次に示します。これらの例は、簡易名を持つアセンブリと一致している必要があります。

com.microsoft.crypto, Culture="", PublicKeyToken=null

com.microsoft.crypto, Culture=en, PublicKeyToken=null

部分的に指定した AssemblyName のコード例を次に示します。これらの例は、厳密な名前を持つアセンブリと一致している必要があります。

com.microsoft.crypto, Culture="", PublicKeyToken=a5d015c7d5a0b012

com.microsoft.crypto, Culture=en, PublicKeyToken=a5d015c7d5a0b012, Version=1.0.0.0

必要条件

名前空間: System.Reflection

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

AssemblyName メンバ | System.Reflection 名前空間 | Version | GetPublicKey | GetPublicKeyToken | SetPublicKey | SetPublicKeyToken | FullName | GetType | AssemblyQualifiedName | 完全限定型名の指定