Прочитать на английском

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


Assembly Класс

Определение

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

C#
public abstract class Assembly
C#
public abstract class Assembly : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.ISerializable
C#
public abstract class Assembly : System.Reflection.ICustomAttributeProvider
C#
[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
C#
[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
C#
[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
Наследование
Assembly
Производный
Атрибуты
Реализации

Примеры

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

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

C#
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()
 */

Комментарии

Используйте класс 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.

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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

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

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