AssemblyName クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ClassInterfaceAttribute(ClassInterfaceType.None)> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class AssemblyName Implements _AssemblyName, ICloneable, ISerializable, IDeserializationCallback
[SerializableAttribute] [ClassInterfaceAttribute(ClassInterfaceType.None)] [ComVisibleAttribute(true)] public sealed class AssemblyName : _AssemblyName, ICloneable, ISerializable, IDeserializationCallback
[SerializableAttribute] [ClassInterfaceAttribute(ClassInterfaceType::None)] [ComVisibleAttribute(true)] public ref class AssemblyName sealed : _AssemblyName, ICloneable, ISerializable, IDeserializationCallback

AssemblyName オブジェクトにはアセンブリに関する情報が格納されています。この情報を使用してそのアセンブリへのバインドを行うことができます。アセンブリの ID は、次に示す要素から構成されます。
簡易名は通常、マニフェスト ファイルの名前です (拡張子を除く)。キー ペアには、厳密な名前によるアセンブリの署名を作成するために使用する公開キーと秘密キーが含まれます。
入れ子になったクラスに対して、共通言語ランタイムをサポートするすべてのコンパイラは簡易名を生成し、リフレクションが、照会されたときに次の規則に従って完全限定名を生成します。
ContainingClass+NestedClass,MyAssembly
"++" は "\+\+"、"\" は "\\" となります。
この修飾名は永続化でき、後で Type を読み込むために使用できます。Type を検索して読み込むには、型名だけ、またはアセンブリ修飾型名のいずれかを指定して GetType を使用します。型名だけを指定して GetType を使用した場合は、呼び出し元のアセンブリの Type だけが検索され、次に System アセンブリが検索されます。アセンブリ修飾型名を指定して GetType を使用した場合は、任意のアセンブリ内の Type が検索されます。
AssemblyName を完全に指定する場合、名前、カルチャ、公開キーまたは公開キー トークン、メジャー バージョン、マイナ バージョン、ビルド番号、リビジョン番号の各パラメータを指定する必要があります。最後の 4 パラメータは、Version 型にパッケージ化されます。
簡易名を作成するには、既定のコンストラクタを使用して AssemblyName オブジェクトを作成し、Name を設定します。他のプロパティは省略可能です。
完全な厳密な名前を作成するには、既定のコンストラクタを使用して AssemblyName オブジェクトを作成し、Name および KeyPair を設定します。他のプロパティは省略可能です。SetPublicKey および SetPublicKeyToken を使用して、公開キーと厳密な名前を設定します。厳密な名前による署名では、必ず SHA1 ハッシュ アルゴリズムが使用されます。
-
Assembly.FullName
-
AssemblyName.FullName
-
Type.AssemblyQualifiedName
また、/l オプションで グローバル アセンブリ キャッシュ ツール (Gacutil.exe) を使用して名前を取得することもできます。
厳密な名前を部分的に指定して作成するには、既定のコンストラクタを使用して AssemblyName オブジェクトを作成し、名前と公開キーを設定します。AssemblyName などを使用して作成したアセンブリには、アセンブリ リンカ (Al.exe) を使用して後から署名できます。
公開キーと KeyPair には、矛盾する値を指定できます。このことが、開発において役に立つ場合があります。この場合、GetPublicKey で取得される公開キーには正しい公開キーを指定し、KeyPair には開発中に使用する公開キーと秘密キーを指定します。ランタイムによって KeyPair と公開キーの矛盾が検出されると、公開キーと一致する正しいキーがレジストリ内で検索されます。
AssemblyName の表示名の書式は、次のように、名前から始まるコンマ区切りの Unicode 文字列です。
Name <,Culture = CultureInfo> <,Version = Major.Minor.Build.Revision> <, StrongName> <,PublicKeyToken> '\0'
Name はアセンブリの名前を表すテキストです。CultureInfo は、RFC1766 の書式で定義されているカルチャです。Major、Minor、Build、および Revision は、アセンブリのメジャー バージョン、マイナ バージョン、ビルド番号、およびリビジョン番号です。StrongName は、SHA-1 ハッシュ アルゴリズムと SetPublicKey で指定された公開キーを使用して生成される公開キーのハッシュ値の下位 64 ビットを 16 進エンコードした値です。PublicKeyToken は、SetPublicKey で指定され、16 進値にエンコードされた公開キーです。
16 進値にエンコードするとは、バイナリ オブジェクトの各バイトを最下位バイトから最上位バイトの順に、16 進値を表す 2 桁の英数文字に変換することです。必要に応じて、他の表示値が追加される場合もあります。
完全な公開キーが明らかな場合は、StrongName の代わりに PublicKey を使用できます。
また、Name は先頭に指定する必要がありますが、その他のパラメータの順序は重要ではありません。特に設定されていないパラメータ (Version、Culture、StrongName、または PublicKey) は省略されたと見なされ、AssemblyName は部分的に指定されていると解釈されます。部分的な情報を指定する場合は、上で説明した順序でパラメータを指定する必要があります。
表示名を指定するときに StrongName =null または PublicKey= null と指定した場合は、簡易名を持つアセンブリにバインドする必要があることや、そのようなアセンブリに一致する必要があることを示します。また、Culture= "" (空の文字列を表す二重引用符) を指定すると、既定のカルチャに一致するように指定したことになります。
既定のカルチャを使用する、簡易名を持つアセンブリに対する AssemblyName のコード例を次に示します。
com.microsoft.crypto, Culture=""

この例は、さまざまなリフレクション クラスを使用して、アセンブリに格納されたメタデータを分析する方法を示しています。
Imports System Imports System.Reflection Module Module1 Sub Main() ' This variable holds the amount of indenting that ' should be used when displaying each line of information. Dim indent As Int32 = 0 ' Display information about the EXE assembly. Dim a As [Assembly] = System.Reflection.Assembly.GetExecutingAssembly() Display(indent, "Assembly identity={0}", a.FullName) Display(indent + 1, "Codebase={0}", a.CodeBase) ' Display the set of assemblies our assemblies references. Dim an As AssemblyName Display(indent, "Referenced assemblies:") For Each an In a.GetReferencedAssemblies() Display(indent + 1, "Name={0}, Version={1}, Culture={2}, PublicKey token={3}", _ an.Name, an.Version, an.CultureInfo.Name, BitConverter.ToString(an.GetPublicKeyToken)) Next Display(indent, "") ' Display information about each assembly loading into this AppDomain. For Each a In AppDomain.CurrentDomain.GetAssemblies() Display(indent, "Assembly: {0}", a) ' Display information about each module of this assembly. Dim m As [Module] For Each m In a.GetModules(True) Display(indent + 1, "Module: {0}", m.Name) Next ' Display information about each type exported from this assembly. Dim t As Type indent += 1 For Each t In a.GetExportedTypes() Display(0, "") Display(indent, "Type: {0}", t) ' For each type, show its members & their custom attributes. Dim mi As MemberInfo indent += 1 For Each mi In t.GetMembers() Display(indent, "Member: {0}", mi.Name) DisplayAttributes(indent, mi) ' If the member is a method, display information about its parameters. Dim pi As ParameterInfo If mi.MemberType = MemberTypes.Method Then For Each pi In CType(mi, MethodInfo).GetParameters() Display(indent + 1, "Parameter: Type={0}, Name={1}", pi.ParameterType, pi.Name) Next End If ' If the member is a property, display information about the property's accessor methods. If mi.MemberType = MemberTypes.Property Then Dim am As MethodInfo For Each am In CType(mi, PropertyInfo).GetAccessors() Display(indent + 1, "Accessor method: {0}", am) Next End If Next indent -= 1 Next indent -= 1 Next End Sub ' Displays the custom attributes applied to the specified member. Sub DisplayAttributes(ByVal indent As Int32, ByVal mi As MemberInfo) ' Get the set of custom attributes; if none exist, just return. Dim attrs() As Object = mi.GetCustomAttributes(False) If attrs.Length = 0 Then Return ' Display the custom attributes applied to this member. Display(indent + 1, "Attributes:") Dim o As Object For Each o In attrs Display(indent + 2, "{0}", o.ToString()) Next End Sub ' Display a formatted string indented by the specified amount. Sub Display(ByVal indent As Int32, ByVal format As String, ByVal ParamArray params() As Object) Console.Write(New String(" "c, indent * 2)) Console.WriteLine(format, params) End Sub End Module 'The output shown below is abbreviated. ' 'Assembly identity=Reflection, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null ' Codebase=file:///C:/Reflection.exe 'Referenced assemblies: ' Name=mscorlib, Version=1.0.5000.0, Culture=, PublicKey token=B7-7A-5C-56-19-34-E0-89 ' Name=Microsoft.VisualBasic, Version=7.0.5000.0, Culture=, PublicKey token=B0-3F-5F-7F-11-D5-0A-3A ' 'Assembly: mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ' Module: mscorlib.dll ' Module: prc.nlp ' Module: prcp.nlp ' Module: ksc.nlp ' Module: ctype.nlp ' Module: xjis.nlp ' Module: bopomofo.nlp ' Module: culture.nlp ' Module: region.nlp ' Module: sortkey.nlp ' Module: charinfo.nlp ' Module: big5.nlp ' Module: sorttbls.nlp ' Module: l_intl.nlp ' Module: l_except.nlp ' ' Type: System.Object ' Member: GetHashCode ' Member: Equals ' Parameter: Type=System.Object, Name=obj ' Member: ToString ' Member: Equals ' Parameter: Type=System.Object, Name=objA ' Parameter: Type=System.Object, Name=objB ' Member: ReferenceEquals ' Parameter: Type=System.Object, Name=objA ' Parameter: Type=System.Object, Name=objB ' Member: GetType ' Member: .ctor ' ' Type: System.ICloneable ' Member: Clone ' ' Type: System.Collections.IEnumerable ' Member: GetEnumerator ' Attributes: ' System.Runtime.InteropServices.DispIdAttribute ' ' Type: System.Collections.ICollection ' Member: get_IsSynchronized ' Member: get_SyncRoot ' Member: get_Count ' Member: CopyTo ' Parameter: Type=System.Array, Name=array ' Parameter: Type=System.Int32, Name=index ' Member: Count ' Accessor method: Int32 get_Count() ' Member: SyncRoot ' Accessor method: System.Object get_SyncRoot() ' Member: IsSynchronized ' Accessor method: Boolean get_IsSynchronized() '

System.Reflection.AssemblyName


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- AssemblyName クラスのページへのリンク