Поделиться через


Assembly Класс

Определение

Представляет сборку, которая является повторно используемым, версиям и самоображающим стандартным блоком приложения среды CLR.

public ref class Assembly abstract
public ref class Assembly abstract : System::Reflection::ICustomAttributeProvider, System::Runtime::Serialization::ISerializable
public ref class Assembly abstract : System::Reflection::ICustomAttributeProvider
public ref class Assembly : System::Reflection::ICustomAttributeProvider, System::Runtime::InteropServices::_Assembly, System::Runtime::Serialization::ISerializable, System::Security::IEvidenceFactory
public ref class Assembly abstract : System::Reflection::ICustomAttributeProvider, System::Runtime::InteropServices::_Assembly, System::Runtime::Serialization::ISerializable, System::Security::IEvidenceFactory
public abstract class Assembly
public abstract class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable
public abstract class Assembly : System.Reflection.ICustomAttributeProvider
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._Assembly, System.Runtime.Serialization.ISerializable, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._Assembly, System.Runtime.Serialization.ISerializable, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._Assembly, System.Runtime.Serialization.ISerializable, System.Security.IEvidenceFactory
type Assembly = class
type Assembly = class
    interface ICustomAttributeProvider
    interface ISerializable
type Assembly = class
    interface ICustomAttributeProvider
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type Assembly = class
    interface _Assembly
    interface IEvidenceFactory
    interface ICustomAttributeProvider
    interface ISerializable
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Assembly = class
    interface _Assembly
    interface IEvidenceFactory
    interface ICustomAttributeProvider
    interface ISerializable
Public MustInherit Class Assembly
Public MustInherit Class Assembly
Implements ICustomAttributeProvider, ISerializable
Public MustInherit Class Assembly
Implements ICustomAttributeProvider
Public Class Assembly
Implements _Assembly, ICustomAttributeProvider, IEvidenceFactory, ISerializable
Public MustInherit Class Assembly
Implements _Assembly, ICustomAttributeProvider, IEvidenceFactory, ISerializable
Наследование
Assembly
Производный
Атрибуты
Реализации

Примеры

В следующем примере кода показано, как получить выполняемую в данный момент сборку, создать экземпляр типа, содержащегося в этой сборке, и вызвать один из методов типа с поздней привязкой. В этом примере кода определяется класс с именем Exampleс методом с именем SampleMethod. Конструктор класса принимает целое число, которое используется для вычисления возвращаемого значения метода.

В примере кода также демонстрируется использование метода GetName для получения объекта AssemblyName, который можно использовать для анализа полного имени сборки. В примере отображается номер версии сборки, свойство CodeBase и свойство EntryPoint.

using namespace System;
using namespace System::Reflection;
using namespace System::Security::Permissions;

[assembly:AssemblyVersionAttribute("1.0.2000.0")];

public ref class Example
{
private: 
    int factor;

public:
    Example(int f)
    {
        factor = f;
    }

    int SampleMethod(int x) 
    { 
        Console::WriteLine("\nExample->SampleMethod({0}) executes.", x);
        return x * factor;
    }
};

void main()
{
    Assembly^ assem = Example::typeid->Assembly;

    Console::WriteLine("Assembly Full Name:");
    Console::WriteLine(assem->FullName);

    // The AssemblyName type can be used to parse the full name.
    AssemblyName^ assemName = assem->GetName();
    Console::WriteLine("\nName: {0}", assemName->Name);
    Console::WriteLine("Version: {0}.{1}", 
        assemName->Version->Major, assemName->Version->Minor);

    Console::WriteLine("\nAssembly CodeBase:");
    Console::WriteLine(assem->CodeBase);

    // Create an object from the assembly, passing in the correct number and
    // type of arguments for the constructor.
    Object^ o = assem->CreateInstance("Example", false, 
        BindingFlags::ExactBinding, 
        nullptr, gcnew array<Object^> { 2 }, nullptr, nullptr);

    // Make a late-bound call to an instance method of the object.    
    MethodInfo^ m = assem->GetType("Example")->GetMethod("SampleMethod");
    Object^ ret = m->Invoke(o, gcnew array<Object^> { 42 });
    Console::WriteLine("SampleMethod returned {0}.", ret);

    Console::WriteLine("\nAssembly entry point:");
    Console::WriteLine(assem->EntryPoint);
}

/* This code example produces output similar to the following:

Assembly Full Name:
source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null

Name: source
Version: 1.0

Assembly CodeBase:
file:///C:/sdtree/AssemblyClass/cpp/source.exe

Example->SampleMethod(42) executes.
SampleMethod returned 84.

Assembly entry point:
UInt32 _mainCRTStartup()
 */
using System;
using System.Reflection;
using System.Security.Permissions;

[assembly:AssemblyVersionAttribute("1.0.2000.0")]

public class Example
{
    private int factor;
    public Example(int f)
    {
        factor = f;
    }

    public int SampleMethod(int x)
    {
        Console.WriteLine("\nExample.SampleMethod({0}) executes.", x);
        return x * factor;
    }

    public static void Main()
    {
        Assembly assem = typeof(Example).Assembly;

        Console.WriteLine("Assembly Full Name:");
        Console.WriteLine(assem.FullName);

        // The AssemblyName type can be used to parse the full name.
        AssemblyName assemName = assem.GetName();
        Console.WriteLine("\nName: {0}", assemName.Name);
        Console.WriteLine("Version: {0}.{1}",
            assemName.Version.Major, assemName.Version.Minor);

        Console.WriteLine("\nAssembly CodeBase:");
        Console.WriteLine(assem.CodeBase);

        // Create an object from the assembly, passing in the correct number
        // and type of arguments for the constructor.
        Object o = assem.CreateInstance("Example", false,
            BindingFlags.ExactBinding,
            null, new Object[] { 2 }, null, null);

        // Make a late-bound call to an instance method of the object.
        MethodInfo m = assem.GetType("Example").GetMethod("SampleMethod");
        Object ret = m.Invoke(o, new Object[] { 42 });
        Console.WriteLine("SampleMethod returned {0}.", ret);

        Console.WriteLine("\nAssembly entry point:");
        Console.WriteLine(assem.EntryPoint);
    }
}

/* This code example produces output similar to the following:

Assembly Full Name:
source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null

Name: source
Version: 1.0

Assembly CodeBase:
file:///C:/sdtree/AssemblyClass/cs/source.exe

Example.SampleMethod(42) executes.
SampleMethod returned 84.

Assembly entry point:
Void Main()
 */
Imports System.Reflection
Imports System.Security.Permissions

<assembly: AssemblyVersionAttribute("1.0.2000.0")>

Public Class Example
    Private factor As Integer
    
    Public Sub New(ByVal f As Integer) 
        factor = f
    End Sub 
    
    Public Function SampleMethod(ByVal x As Integer) As Integer 
        Console.WriteLine(vbCrLf & "Example.SampleMethod({0}) executes.", x)
        Return x * factor
    End Function 
    
    Public Shared Sub Main() 
        Dim assem As Assembly = GetType(Example).Assembly
        
        Console.WriteLine("Assembly Full Name:")
        Console.WriteLine(assem.FullName)
        
        ' The AssemblyName type can be used to parse the full name.
        Dim assemName As AssemblyName = assem.GetName()
        Console.WriteLine(vbLf + "Name: {0}", assemName.Name)
        Console.WriteLine("Version: {0}.{1}", assemName.Version.Major, _
            assemName.Version.Minor)
        
        Console.WriteLine(vbLf + "Assembly CodeBase:")
        Console.WriteLine(assem.CodeBase)
        
        ' Create an object from the assembly, passing in the correct number
        ' and type of arguments for the constructor.
        Dim o As Object = assem.CreateInstance("Example", False, _
            BindingFlags.ExactBinding, Nothing, _
            New Object() { 2 }, Nothing, Nothing)
        
        ' Make a late-bound call to an instance method of the object.    
        Dim m As MethodInfo = assem.GetType("Example").GetMethod("SampleMethod")
        Dim ret As Object = m.Invoke(o, New Object() { 42 })
        Console.WriteLine("SampleMethod returned {0}.", ret)
        
        Console.WriteLine(vbCrLf & "Assembly entry point:")
        Console.WriteLine(assem.EntryPoint)
    
    End Sub 
End Class 

' This code example produces output similar to the following:
'
'Assembly Full Name:
'source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null
'
'Name: source
'Version: 1.0
'
'Assembly CodeBase:
'file:///C:/sdtree/AssemblyClass/vb/source.exe
'
'Example.SampleMethod(42) executes.
'SampleMethod returned 84.
'
'Assembly entry point:
'Void Main()
'

Комментарии

Используйте класс Assembly для загрузки сборок, изучения метаданных и составных частей сборок, обнаружения типов, содержащихся в сборках, а также для создания экземпляров этих типов.

Чтобы получить массив объектов Assembly, представляющих сборки, загруженные в домен приложения (например, домен приложения по умолчанию простого проекта), используйте метод AppDomain.GetAssemblies.

Для динамической загрузки сборок класс Assembly предоставляет следующие статические методы (Shared методы в Visual Basic). Сборки загружаются в домен приложения, где происходит операция загрузки.

  • Рекомендуемый способ загрузки сборок — использовать метод Load, который определяет сборку, которую нужно загрузить с помощью отображаемого имени (например, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089). Поиск сборки следует правилам, описанным в разделе Как среда выполнения находит сборки.

  • Методы ReflectionOnlyLoad и ReflectionOnlyLoadFrom позволяют загружать сборку для отражения, но не для выполнения. Например, сборка, предназначенная для 64-разрядной платформы, может быть проверена кодом, выполняющимся на 32-разрядной платформе.

  • Методы LoadFile и LoadFrom предоставляются для редких сценариев, в которых сборка должна быть определена по пути.

Чтобы получить объект Assembly для выполняемой сборки, используйте метод GetExecutingAssembly.

Многие члены класса Assembly предоставляют сведения о сборке. Например:

  • Метод GetName возвращает объект AssemblyName, предоставляющий доступ к частям отображаемого имени сборки.

  • Метод GetCustomAttributes перечисляет атрибуты, примененные к сборке.

  • Метод GetFiles предоставляет доступ к файлам в манифесте сборки.

  • Метод GetManifestResourceNames предоставляет имена ресурсов в манифесте сборки.

Метод GetTypes перечисляет все типы в сборке. Метод GetExportedTypes перечисляет типы, видимые вызывающим пользователям за пределами сборки. Метод GetType можно использовать для поиска определенного типа в сборке. Метод CreateInstance можно использовать для поиска и создания экземпляров типов в сборке.

Дополнительные сведения о сборках см. в разделе "Домены приложений и сборки" в разделе Домены приложений.

Конструкторы

Assembly()

Инициализирует новый экземпляр класса Assembly.

Свойства

CodeBase
Устаревшие..
Устаревшие..

Получает расположение сборки, как указано первоначально, например, в объекте AssemblyName.

CustomAttributes

Возвращает коллекцию, содержащую пользовательские атрибуты этой сборки.

DefinedTypes

Возвращает коллекцию типов, определенных в этой сборке.

EntryPoint

Возвращает точку входа этой сборки.

EscapedCodeBase
Устаревшие..
Устаревшие..

Получает универсальный код ресурса (URI), включая escape-символы, представляющий базу кода.

Evidence

Получает доказательства для этой сборки.

ExportedTypes

Возвращает коллекцию общедоступных типов, определенных в этой сборке, видимых вне сборки.

FullName

Возвращает отображаемое имя сборки.

GlobalAssemblyCache
Устаревшие..

Возвращает значение, указывающее, была ли сборка загружена из глобального кэша сборок (только .NET Framework).

HostContext

Возвращает контекст узла, с которым была загружена сборка.

ImageRuntimeVersion

Возвращает строку, представляющую версию среды CLR, сохраненной в файле, содержащего манифест.

IsCollectible

Возвращает значение, указывающее, находится ли эта сборка в сборной AssemblyLoadContext.

IsDynamic

Возвращает значение, указывающее, была ли текущая сборка создана динамически в текущем процессе с помощью отражания.

IsFullyTrusted

Возвращает значение, указывающее, загружена ли текущая сборка с полным доверием.

Location

Возвращает полный путь или расположение UNC загруженного файла, содержащего манифест.

ManifestModule

Возвращает модуль, содержащий манифест для текущей сборки.

Modules

Возвращает коллекцию, содержащую модули в этой сборке.

PermissionSet

Возвращает набор предоставления текущей сборки.

ReflectionOnly

Возвращает значение Boolean, указывающее, загружена ли эта сборка в контекст только отражения.

SecurityRuleSet

Возвращает значение, указывающее, какой набор правил безопасности применяет среда CLR для этой сборки.

Методы

CreateInstance(String)

Находит указанный тип из этой сборки и создает экземпляр его с помощью активатора системы, используя поиск с учетом регистра.

CreateInstance(String, Boolean)

Находит указанный тип из этой сборки и создает экземпляр его с помощью активатора системы с необязательным поиском с учетом регистра.

CreateInstance(String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Находит указанный тип из этой сборки и создает экземпляр с помощью системного активатора, с необязательным поиском с учетом регистра и указанным языком и региональными параметрами, аргументами и атрибутами привязки и активации.

CreateQualifiedName(String, String)

Создает имя типа, заданного отображаемым именем сборки.

Equals(Object)

Определяет, равны ли эта сборка и указанный объект.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetAssembly(Type)

Возвращает загруженную в данный момент сборку, в которой определен указанный тип.

GetCallingAssembly()

Возвращает Assembly метода, вызывающего текущий выполняемый метод.

GetCustomAttributes(Boolean)

Возвращает все настраиваемые атрибуты для этой сборки.

GetCustomAttributes(Type, Boolean)

Возвращает настраиваемые атрибуты для этой сборки, как указано по типу.

GetCustomAttributesData()

Возвращает сведения об атрибутах, примененных к текущему Assembly, выраженную как объекты CustomAttributeData.

GetEntryAssembly()

Возвращает сборку записи для работающего приложения.

GetExecutingAssembly()

Возвращает сборку, содержащую код, выполняющийся в данный момент.

GetExportedTypes()

Возвращает общедоступные типы, определенные в этой сборке, видимые за пределами сборки.

GetFile(String)

Возвращает FileStream для указанного файла в таблице файлов манифеста этой сборки.

GetFiles()

Возвращает файлы в таблице файлов манифеста сборки.

GetFiles(Boolean)

Возвращает файлы в таблице файлов манифеста сборки, указывая, следует ли включать модули ресурсов.

GetForwardedTypes()

Представляет сборку, которая является повторно используемым, версиям и самоображающим стандартным блоком приложения среды CLR.

GetHashCode()

Возвращает хэш-код для этого экземпляра.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLoadedModules()

Возвращает все загруженные модули, которые входят в эту сборку.

GetLoadedModules(Boolean)

Возвращает все загруженные модули, которые являются частью этой сборки, указывая, следует ли включать модули ресурсов.

GetManifestResourceInfo(String)

Возвращает сведения о том, как был сохранен указанный ресурс.

GetManifestResourceNames()

Возвращает имена всех ресурсов в этой сборке.

GetManifestResourceStream(String)

Загружает указанный ресурс манифеста из этой сборки.

GetManifestResourceStream(Type, String)

Загружает указанный ресурс манифеста, ограниченный пространством имен указанного типа, из этой сборки.

GetModule(String)

Возвращает указанный модуль в этой сборке.

GetModules()

Возвращает все модули, которые являются частью этой сборки.

GetModules(Boolean)

Возвращает все модули, которые являются частью этой сборки, указывая, следует ли включать модули ресурсов.

GetName()

Получает AssemblyName для этой сборки.

GetName(Boolean)

Возвращает AssemblyName для этой сборки, задав базу кода, указанную copiedName.

GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..

Получает сведения сериализации со всеми данными, необходимыми для повторного создания этой сборки.

GetReferencedAssemblies()

Возвращает объекты AssemblyName для всех сборок, на которые ссылается эта сборка.

GetSatelliteAssembly(CultureInfo)

Возвращает вспомогательные сборки для указанного языка и региональных параметров.

GetSatelliteAssembly(CultureInfo, Version)

Возвращает указанную версию вспомогательной сборки для указанного языка и региональных параметров.

GetType()

Представляет сборку, которая является повторно используемым, версиям и самоображающим стандартным блоком приложения среды CLR.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetType(String)

Возвращает объект Type с указанным именем в экземпляре сборки.

GetType(String, Boolean)

Возвращает объект Type с указанным именем в экземпляре сборки и при необходимости создает исключение, если тип не найден.

GetType(String, Boolean, Boolean)

Возвращает объект Type с указанным именем в экземпляре сборки, с параметрами игнорировать регистр и вызывать исключение, если тип не найден.

GetTypes()

Возвращает все типы, определенные в этой сборке.

IsDefined(Type, Boolean)

Указывает, применен ли указанный атрибут к сборке.

Load(AssemblyName)

Загружает сборку с AssemblyName.

Load(AssemblyName, Evidence)
Устаревшие..

Загружает сборку с AssemblyName. Сборка загружается с помощью предоставленного доказательства.

Load(Byte[])

Загружает сборку с общим форматом файлов объектов (COFF), содержащим созданную сборку.

Load(Byte[], Byte[])

Загружает сборку с общим форматом файлов объектов (COFF), содержащим созданную сборку, при необходимости включая символы для сборки.

Load(Byte[], Byte[], Evidence)
Устаревшие..

Загружает сборку с общим форматом файлов объектов (COFF), содержащим созданную сборку, при необходимости включая символы и доказательства для сборки.

Load(Byte[], Byte[], SecurityContextSource)

Загружает сборку с общим форматом файлов объектов (COFF), содержащим созданную сборку, при необходимости включая символы и указывая источник для контекста безопасности.

Load(String)

Загружает сборку с указанным именем.

Load(String, Evidence)
Устаревшие..

Загружает сборку с отображаемым именем и используя предоставленные доказательства.

LoadFile(String)

Загружает содержимое файла сборки по указанному пути.

LoadFile(String, Evidence)
Устаревшие..

Загружает сборку с заданным путем, загружая сборку с помощью предоставленных доказательств.

LoadFrom(String)

Загружает сборку с именем файла или путем.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)
Устаревшие..

Загружает сборку с именем файла или путем, хэш-значением и хэш-алгоритмом.

LoadFrom(String, Evidence)
Устаревшие..

Загружает сборку с именем файла или путем и предоставляет доказательства безопасности.

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Устаревшие..

Загружает сборку с именем файла или путем, доказательством безопасности, хэш-значением и хэш-алгоритмом.

LoadModule(String, Byte[])

Загружает модуль, внутренний в эту сборку, с общим форматом файлов объектов (COFF), содержащим создаваемый модуль или файл ресурса.

LoadModule(String, Byte[], Byte[])

Загружает модуль, внутренний в эту сборку, с общим форматом файлов объектов (COFF), содержащим создаваемый модуль или файл ресурса. Необработанные байты, представляющие символы для модуля, также загружаются.

LoadWithPartialName(String)
Устаревшие..
Устаревшие..
Устаревшие..

Загружает сборку из каталога приложения или из глобального кэша сборок с помощью частичного имени.

LoadWithPartialName(String, Evidence)
Устаревшие..

Загружает сборку из каталога приложения или из глобального кэша сборок с помощью частичного имени. Сборка загружается с помощью предоставленного доказательства.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ReflectionOnlyLoad(Byte[])
Устаревшие..

Загружает сборку из общего формата файлов объектов (COFF), содержащего созданную сборку. Сборка загружается в контекст приложения вызывающего объекта только отражение.

ReflectionOnlyLoad(String)
Устаревшие..

Загружает сборку в контекст только для отражения, учитывая отображаемое имя.

ReflectionOnlyLoadFrom(String)
Устаревшие..

Загружает сборку в контекст только для отражения, учитывая его путь.

SetEntryAssembly(Assembly)

Задает сборку записи приложения указанному объекту сборки.

ToString()

Возвращает полное имя сборки, также известное как отображаемое имя.

UnsafeLoadFrom(String)

Загружает сборку в контекст загрузки, обходя некоторые проверки безопасности.

Операторы

Equality(Assembly, Assembly)

Указывает, равны ли два объекта Assembly.

Inequality(Assembly, Assembly)

Указывает, равны ли два объекта Assembly.

События

ModuleResolve

Происходит, когда загрузчик класса cl language runtime не может разрешить ссылку на внутренний модуль сборки с помощью обычных средств.

Явные реализации интерфейса

_Assembly.GetType()

Возвращает тип текущего экземпляра.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

Возвращает массив всех пользовательских атрибутов, определенных для этого элемента, за исключением именованных атрибутов или пустого массива, если нет пользовательских атрибутов.

ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Возвращает массив пользовательских атрибутов, определенных на этом элементе, определяемый по типу или пустой массив, если пользовательские атрибуты этого типа отсутствуют.

ICustomAttributeProvider.IsDefined(Type, Boolean)

Указывает, определен ли один или несколько экземпляров attributeType для этого элемента.

Методы расширения

GetExportedTypes(Assembly)

Представляет сборку, которая является повторно используемым, версиям и самоображающим стандартным блоком приложения среды CLR.

GetModules(Assembly)

Представляет сборку, которая является повторно используемым, версиям и самоображающим стандартным блоком приложения среды CLR.

GetTypes(Assembly)

Представляет сборку, которая является повторно используемым, версиям и самоображающим стандартным блоком приложения среды CLR.

GetCustomAttribute(Assembly, Type)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанной сборке.

GetCustomAttribute<T>(Assembly)

Извлекает настраиваемый атрибут указанного типа, применяемого к указанной сборке.

GetCustomAttributes(Assembly)

Извлекает коллекцию пользовательских атрибутов, применяемых к указанной сборке.

GetCustomAttributes(Assembly, Type)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанной сборке.

GetCustomAttributes<T>(Assembly)

Извлекает коллекцию настраиваемых атрибутов указанного типа, применяемого к указанной сборке.

IsDefined(Assembly, Type)

Указывает, применяются ли пользовательские атрибуты указанного типа к указанной сборке.

TryGetRawMetadata(Assembly, Byte*, Int32)

Извлекает раздел метаданных сборки для использования с MetadataReader.

Применяется к

Потокобезопасность

Этот тип является потокобезопасной.

См. также раздел