AssemblyName 클래스

정의

어셈블리의 고유 ID에 대해 자세히 설명합니다.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
상속
AssemblyName
특성
구현

예제

이 예제에서는 다양 한 리플렉션 클래스를 사용 하는 어셈블리에 포함 된 메타 데이터를 분석 하는 방법을 보여 줍니다.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()
'

설명

AssemblyName 개체는 해당 어셈블리에 바인딩하는 데 사용할 수 있는 어셈블리에 대 한 정보를 포함 합니다.The AssemblyName object contains information about an assembly, which you can use to bind to that assembly. 어셈블리의 id는 다음과 같이 구성 됩니다.An assembly's identity consists of the following:

  • 단순한 이름입니다.Simple name.

  • 버전 번호입니다.Version number.

  • 암호화 키 쌍입니다.Cryptographic key pair.

  • 지원 되는 문화권입니다.Supported culture.

단순 이름은 일반적으로 확장명이 없는 매니페스트 파일에 대 한 파일 이름입니다.The simple name is typically the file name for the manifest file without its extension. 공용 및 개인 키를 포함 하는 키 쌍을 어셈블리에 대 한 강력한 이름 서명을 만드는 데 사용 합니다.The key pair includes a public and private key, used to create strong-name signatures for assemblies.

공용 언어 런타임에서 지 원하는 모든 컴파일러 중첩된 된 클래스의 단순한 이름 내보내고 리플렉션에서 다음 규칙에 따라 쿼리를 수행 하면 잘못 된 이름을 생성 합니다.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.

DelimiterDelimiter 의미Meaning
백슬래시(\)Backslash (\) 이스케이프 문자입니다.Escape character.
쉼표(,)Comma (,) 어셈블리 이름을 앞에 옵니다.Precedes the assembly name.
더하기 기호(+)Plus sign (+) 중첩된 된 클래스 앞에 옵니다.Precedes a nested class.

예를 들어, 클래스에 대 한 정규화 된 이름을이 같습니다.For example, the fully qualified name for a class might look like this:

ContainingClass + NestedClass MyAssemblyContainingClass+NestedClass,MyAssembly

"+ +"는 "\+\+"가 되 고 "\"는 "\\"이 됩니다.A "++" becomes "\+\+", and a "\" becomes "\\".

이 정규화 된 이름은 유지 되 고 나중에 Type를 로드 하는 데 사용할 수 있습니다.This qualified name can be persisted and later used to load the Type. Type를 검색 하 고 로드 하려면 형식 이름만 사용 하거나 정규화 된 어셈블리 형식 이름을 사용 하 여 GetType를 사용 합니다.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. 형식 이름을 사용 하는 GetType 호출자의 어셈블리에서 Type를 찾은 다음 시스템 어셈블리에만 표시 됩니다.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. 어셈블리의 정규화 된 형식 이름으로 GetType는 모든 어셈블리에서 Type를 찾습니다.GetType with the assembly qualified type name will look for the Type in any assembly.

완전히 지정 된 AssemblyName에는 이름, 문화권, 공개 키, 공개 키 토큰, 주 버전, 부 버전, 빌드 번호 및 수정 번호 매개 변수가 있어야 합니다.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. 마지막 4 개는 Version 형식으로 패키지 됩니다.The last four are packaged in the Version type.

단순한 이름을 만들려면 매개 변수가 없는 생성자를 사용 하 여 AssemblyName 개체를 만들고 Name를 설정 합니다.To create a simple name, create an AssemblyName object using the parameterless constructor and set the Name. 다른 속성은 선택 사항입니다.The other properties are optional.

완전 한 강력한 이름을 만들려면 매개 변수가 없는 생성자를 사용 하 여 AssemblyName 개체를 만들고 Name를 설정 하 고 KeyPair합니다.To create a full strong name, create an AssemblyName object using the parameterless constructor and set the Name and KeyPair. 다른 속성은 선택 사항입니다.The other properties are optional. SetPublicKeySetPublicKeyToken를 사용 하 여 공개 키와 강력한 이름을 설정 합니다.Use SetPublicKey and SetPublicKeyToken to set the public key and the strong name. 강력한 이름 서명은 항상 SHA1 해시 알고리즘을 사용 합니다.The strong name signing always uses the SHA1 hash algorithm.

이름을 제대로 생성을 위해 다음 속성을 사용 합니다.To ensure that the names are constructed correctly, use the following properties:

Gacutil.exe (전역 어셈블리 캐시 도구)/l 옵션을 사용 하 여 이름을 가져올 수도 있습니다.You can also get the name by using the /l option with the Gacutil.exe (Global Assembly Cache Tool)

부분적으로 지정 된 강력한 이름의 경우 매개 변수가 없는 생성자를 사용 하 여 AssemblyName 개체를 만들고 이름 및 공개 키를 설정 합니다.For a partially specified strong name, create an AssemblyName object using the parameterless constructor and set the name and public key. 이러한 AssemblyName을 사용 하 여 만든 어셈블리는 나중에 어셈블리 링커 (Al.exe)를 사용 하 여 서명할 수 있습니다.An assembly created using such an AssemblyName can be signed later using the Assembly Linker (Al.exe).

공개 키와 일치 하지 않는 값을 가진 KeyPair을 지정할 수 있습니다.It is possible to specify a public key and a KeyPair with inconsistent values. 이 개발자 시나리오에서 유용할 수 있습니다.This can be useful in developer scenarios. 이 경우 GetPublicKey으로 검색 된 공개 키는 올바른 공개 키를 지정 하 고 KeyPair는 개발 중에 사용 되는 공개 키와 개인 키를 지정 합니다.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. 런타임이 KeyPair와 공개 키가 일치 하지 않는 것을 감지 하면 레지스트리에서 공개 키와 일치 하는 올바른 키를 찾습니다.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.

AssemblyName 표시 이름의 형식은 다음과 같이 이름으로 시작 하는 쉼표로 구분 된 유니코드 문자열입니다.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'

Name는 어셈블리의 텍스트 이름입니다.Name is the textual name of the assembly. CultureInfo RFC1766 형식으로 정의 된 문화권입니다.CultureInfo is the RFC1766-format-defined culture. Major, Minor, BuildRevision는 어셈블리의 주 버전, 부 버전, 빌드 번호 및 수정 번호입니다.Major, Minor, Build, and Revision are the major version, minor version, build number, and revision number of the assembly. StrongName는 SHA-1 해싱 알고리즘 및 SetPublicKey지정 된 공개 키를 사용 하 여 생성 된 공개 키의 해시 값에 대 한 16 진수로 인코딩된 하위 64 비트입니다.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. PublicKeyTokenSetPublicKey에서 지정 하는 16 진수로 인코딩된 공개 키입니다.PublicKeyToken is the hexadecimal-encoded public key specified by SetPublicKey.

최소에서 진행 되 고 두 개의 16 진수 문자, 이진 개체의 각 바이트 변환으로 정의 16 진수 인코딩을 가장 중요 한 바이트입니다.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. 필요에 따라 추가 표시 값이 추가 됩니다.Additional display values will be added as deemed necessary.

전체 공개 키를 알 경우 PublicKey는 강력한 이름에 대 한 대체 될 수 있습니다.If the full public key is known, then PublicKey may be substituted for StrongName.

또한 먼저 제공 되어야 하는 Name를 제외 하 고 매개 변수의 어휘 순서는 중요 하지 않습니다.Also note that except for Name, which must come first, the lexical order of parameters is unimportant. 그러나 명시적으로 설정 되지 않은 모든 매개 변수 (Version, Culture, StrongName 또는 PublicKey)는 생략 된 것으로 간주 되며, AssemblyName은 부분으로 간주 됩니다.However, any parameter (Version, Culture, StrongName or PublicKey) not specifically set is considered to be omitted, and the AssemblyName is then considered partial. 부분 정보를 지정 하는 경우 위에서 설명한 순서 대로 이름 매개 변수를 지정 합니다.When specifying partial information, Name parameters must be specified in the order described above.

표시 이름을 제공할 때 규칙 StrongName =null 또는 PublicKey= null는 단순한 이름의 어셈블리에 대 한 바인딩 및 일치가 필요 함을 나타냅니다.When supplying a display name, the convention StrongName =null or PublicKey= null indicates that binding and matching against a simply named assembly is required. 또한 Culture= "" 규칙 (빈 문자열을 나타내는 큰따옴표)은 기본 문화권과의 일치를 나타냅니다.Additionally, the convention Culture= "" (double quote representing an empty string) indicates matching against the default culture.

다음 예제에서는 기본 문화권이 있는 단순한 이름의 어셈블리에 대 한 AssemblyName를 보여 줍니다.The following example shows an AssemblyName for a simply named assembly with default culture.

ExampleAssembly, Culture=""  

다음 예제에서는 문화권 "en"을 사용하는 강력한 이름의 어셈블리에 대한 완전히 지정된 참조를 보여 줍니다.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  

생성자

AssemblyName()

AssemblyName 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AssemblyName class.

AssemblyName(String)

지정된 표시 이름을 사용하여 AssemblyName 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AssemblyName class with the specified display name.

속성

CodeBase

어셈블리의 위치를 URL로 가져오거나 설정합니다.Gets or sets the location of the assembly as a URL.

ContentType

어셈블리에 포함 된 콘텐츠의 형식을 나타내는 값을 가져오거나 설정 합니다.Gets or sets a value that indicates what type of content the assembly contains.

CultureInfo

어셈블리에서 지 원하는 문화권을 가져오거나 설정 합니다.Gets or sets the culture supported by the assembly.

CultureName

어셈블리와 연결 된 문화권의 이름을 가져오거나 설정 합니다.Gets or sets the name of the culture associated with the assembly.

EscapedCodeBase

코드베이스를 나타내는 URI를 가져옵니다(이스케이프 문자 포함).Gets the URI, including escape characters, that represents the codebase.

Flags

어셈블리의 특성을 가져오거나 설정합니다.Gets or sets the attributes of the assembly.

FullName

표시 이름이라고도 하는 어셈블리의 전체 이름을 가져옵니다.Gets the full name of the assembly, also known as the display name.

HashAlgorithm

어셈블리 매니페스트에 사용 되는 해시 알고리즘을 가져오거나 설정 합니다.Gets or sets the hash algorithm used by the assembly manifest.

KeyPair

어셈블리에 대한 강력한 이름 서명을 만드는 데 사용되는 퍼블릭 및 프라이빗 암호화 키 쌍을 가져오거나 설정합니다.Gets or sets the public and private cryptographic key pair that is used to create a strong name signature for the assembly.

Name

어셈블리의 단순한 이름을 가져오거나 설정합니다.Gets or sets the simple name of the assembly. 어셈블리의 단순한 이름은 대개 어셈블리의 매니페스트 파일 이름에서 확장명을 제외한 것입니다.This is usually, but not necessarily, the file name of the manifest file of the assembly, minus its extension.

ProcessorArchitecture

실행 파일의 대상이 되는 플랫폼의 프로세서 및 워드 당 비트 수를 식별하는 값을 가져오거나 설정합니다.Gets or sets a value that identifies the processor and bits-per-word of the platform targeted by an executable.

Version

주, 부를 가져오거나 설정 합니다. 빌드 버전 및 어셈블리의 수정 번호입니다.Gets or sets the major, minor, build, and revision numbers of the assembly.

VersionCompatibility

이 어셈블리와 다른 어셈블리의 호환성과 관련된 정보를 가져오거나 설정합니다.Gets or sets the information related to the assembly's compatibility with other assemblies.

메서드

Clone()

AssemblyName 개체의 복사본을 만듭니다.Makes a copy of this AssemblyName object.

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetAssemblyName(String)

지정된 파일의 AssemblyName을 가져옵니다.Gets the AssemblyName for a given file.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetObjectData(SerializationInfo, StreamingContext)

AssemblyName의 인스턴스를 다시 만드는 데 필요한 모든 데이터가 포함된 serialization 정보를 가져옵니다.Gets serialization information with all the data needed to recreate an instance of this AssemblyName.

GetPublicKey()

어셈블리의 공개 키를 가져옵니다.Gets the public key of the assembly.

GetPublicKeyToken()

애플리케이션이나 어셈블리 서명에 사용된 공개 키 SHA-1 해시의 마지막 8자인 공개 키 토큰을 가져옵니다.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()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnDeserialization(Object)

ISerializable 인터페이스를 구현하고 역직렬화가 완료되면 역직렬화 이벤트에 의해 콜백됩니다.Implements the ISerializable interface and is called back by the deserialization event when deserialization is complete.

ReferenceMatchesDefinition(AssemblyName, AssemblyName)

두 어셈블리 이름이 같은지 여부를 나타내는 값을 반환합니다.Returns a value indicating whether two assembly names are the same. 비교는 단순 어셈블리 이름을 기반으로 합니다.The comparison is based on the simple assembly names.

SetPublicKey(Byte[])

어셈블리를 식별하는 공개 키를 설정합니다.Sets the public key identifying the assembly.

SetPublicKeyToken(Byte[])

애플리케이션이나 어셈블리 서명에 사용된 공개 키 SHA-1 해시의 마지막 8바이트인 공개 키 토큰을 설정합니다.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()

표시 이름이라고도 하는 어셈블리의 전체 이름을 반환합니다.Returns the full name of the assembly, also known as the display name.

명시적 인터페이스 구현

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

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

_AssemblyName.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can then be used to get the type information for an interface.

_AssemblyName.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 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)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

적용 대상

추가 정보