AssemblyName AssemblyName AssemblyName AssemblyName Class

Definition

Beschreibt die eindeutige Identität einer Assembly vollständig.Describes an assembly's unique identity in full.

public ref class AssemblyName sealed : ICloneable, System::Runtime::InteropServices::_AssemblyName, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class AssemblyName : ICloneable, System.Runtime.InteropServices._AssemblyName, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type AssemblyName = class
    interface ICloneable
    interface ISerializable
    interface IDeserializationCallback
    interface _AssemblyName
Public NotInheritable Class AssemblyName
Implements _AssemblyName, ICloneable, IDeserializationCallback, ISerializable
Vererbung
AssemblyNameAssemblyNameAssemblyNameAssemblyName
Attribute
Implementiert

Beispiele

In diesem Beispiel wird gezeigt, wie verschiedene Reflektionsklassen verwendet werden, um die in einer Assembly enthaltenen Metadaten zu analysieren.This example shows how to use various reflection classes to analyze the metadata contained in an assembly.

using namespace System;
using namespace System::Reflection;

static void Display(Int32 indent, String^ format, ... array<Object^>^param) 
{
    Console::Write("{0}", gcnew String (' ', indent));
    Console::WriteLine(format, param);
}
    
// Displays the custom attributes applied to the specified member.
static void DisplayAttributes(Int32 indent, MemberInfo^ mi)
{
    // Get the set of custom attributes; if none exist, just return.
    array<Object^>^attrs = mi->GetCustomAttributes(false);
        
    if (attrs->Length==0)
    {
        return;          
    }
        
    // Display the custom attributes applied to this member.
    Display(indent+1, "Attributes:");
    for each ( Object^ o in attrs )
    {
        Display(indent*2, "{0}", o);
    }				
}

void main()
{
    try
    {
        // This variable holds the amount of indenting that 
        // should be used when displaying each line of information.
        Int32 indent = 0; 
        // Display information about the EXE assembly.
        Assembly^ a = System::Reflection::Assembly::GetExecutingAssembly();
        
        Display(indent, "Assembly identity={0}", gcnew array<Object^> {a->FullName});
        Display(indent+1, "Codebase={0}", gcnew array<Object^> {a->CodeBase});

        // Display the set of assemblies our assemblies reference.
  
        Display(indent, "Referenced assemblies:"); 

        for each ( AssemblyName^ an in a->GetReferencedAssemblies() )
        {
            Display(indent + 1, "Name={0}, Version={1}, Culture={2}, PublicKey token={3}", gcnew array<Object^> {an->Name, an->Version, an->CultureInfo, (BitConverter::ToString(an->GetPublicKeyToken()))});
        }
        Display(indent, "");  
        // Display information about each assembly loading into this AppDomain. 
        for each ( Assembly^ b in AppDomain::CurrentDomain->GetAssemblies()) 
        {
            Display(indent, "Assembly: {0}", gcnew array<Object^> {b});
            // Display information about each module of this assembly.
 
            for each ( Module^ m in b->GetModules(true) ) 
            {
                Display(indent+1, "Module: {0}", gcnew array<Object^> {m->Name});
            }
            // Display information about each type exported from this assembly.
           
            indent += 1; 
            for each ( Type^ t in b->GetExportedTypes() ) 
            {
                Display(0, "");  
                Display(indent, "Type: {0}", gcnew array<Object^> {t}); 

                // For each type, show its members & their custom attributes.
           
                indent += 1; 
                for each (MemberInfo^ mi in t->GetMembers() )
                {
                    Display(indent, "Member: {0}", gcnew array<Object^> {mi->Name}); 
                    DisplayAttributes(indent, mi);

                    // If the member is a method, display information about its parameters.         
                    if (mi->MemberType==MemberTypes::Method) 
                    {
                    
                        for each ( ParameterInfo^ pi in (((MethodInfo^) mi)->GetParameters()))
                        {
                            Display(indent+1, "Parameter: Type={0}, Name={1}", gcnew array<Object^> {pi->ParameterType, pi->Name}); 
                        }
                    }

                    // If the member is a property, display information about the property's accessor methods.
                    if (mi->MemberType==MemberTypes::Property) 
                    {
                        for each ( MethodInfo^ am in (((PropertyInfo^) mi)->GetAccessors()) )
                        {
                            Display(indent+1, "Accessor method: {0}", gcnew array<Object^> {am});
                        }
                    }
                }
                // Display a formatted string indented by the specified amount.               
                indent -= 1;
            }
            indent -= 1;
        }
    }
    catch (Exception^ e)
    {
        Console::WriteLine(e->Message);
    }
}

// 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()
//
using System;
using System.Reflection;

class Module1
{
    public static void Main()
    {
        // This variable holds the amount of indenting that 
        // should be used when displaying each line of information.
        Int32 indent = 0;
        // Display information about the EXE assembly.
        Assembly a = typeof(Module1).Assembly;
        Display(indent, "Assembly identity={0}", a.FullName);
        Display(indent+1, "Codebase={0}", a.CodeBase);

        // Display the set of assemblies our assemblies reference.
      
        Display(indent, "Referenced assemblies:");
        foreach (AssemblyName 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())));
        }
        Display(indent, "");
        
        // Display information about each assembly loading into this AppDomain.
        foreach (Assembly b in AppDomain.CurrentDomain.GetAssemblies())
        {
            Display(indent, "Assembly: {0}", b);

            // Display information about each module of this assembly.
            foreach ( Module m in b.GetModules(true) )
            {
                Display(indent+1, "Module: {0}", m.Name);
            }

            // Display information about each type exported from this assembly.
           
            indent += 1;
            foreach ( Type t in b.GetExportedTypes() )
            {
                Display(0, "");
                Display(indent, "Type: {0}", t);

                // For each type, show its members & their custom attributes.
           
                indent += 1;
                foreach (MemberInfo mi in t.GetMembers() )
                {
                    Display(indent, "Member: {0}", mi.Name);
                    DisplayAttributes(indent, mi);

                    // If the member is a method, display information about its parameters.
                    
                    if (mi.MemberType==MemberTypes.Method)
                    {
                        foreach ( ParameterInfo pi in ((MethodInfo) mi).GetParameters() )
                        {
                            Display(indent+1, "Parameter: Type={0}, Name={1}", pi.ParameterType, pi.Name);
                        }
                    }

                    // If the member is a property, display information about the property's accessor methods.
                    if (mi.MemberType==MemberTypes.Property)
                    {
                        foreach ( MethodInfo am in ((PropertyInfo) mi).GetAccessors() )
                        {
                            Display(indent+1, "Accessor method: {0}", am);
                        }
                    }
                }
                indent -= 1;
            }
            indent -= 1;
        }
    }

    // Displays the custom attributes applied to the specified member.
    public static void DisplayAttributes(Int32 indent, MemberInfo mi)
    {
        // Get the set of custom attributes; if none exist, just return.
        object[] attrs = mi.GetCustomAttributes(false);
        if (attrs.Length==0) {return;}

        // Display the custom attributes applied to this member.
        Display(indent+1, "Attributes:");
        foreach ( object o in attrs )
        {
            Display(indent+2, "{0}", o.ToString());
        }
    }

    // Display a formatted string indented by the specified amount.
    public static void Display(Int32 indent, string format, params object[] param) 

    {
        Console.Write(new string(' ', indent*2));
        Console.WriteLine(format, param);
    }
}

//The output shown below is abbreviated.
//
//Assembly identity=ReflectionCS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
//  Codebase=file:///C:/Documents and Settings/test/My Documents/Visual Studio 2005/Projects/Reflection/Reflection/obj/Debug/Reflection.exe
//Referenced assemblies:
//  Name=mscorlib, Version=2.0.0.0, Culture=, PublicKey token=B7-7A-5C-56-19-34-E0-89
//
//Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//
//  Type: System.Object
//    Member: GetType
//    Member: ToString
//    Member: Equals
//      Parameter: Type=System.Object, Name=obj
//    Member: Equals
//      Parameter: Type=System.Object, Name=objA
//      Parameter: Type=System.Object, Name=objB
//    Member: ReferenceEquals
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=System.Object, Name=objA
//      Parameter: Type=System.Object, Name=objB
//    Member: GetHashCode
//    Member: .ctor
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//
//  Type: System.ICloneable
//    Member: Clone
//
//  Type: System.Collections.IEnumerable
//    Member: GetEnumerator
//      Attributes:
//        System.Runtime.InteropServices.DispIdAttribute
//
//  Type: System.Collections.ICollection
//    Member: CopyTo
//      Parameter: Type=System.Array, Name=array
//      Parameter: Type=System.Int32, Name=index
//    Member: get_Count
//    Member: get_SyncRoot
//    Member: get_IsSynchronized
//    Member: Count
//      Accessor method: Int32 get_Count()
//    Member: SyncRoot
//      Accessor method: System.Object get_SyncRoot()
//    Member: IsSynchronized
//      Accessor method: Boolean get_IsSynchronized()
//
//  Type: System.Collections.IList
//    Member: get_Item
//      Parameter: Type=System.Int32, Name=index
//    Member: set_Item
//      Parameter: Type=System.Int32, Name=index
//      Parameter: Type=System.Object, Name=value
//    Member: Add
//      Parameter: Type=System.Object, Name=value
//    Member: Contains
//      Parameter: Type=System.Object, Name=value
//    Member: Clear
//    Member: get_IsReadOnly
//    Member: get_IsFixedSize
//    Member: IndexOf
//      Parameter: Type=System.Object, Name=value
//    Member: Insert
//      Parameter: Type=System.Int32, Name=index
//      Parameter: Type=System.Object, Name=value
//    Member: Remove
//      Parameter: Type=System.Object, Name=value
//    Member: RemoveAt
//      Parameter: Type=System.Int32, Name=index
//    Member: Item
//      Accessor method: System.Object get_Item(Int32)
//      Accessor method: Void set_Item(Int32, System.Object)
//    Member: IsReadOnly
//      Accessor method: Boolean get_IsReadOnly()
//    Member: IsFixedSize
//      Accessor method: Boolean get_IsFixedSize()
//
//  Type: System.Array
//    Member: IndexOf
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//    Member: AsReadOnly
//      Parameter: Type=T[], Name=array
//    Member: Resize
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[]&, Name=array
//      Parameter: Type=System.Int32, Name=newSize
//    Member: BinarySearch
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//    Member: BinarySearch
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//      Parameter: Type=System.Collections.Generic.IComparer`1[T], Name=comparer
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 = GetType(Module1).Assembly
        Display(indent, "Assembly identity={0}", a.FullName)
        Display(indent + 1, "Codebase={0}", a.CodeBase)

        ' Display the set of assemblies our assemblies reference.
        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()
'

Hinweise

Das AssemblyName -Objekt enthält Informationen zu einer Assembly, die Sie verwenden können, um eine Bindung mit dieser Assembly herzustellen.The AssemblyName object contains information about an assembly, which you can use to bind to that assembly. Die Identität einer Assembly besteht aus folgendem:An assembly's identity consists of the following:

  • Einfacher Name.Simple name.

  • Versionsnummer.Version number.

  • Kryptografieschlüsselpaar.Cryptographic key pair.

  • Unterstützte Kultur.Supported culture.

Der einfache Name ist in der Regel der Dateiname für die Manifest-Datei ohne Erweiterung.The simple name is typically the file name for the manifest file without its extension. Das Schlüsselpaar enthält einen öffentlichen und einen privaten Schlüssel, der zum Erstellen von Signaturen mit starkem Namen für Assemblys verwendet wird.The key pair includes a public and private key, used to create strong-name signatures for assemblies.

Alle Compiler, die die Common Language Runtime unterstützen, geben den einfachen Namen einer geschachtelten Klasse aus, und die Reflektion erstellt bei der Abfrage einen geschachtelten Namen in Übereinstimmung mit den folgenden Konventionen.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

TrennzeichenDelimiter BedeutungMeaning
Umgekehrter Schrägstrich (\)Backslash (\) Escapezeichen.Escape character.
Komma (,)Comma (,) Geht vor dem Assemblynamen.Precedes the assembly name.
Plus Zeichen (+)Plus sign (+) Geht einer-Klasse vorangestellt.Precedes a nested class.

Der voll qualifizierte Name für eine Klasse könnte beispielsweise wie folgt aussehen:For example, the fully qualified name for a class might look like this:

ContainingClass + netstedclass, MyAssemblyContainingClass+NestedClass,MyAssembly

Ein "+ +" wird zu\"\\+\+", und "" wird zu "\".A "++" becomes "\+\+", and a "\" becomes "\\".

Dieser qualifizierte Name kann persistent gespeichert und später zum Laden Typevon verwendet werden.This qualified name can be persisted and later used to load the Type. Um nach einem Typezu suchen und zu laden GetType , verwenden Sie entweder mit dem Typnamen oder mit dem qualifizierten Assemblynamen.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetTypebeim Typnamen wird nur Type in der Assembly des Aufrufers und dann in der Systemassembly nach gesucht.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetTypemit dem qualifizierten Assemblynamen für die Assembly Type wird in beliebiger Assembly nach gesucht.GetType with the assembly qualified type name will look for the Type in any assembly.

Eine vollständig AssemblyName angegebene muss den Namen, die Kultur, den öffentlichen Schlüssel oder das Token des öffentlichen Schlüssels, die Hauptversion, die neben Version, die Buildnummer und die Revisionsnummern Parameter aufweisen.A fully specified AssemblyName must have the name, culture, public key or public key token, major version, minor version, build number, and revision number parameters. Die letzten vier sind im Version -Typ verpackt.The last four are packaged in the Version type.

Um einen einfachen Namen zu erstellen, erstellen AssemblyName Sie ein-Objekt mit dem Parameter losen Konstruktor, Nameund legen Sie den fest.To create a simple name, create an AssemblyName object using the parameterless constructor and set the Name. Die anderen Eigenschaften sind optional.The other properties are optional.

Um einen vollständigen starken Namen zu erstellen, AssemblyName erstellen Sie ein-Objekt mit dem Parameter losen Konstruktor Name , KeyPairund legen Sie und fest.To create a full strong name, create an AssemblyName object using the parameterless constructor and set the Name and KeyPair. Die anderen Eigenschaften sind optional.The other properties are optional. Verwenden SetPublicKey Sie SetPublicKeyToken und, um den öffentlichen Schlüssel und den starken Namen festzulegen.Use SetPublicKey and SetPublicKeyToken to set the public key and the strong name. Beim Signieren mit starkem Namen wird SHA1 immer der Hash Algorithmus verwendet.The strong name signing always uses the SHA1 hash algorithm.

Um sicherzustellen, dass die Namen ordnungsgemäß erstellt werden, verwenden Sie die folgenden Eigenschaften:To ensure that the names are constructed correctly, use the following properties:

Sie können den Namen auch mit der /l Option " Gacutil. exe" (Tool für den globalen Assemblycache) erhalten.You can also get the name by using the /l option with the Gacutil.exe (Global Assembly Cache Tool)

Erstellen Sie für einen teilweise angegebenen starken Namen ein AssemblyName Objekt mit dem Parameter losen Konstruktor, und legen Sie den Namen und den öffentlichen Schlüssel fest.For a partially specified strong name, create an AssemblyName object using the parameterless constructor and set the name and public key. Eine Assembly, die mit einem AssemblyName solchen erstellt wurde, kann später mit dem Assembly Linker (Al. exe) signiert werden.An assembly created using such an AssemblyName can be signed later using the Assembly Linker (Al.exe).

Es ist möglich, einen öffentlichen Schlüssel und eine KeyPair mit inkonsistenten Werten anzugeben.It is possible to specify a public key and a KeyPair with inconsistent values. Dies kann in Entwickler Szenarios nützlich sein.This can be useful in developer scenarios. In diesem Fall gibt der mit GetPublicKey abgerufene öffentliche Schlüssel den richtigen öffentlichen Schlüssel an, während der die öffentlichen und privaten Schlüssel angibt, die während der KeyPair Entwicklung verwendet werden.In this case, the public key retrieved with GetPublicKey specifies the correct public key, while the KeyPair specifies the public and private keys used during development. Wenn die Common Language Runtime einen Konflikt zwischen dem KeyPair und dem öffentlichen Schlüssel erkennt, sucht Sie in der Registrierung nach dem richtigen Schlüssel, der mit dem öffentlichen Schlüssel übereinstimmt.When the runtime detects a mismatch between the KeyPair and the public key, it looks up in the registry the correct key that matches the public key.

Das Format des anzeigen AssemblyName Amens einer ist eine durch Trennzeichen getrennte Unicode-Zeichenfolge, die mit dem Namen beginnt, wie folgt:The format of the display name of an AssemblyName is a comma-delimited Unicode string that begins with the name, as follows:

Name <,Culture = CultureInfo> <,Version = Major.Minor.Build.Revision> <, StrongName> <,PublicKeyToken> '\0'

Nameder Textname der Assembly.Name is the textual name of the assembly. CultureInfoist die RFC1766-Format-definierte Kultur.CultureInfo is the RFC1766-format-defined culture. Major, Minor, Build undRevision sind die Hauptversion, neben Version, Buildnummer und Revisionsnummer der Assembly.Major, Minor, Build, and Revision are the major version, minor version, build number, and revision number of the assembly. StrongNamedie hexadezimal codierte 64 Bits des Hashwerts des öffentlichen Schlüssels, der mit dem SHA-1-Hash Algorithmus generiert wurde, und dem öffentlichen Schlüssel, der durch SetPublicKeyangegeben wird.StrongName is the hexadecimal-encoded low-order 64 bits of the hash value of the public key generated using the SHA-1 hashing algorithm and the public key specified by SetPublicKey. PublicKeyTokender durch SetPublicKeyangegebene hexadezimal codierte öffentliche Schlüssel.PublicKeyToken is the hexadecimal-encoded public key specified by SetPublicKey.

Die hexadezimale Codierung ist als die Konvertierung der einzelnen Bytes eines binären Objekts in zwei hexadezimale Zeichen definiert und geht von dem minimal bis zum signifikantesten Byte aus.Hexadecimal encoding is defined as the conversion of each byte of a binary object to two hexadecimal characters, progressing from least to most significant byte. Zusätzliche Anzeigewerte werden nach Bedarf hinzugefügt.Additional display values will be added as deemed necessary.

Wenn der vollständige öffentliche Schlüssel bekannt ist, kann "PublicKey" durch "StrongName" ersetzt werden.If the full public key is known, then PublicKey may be substituted for StrongName.

Beachten Sie auch, dass Namemit Ausnahme von, die zuerst erfolgen muss, die lexikalische Reihenfolge von Parametern unwichtig ist.Also note that except for Name, which must come first, the lexical order of parameters is unimportant. Allerdings wird jeder ParameterVersion( Culture StrongName , oder PublicKey), der AssemblyName nicht explizit festgelegt ist, als weggelassen betrachtet, und wird dann als partiell betrachtet.However, any parameter (Version, Culture, StrongName or PublicKey) not specifically set is considered to be omitted, and the AssemblyName is then considered partial. Beim Angeben von partiellen Informationen müssen namens Parameter in der oben beschriebenen Reihenfolge angegeben werden.When specifying partial information, Name parameters must be specified in the order described above.

Wenn Sie einen anzeigen Amen angeben, ist StrongName =null die PublicKey= null Konvention oder ein Hinweis darauf, dass die Bindung und der Abgleich mit einer einfach benannten Assembly erforderlich ist.When supplying a display name, the convention StrongName =null or PublicKey= null indicates that binding and matching against a simply named assembly is required. Außerdem gibt die Konvention Culture= "" (doppeltes Anführungszeichen, das eine leere Zeichenfolge darstellt) die Übereinstimmung mit der Standard Kultur an.Additionally, the convention Culture= "" (double quote representing an empty string) indicates matching against the default culture.

Das folgende Beispiel zeigt eine AssemblyName für eine einfach benannte Assembly mit der Standard Kultur.The following example shows an AssemblyName for a simply named assembly with default culture.

ExampleAssembly, Culture=""  

In folgendem Beispiel wird einen vollständig angegebenen Verweis auf eine Assembly mit starkem Namen mit der Kultur „en“ dargestellt.The following example shows a fully specified reference for a strongly named assembly with culture "en".

ExampleAssembly, Version=1.0.0.0, Culture=en, PublicKeyToken=a5d015c7d5a0b012  

Konstruktoren

AssemblyName() AssemblyName() AssemblyName() AssemblyName()

Initialisiert eine neue Instanz der AssemblyName-Klasse.Initializes a new instance of the AssemblyName class.

AssemblyName(String) AssemblyName(String) AssemblyName(String) AssemblyName(String)

Initialisiert eine neue Instanz der AssemblyName-Klasse mit dem angegebenen Anzeigenamen.Initializes a new instance of the AssemblyName class with the specified display name.

Eigenschaften

CodeBase CodeBase CodeBase CodeBase

Ruft den Speicherort der Assembly als URL ab oder legt diesen fest.Gets or sets the location of the assembly as a URL.

ContentType ContentType ContentType ContentType

Ruft einen Wert ab oder legt einen Wert fest, der angibt, welche Art von Inhalt die Assembly enthält.Gets or sets a value that indicates what type of content the assembly contains.

CultureInfo CultureInfo CultureInfo CultureInfo

Ruft die von der Assembly unterstützte Kultur ab oder legt diese fest.Gets or sets the culture supported by the assembly.

CultureName CultureName CultureName CultureName

Ruft den Namen der Kultur ab, die dieser Assembly zugeordnet ist, oder legt den Namen fest.Gets or sets the name of the culture associated with the assembly.

EscapedCodeBase EscapedCodeBase EscapedCodeBase EscapedCodeBase

Ruft den URI einschließlich Escapezeichen ab, der die CodeBase darstellt.Gets the URI, including escape characters, that represents the codebase.

Flags Flags Flags Flags

Ruft die Attribute der Assembly ab oder legt diese fest.Gets or sets the attributes of the assembly.

FullName FullName FullName FullName

Ruft den vollständigen Namen der Assembly ab, der auch als Anzeigename bezeichnet wird.Gets the full name of the assembly, also known as the display name.

HashAlgorithm HashAlgorithm HashAlgorithm HashAlgorithm

Ruft den Hashalgorithmus ab, der vom Assemblymanifest verwendet wird, oder legt diesen fest.Gets or sets the hash algorithm used by the assembly manifest.

KeyPair KeyPair KeyPair KeyPair

Ruft das Paar aus öffentlichem und privatem kryptografischem Schlüssel ab, mit dem eine Signatur mit starkem Namen für die Assembly erstellt wird, oder legt dieses fest.Gets or sets the public and private cryptographic key pair that is used to create a strong name signature for the assembly.

Name Name Name Name

Ruft den einfachen Namen der Assembly ab oder legt diesen fest.Gets or sets the simple name of the assembly. Dies ist üblicherweise (jedoch nicht unbedingt) der Dateiname der Manifestdatei der Assembly, abzüglich ihrer Erweiterung.This is usually, but not necessarily, the file name of the manifest file of the assembly, minus its extension.

ProcessorArchitecture ProcessorArchitecture ProcessorArchitecture ProcessorArchitecture

Ruft einen Wert ab, der den Prozessor und die Bits pro Wort für die Plattform angibt, auf die eine ausführbare Datei zielt, oder legt diesen Wert fest.Gets or sets a value that identifies the processor and bits-per-word of the platform targeted by an executable.

Version Version Version Version

Ruft die Haupt-, Neben-, Build- und Revisionsnummer der Assembly ab oder legt diese fest.Gets or sets the major, minor, build, and revision numbers of the assembly.

VersionCompatibility VersionCompatibility VersionCompatibility VersionCompatibility

Ruft die Informationen ab, die sich auf die Kompatibilität der Assembly mit anderen Assemblys beziehen, oder legt diese fest.Gets or sets the information related to the assembly's compatibility with other assemblies.

Methoden

Clone() Clone() Clone() Clone()

Erstellt eine Kopie dieses AssemblyName-Objekts.Makes a copy of this AssemblyName object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAssemblyName(String) GetAssemblyName(String) GetAssemblyName(String) GetAssemblyName(String)

Ruft den AssemblyName für eine angegebene Datei ab.Gets the AssemblyName for a given file.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Ruft Serialisierungsinformationen mit allen Daten ab, die für das erneute Erstellen einer Instanz dieses AssemblyName benötigt werden.Gets serialization information with all the data needed to recreate an instance of this AssemblyName.

GetPublicKey() GetPublicKey() GetPublicKey() GetPublicKey()

Ruft den öffentlichen Schlüssel der Assembly ab.Gets the public key of the assembly.

GetPublicKeyToken() GetPublicKeyToken() GetPublicKeyToken() GetPublicKeyToken()

Ruft das Token des öffentlichen Schlüssels ab, d. h. die letzten 8 Byte des SHA-1-Hashs des öffentlichen Schlüssels, mit dem die Anwendung oder Assembly signiert ist.Gets the public key token, which is the last 8 bytes of the SHA-1 hash of the public key under which the application or assembly is signed.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnDeserialization(Object) OnDeserialization(Object) OnDeserialization(Object) OnDeserialization(Object)

Implementiert die ISerializable-Schnittstelle und wird nach Abschluss der Deserialisierung durch das Deserialisierungsereignis aufgerufen.Implements the ISerializable interface and is called back by the deserialization event when deserialization is complete.

ReferenceMatchesDefinition(AssemblyName, AssemblyName) ReferenceMatchesDefinition(AssemblyName, AssemblyName) ReferenceMatchesDefinition(AssemblyName, AssemblyName) ReferenceMatchesDefinition(AssemblyName, AssemblyName)

Gibt einen Wert zurück, der angibt, ob zwei Assemblynamen identisch sind.Returns a value indicating whether two assembly names are the same. Der Vergleich basiert auf den einfachen Assemblynamen.The comparison is based on the simple assembly names.

SetPublicKey(Byte[]) SetPublicKey(Byte[]) SetPublicKey(Byte[]) SetPublicKey(Byte[])

Legt den öffentlichen Schlüssel zum Identifizieren der Assembly fest.Sets the public key identifying the assembly.

SetPublicKeyToken(Byte[]) SetPublicKeyToken(Byte[]) SetPublicKeyToken(Byte[]) SetPublicKeyToken(Byte[])

Legt das Token des öffentlichen Schlüssels fest, d. h. die letzten 8 Bytes des SHA-1-Hashs des öffentlichen Schlüssels, mit dem die Anwendung oder Assembly signiert ist.Sets the public key token, which is the last 8 bytes of the SHA-1 hash of the public key under which the application or assembly is signed.

ToString() ToString() ToString() ToString()

Gibt den vollständigen Namen der Assembly zurück, der auch als Anzeigename bezeichnet wird.Returns the full name of the assembly, also known as the display name.

Explizite Schnittstellenimplementierungen

_AssemblyName.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _AssemblyName.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _AssemblyName.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _AssemblyName.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

_AssemblyName.GetTypeInfo(UInt32, UInt32, IntPtr) _AssemblyName.GetTypeInfo(UInt32, UInt32, IntPtr) _AssemblyName.GetTypeInfo(UInt32, UInt32, IntPtr) _AssemblyName.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können.Retrieves the type information for an object, which can then be used to get the type information for an interface.

_AssemblyName.GetTypeInfoCount(UInt32) _AssemblyName.GetTypeInfoCount(UInt32) _AssemblyName.GetTypeInfoCount(UInt32) _AssemblyName.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

_AssemblyName.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _AssemblyName.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _AssemblyName.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _AssemblyName.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

Gilt für:

Siehe auch