AssemblyName Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Opisuje unikatową tożsamość zestawu w całości.
public ref class AssemblyName sealed
public ref class AssemblyName sealed : ICloneable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public ref class AssemblyName sealed : ICloneable, System::Runtime::InteropServices::_AssemblyName, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public sealed class AssemblyName
public sealed class AssemblyName : ICloneable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public sealed class AssemblyName : ICloneable, System.Runtime.InteropServices._AssemblyName, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AssemblyName : ICloneable, System.Runtime.InteropServices._AssemblyName, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type AssemblyName = class
type AssemblyName = class
interface ICloneable
interface IDeserializationCallback
interface ISerializable
type AssemblyName = class
interface ICloneable
interface ISerializable
interface IDeserializationCallback
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type AssemblyName = class
interface _AssemblyName
interface ICloneable
interface ISerializable
interface IDeserializationCallback
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AssemblyName = class
interface _AssemblyName
interface ICloneable
interface ISerializable
interface IDeserializationCallback
Public NotInheritable Class AssemblyName
Public NotInheritable Class AssemblyName
Implements ICloneable, IDeserializationCallback, ISerializable
Public NotInheritable Class AssemblyName
Implements _AssemblyName, ICloneable, IDeserializationCallback, ISerializable
- Dziedziczenie
-
AssemblyName
- Atrybuty
- Implementuje
Przykłady
W tym przykładzie pokazano, jak używać różnych klas odbicia do analizowania metadanych zawartych w zestawie.
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()
'
Uwagi
Obiekt AssemblyName zawiera informacje o zestawie, którego można użyć do powiązania z tym zestawem. Tożsamość zestawu składa się z następujących elementów:
Prosta nazwa.
Numer wersji.
Para kluczy kryptograficznych.
Obsługiwana kultura.
Prosta nazwa to zazwyczaj nazwa pliku manifestu bez jego rozszerzenia. Para kluczy zawiera klucz publiczny i prywatny używany do tworzenia podpisów silnych nazw dla zestawów.
Wszystkie kompilatory, które obsługują aparat plików wykonywalnych języka wspólnego, w trakcie wykonania wyemitują prostą nazwę klasy zagnieżdżonej, a odbicie podczas kwerendy stworzy zniekształcone nazwy zgodnie z następującymi konwencjami.
Ogranicznik | Znaczenie |
---|---|
Ukośnik odwrotny (\) | Znak ucieczki. |
Przecinek (,) | Poprzedza nazwę zestawu. |
Znak plus (+) | Poprzedza klasę zagnieżdżoną. |
Na przykład w pełni kwalifikowana nazwa klasy może wyglądać następująco:
Zawiera klasęClass+NestedClass,MyAssembly
Znak "++" staje się "\+\+", a znak "\" staje się "\\".
Ta kwalifikowana nazwa może być utrwalana, a później używana do załadowania elementu Type. Aby wyszukać i załadować element Type, użyj GetType polecenia tylko z nazwą typu lub nazwą kwalifikowanego typu zestawu. GetType z nazwą typu będzie szukać Type tylko w zestawie obiektu wywołującego, a następnie w zestawie systemowym. GetType z kwalifikowaną nazwą typu zestawu będzie szukać Type w dowolnym zestawie.
W pełni określona AssemblyName musi mieć nazwę, kulturę, klucz publiczny lub token klucza publicznego, wersję główną, wersję pomocniczą, numer kompilacji i parametry numeru poprawki. Ostatnie cztery są pakowane w typie Version .
Aby utworzyć prostą nazwę, utwórz AssemblyName obiekt przy użyciu konstruktora bez parametrów i ustaw wartość Name. Pozostałe właściwości są opcjonalne.
Aby utworzyć pełną silną AssemblyName nazwę, utwórz obiekt przy użyciu konstruktora bez parametrów i ustaw parametr Name i KeyPair. Pozostałe właściwości są opcjonalne. Użyj SetPublicKey i SetPublicKeyToken , aby ustawić klucz publiczny i silną nazwę. Silne podpisywanie nazw zawsze używa algorytmu skrótu SHA1 .
Aby upewnić się, że nazwy są poprawnie skonstruowane, użyj następujących właściwości:
Nazwę można również uzyskać przy użyciu /l
opcji zGacutil.exe (globalne narzędzie pamięci podręcznej zestawów)
W przypadku częściowo określonej silnej nazwy utwórz AssemblyName obiekt przy użyciu konstruktora bez parametrów i ustaw nazwę i klucz publiczny. Zestaw utworzony przy użyciu takiego elementu AssemblyName można później podpisać przy użyciu konsolidatora zestawów (Al.exe).
Można określić klucz publiczny i KeyPair z niespójnymi wartościami. Może to być przydatne w scenariuszach dla deweloperów. W tym przypadku klucz publiczny pobrany z GetPublicKey określa prawidłowy klucz publiczny, podczas gdy KeyPair określa klucze publiczne i prywatne używane podczas programowania. Gdy środowisko uruchomieniowe wykryje niezgodność między kluczem KeyPair publicznym a kluczem publicznym, wyszukuje w rejestrze prawidłowy klucz zgodny z kluczem publicznym.
Format nazwy wyświetlanej obiektu AssemblyName to rozdzielany przecinkami ciąg Unicode rozpoczynający się od nazwy w następujący sposób:
Name <,Culture = CultureInfo> <,Version = Major.Minor.Build.Revision> <, StrongName> <,PublicKeyToken> '\0'
Name
jest tekstową nazwą zestawu. CultureInfo
jest kulturą zdefiniowaną w formacie RFC1766. Major
, Minor
, Build
i Revision
to wersja główna, wersja pomocnicza, numer kompilacji i numer poprawki zestawu. StrongName
jest algorytmem wyznaczania wartości skrótu szesnastkowej o niskiej kolejności 64 bitów wartości skrótu klucza publicznego wygenerowanego przy użyciu algorytmu wyznaczania wartości skrótu SHA-1 i klucza publicznego określonego przez SetPublicKey. PublicKeyToken
jest kluczem publicznym zakodowanym szesnastkowym określonym przez SetPublicKeyprogram .
Kodowanie szesnastkowe jest definiowane jako konwersja każdego bajtu obiektu binarnego na dwa znaki szesnastkowe, przechodząc od najmniejszych do najbardziej znaczących bajtów. Dodatkowe wartości wyświetlania zostaną dodane zgodnie z potrzebami.
Jeśli jest znany pełny klucz publiczny, wartość PublicKey może zostać zastąpiona wartością StrongName.
Należy również pamiętać, że z wyjątkiem Name
parametrów , które muszą przyjść najpierw, kolejność leksykalna parametrów jest nieważna. Jednak każdy parametr (Version
, Culture
lub StrongName
PublicKey
) nie jest specjalnie ustawiony jest uważany za pominięty, a AssemblyName następnie jest uważany za częściowy. Podczas określania częściowych informacji parametry nazwy muszą być określone w kolejności opisanej powyżej.
Podczas podawania nazwy wyświetlanej konwencja StrongName =null
lub PublicKey= null
wskazuje, że wymagane jest powiązanie i dopasowanie względem po prostu nazwanego zestawu. Ponadto konwencja Culture= ""
(podwójny cudzysłów reprezentujący pusty ciąg) wskazuje dopasowanie do kultury domyślnej.
W poniższym przykładzie pokazano element AssemblyName dla po prostu nazwanego zestawu z kulturą domyślną.
ExampleAssembly, Culture=""
W poniższym przykładzie przedstawiono w pełni określone odwołanie dla silnie nazwanego zestawu z kulturą "en".
ExampleAssembly, Version=1.0.0.0, Culture=en, PublicKeyToken=a5d015c7d5a0b012
Konstruktory
AssemblyName() |
Inicjuje nowe wystąpienie klasy AssemblyName. |
AssemblyName(String) |
Inicjuje AssemblyName nowe wystąpienie klasy o określonej nazwie wyświetlanej. |
Właściwości
CodeBase |
Przestarzałe.
Pobiera lub ustawia lokalizację zestawu jako adres URL. |
ContentType |
Pobiera lub ustawia wartość wskazującą typ zawartości, którą zawiera zestaw. |
CultureInfo |
Pobiera lub ustawia kulturę obsługiwaną przez zestaw. |
CultureName |
Pobiera lub ustawia nazwę kultury skojarzonej z zestawem. |
EscapedCodeBase |
Przestarzałe.
Pobiera identyfikator URI, w tym znaki ucieczki, które reprezentują bazę kodu. |
Flags |
Pobiera lub ustawia atrybuty zestawu. |
FullName |
Pobiera pełną nazwę zestawu, znaną również jako nazwa wyświetlana. |
HashAlgorithm |
Przestarzałe.
Pobiera lub ustawia algorytm wyznaczania wartości skrótu używany przez manifest zestawu. |
KeyPair |
Przestarzałe.
Pobiera lub ustawia publiczną i prywatną parę kluczy kryptograficznych, która służy do tworzenia silnej sygnatury nazwy dla zestawu. |
Name |
Pobiera lub ustawia prostą nazwę zestawu. Zwykle jest to, ale niekoniecznie, nazwa pliku manifestu zestawu, minus jego rozszerzenie. |
ProcessorArchitecture |
Przestarzałe.
Pobiera lub ustawia wartość identyfikującą procesor i bity na słowo platformy objętej plikiem wykonywalnym. |
Version |
Pobiera lub ustawia główne, pomocnicze, kompilacji i numery poprawek zestawu. |
VersionCompatibility |
Przestarzałe.
Pobiera lub ustawia informacje związane ze zgodnością zestawu z innymi zestawami. |
Metody
Clone() |
Tworzy kopię tego AssemblyName obiektu. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetAssemblyName(String) |
Pobiera element AssemblyName dla danego pliku. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
Pobiera informacje o serializacji ze wszystkimi danymi potrzebnymi do ponownego utworzenia wystąpienia tego |
GetPublicKey() |
Pobiera klucz publiczny zestawu. |
GetPublicKeyToken() |
Pobiera token klucza publicznego, który jest ostatnim 8 bajtami skrótu SHA-1 klucza publicznego, w którym jest podpisana aplikacja lub zestaw. |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnDeserialization(Object) |
Implementuje interfejs i jest wywoływany ISerializable z powrotem przez zdarzenie deserializacji po zakończeniu deserializacji. |
ReferenceMatchesDefinition(AssemblyName, AssemblyName) |
Zwraca wartość wskazującą, czy dwie nazwy zestawów są takie same. Porównanie opiera się na prostych nazwach zestawów. |
SetPublicKey(Byte[]) |
Ustawia klucz publiczny identyfikujący zestaw. |
SetPublicKeyToken(Byte[]) |
Ustawia token klucza publicznego, który jest ostatnim 8 bajtami skrótu SHA-1 klucza publicznego, w którym jest podpisana aplikacja lub zestaw. |
ToString() |
Zwraca pełną nazwę zestawu, znaną również jako nazwę wyświetlaną. |
Jawne implementacje interfejsu
_AssemblyName.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. |
_AssemblyName.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, których następnie można użyć do uzyskania informacji o typie interfejsu. |
_AssemblyName.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). |
_AssemblyName.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. |