AssemblyName クラスとは? わかりやすく解説

AssemblyName クラス

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

名前空間: System.Reflection
アセンブリ: 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
/** @attribute SerializableAttribute() */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class AssemblyName implements
 _AssemblyName, ICloneable, 
    ISerializable, IDeserializationCallback
SerializableAttribute 
ClassInterfaceAttribute(ClassInterfaceType.None) 
ComVisibleAttribute(true) 
public final class AssemblyName implements
 _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 の書式定義されているカルチャです。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
使用例使用例

この例は、さまざまなリフレクション クラス使用してアセンブリ格納されメタデータ分析する方法示してます。

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.Object
  System.Reflection.AssemblyName
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
AssemblyName メンバ
System.Reflection 名前空間
Version
GetPublicKey
GetPublicKeyToken
SetPublicKey
SetPublicKeyToken
FullName
GetType
AssemblyQualifiedName
その他の技術情報
全修型名指定



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「AssemblyName クラス」の関連用語

AssemblyName クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



AssemblyName クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS