Assembly.Load Метод

Определение

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

Перегрузки

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

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

Load(Byte[], Byte[], Evidence)
Является устаревшей.
Является устаревшей.

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

Load(String, Evidence)
Является устаревшей.
Является устаревшей.

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

Load(AssemblyName, Evidence)
Является устаревшей.
Является устаревшей.

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

Load(Byte[])

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

Load(String)

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

Load(AssemblyName)

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

Load(Byte[], Byte[])

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

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

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

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::SecurityContextSource securityContextSource);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.SecurityContextSource securityContextSource);
static member Load : byte[] * byte[] * System.Security.SecurityContextSource -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityContextSource As SecurityContextSource) As Assembly

Параметры

rawAssembly
Byte[]

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

rawSymbolStore
Byte[]

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

securityContextSource
SecurityContextSource

Источник контекста безопасности.

Возвращаемое значение

Assembly

Загруженная сборка.

Исключения

rawAssembly имеет значение null.

rawAssembly не является допустимой сборкой.

-или-

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

Значение securityContextSource не является одним из значений перечисления.

Комментарии

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

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

Load(Byte[], Byte[], Evidence)

Внимание!

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Внимание!

Теперь этот API является нерекомендуемым.

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

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
[System.Obsolete]
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore, System.Security.Policy.Evidence securityEvidence);
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : byte[] * byte[] * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte(), securityEvidence As Evidence) As Assembly

Параметры

rawAssembly
Byte[]

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

rawSymbolStore
Byte[]

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

securityEvidence
Evidence

Свидетельство для загрузки сборки.

Возвращаемое значение

Assembly

Загруженная сборка.

Атрибуты

Исключения

rawAssembly имеет значение null.

rawAssembly не является допустимой сборкой.

-или-

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

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

securityEvidence не является null. По умолчанию устаревшая политика CAS не включена в платформа .NET Framework 4; если она не включена, securityEvidence должна бытьnull.

Комментарии

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

От свидетельства зависит, предоставляются ли сборке определенные разрешения. Ниже приведены правила объединения доказательств сборки и безопасности:

  • При использовании Load метода без Evidence параметра сборка загружается с свидетельством того, что загрузчик предоставляет.

  • При использовании метода с параметром Load Evidence объединяются фрагменты доказательств. Фрагменты доказательств, предоставленных в качестве аргумента Load метода, заменяют части доказательств, предоставленные загрузчиком.

  • При использовании перегрузки Load метода с параметром Byte[] для загрузки образа COFF доказательства наследуются от вызывающей сборки. Это относится к платформа .NET Framework версии 1.1 с пакетом обновления 1 (SP1) и последующим выпускам.

    Примечание

    В платформа .NET Framework версии 1.0 и в версии 1.1 без пакета обновления 1 (SP1) при использовании Load перегрузки метода с параметром Byte[] для загрузки образа COFF доказательства объединяются. Zone``Site и Url наследуются от вызывающей сборки и Hash StrongName взяты из сборки COFF.

  • При использовании Load метода с параметром Byte[] и Evidence загрузки изображения COFF используются только предоставленные доказательства. Доказательства вызывающей сборки и доказательства изображения COFF игнорируются.

Отражение исполняемых файлов C++ может вызвать BadImageFormatExceptionисключение . Это, скорее всего, вызвано удалением адресов перемещения или .reloc раздела из исполняемого файла компилятором C++. Чтобы сохранить .reloc адрес исполняемого файла C++, укажите /fixed:no при связывании.

При вызове Load метода несколько раз в одной сборке, но с другим доказательством, среда CLR не создает исключение FileLoadException , так как не удается определить равенство и целостность различных спецификаций доказательств. Доказательства того, что в первую очередь успешно, являются доказательствами, которые используются.

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

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

Load(String, Evidence)

Внимание!

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Внимание!

Теперь этот API является нерекомендуемым.

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

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete]
public static System.Reflection.Assembly Load (string assemblyString, System.Security.Policy.Evidence assemblySecurity);
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String, assemblySecurity As Evidence) As Assembly

Параметры

assemblyString
String

Отображаемое имя сборки.

assemblySecurity
Evidence

Свидетельство для загрузки сборки.

Возвращаемое значение

Assembly

Загруженная сборка.

Атрибуты

Исключения

assemblyString имеет значение null.

assemblyString не найден.

assemblyString не является допустимой сборкой.

-или-

В настоящий момент загружена среда CLR версии 2.0 или более поздней версии. Сборка assemblyString была скомпилирована в более поздней версии.

Не удалось загрузить файл, который был найден.

-или-

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

Комментарии

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

От свидетельства зависит, предоставляются ли сборке определенные разрешения. Ниже приведены правила объединения доказательств сборки и безопасности:

  • При использовании Load метода без Evidence параметра сборка загружается с свидетельством того, что загрузчик предоставляет.

  • При использовании метода с параметром Load Evidence объединяются фрагменты доказательств. Фрагменты доказательств, предоставленных в качестве аргумента Load метода, заменяют части доказательств, предоставленные загрузчиком.

  • При использовании перегрузки Load метода с параметром Byte[] для загрузки изображения общего формата файлов объектов (COFF) доказательства наследуются от вызывающей сборки. Это относится к платформа .NET Framework версии 1.1 с пакетом обновления 1 (SP1) и последующим выпускам.

    Примечание

    В платформа .NET Framework версии 1.0 и в версии 1.1 без пакета обновления 1 (SP1) при использовании Load перегрузки метода с параметром Byte[] для загрузки образа COFF доказательства объединяются. Zone``Site и Url наследуются от вызывающей сборки и Hash StrongName взяты из сборки COFF.

  • При использовании Load метода с параметром Byte[] и Evidence загрузки изображения COFF используются только предоставленные доказательства. Свидетельство вызывающей сборки и доказательств изображения COFF игнорируется.

Отражение исполняемых файлов C++ может вызвать BadImageFormatExceptionисключение . Это, скорее всего, вызвано удалением адресов перемещения или .reloc раздела из исполняемого файла компилятором C++. Чтобы сохранить .reloc адрес исполняемого файла C++, укажите /fixed:no при связывании.

Если этот метод вызывается несколько раз в одной сборке, но с другим свидетельством указано, среда CLR не создает исключение FileLoadException , так как не удается определить равенство и целостность различных спецификаций доказательств. Доказательства того, что в первую очередь успешно, являются доказательствами, которые используются.

В платформа .NET Framework версии 2.0 архитектура процессора добавляется в удостоверение сборки и может быть указана как часть строк имен сборки. Например, "ProcessorArchitecture=msil". Однако рекомендуемым способом указать имя сборки является создание AssemblyName объекта и передача его в соответствующую перегрузку Load метода. См. раздел AssemblyName.ProcessorArchitecture.

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

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

Load(AssemblyName, Evidence)

Внимание!

This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

Внимание!

Теперь этот API является нерекомендуемым.

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

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef, System::Security::Policy::Evidence ^ assemblySecurity);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
[System.Obsolete]
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity);
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete("This method is obsolete and will be removed in a future release of the .NET Framework. Please use an overload of Load which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
[<System.Obsolete>]
static member Load : System.Reflection.AssemblyName * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName, assemblySecurity As Evidence) As Assembly

Параметры

assemblyRef
AssemblyName

Объект, описывающий загружаемую сборку.

assemblySecurity
Evidence

Свидетельство для загрузки сборки.

Возвращаемое значение

Assembly

Загруженная сборка.

Атрибуты

Исключения

assemblyRef имеет значение null.

assemblyRef не найден.

assemblyRef не является допустимой сборкой.

-или-

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

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

-или-

assemblyRef указывает на удаленную сборку, но возможность выполнения кода в удаленных сборках отключена. См. элемент <loadFromRemoteSources>.

Комментарии

FileLoadException Вызывается, если assemblyRef указано полное имя сборки, а первая сборка, соответствующая простому имени, имеет другую версию, язык и региональные параметры или маркер открытого ключа. Загрузчик не продолжает пробовать другие сборки, соответствующие простому имени. Начиная с платформа .NET Framework 4, так как выполнение кода в удаленных сборках по умолчанию отключено, также возникает исключение, FileLoadException если assemblyRef указывает удаленную сборку. Чтобы включить выполнение кода, загруженного из удаленных расположений, можно использовать <loadFromRemoteSources> элемент конфигурации.

Примечание

Не используйте AssemblyName только CodeBase набор свойств. Свойство CodeBase не предоставляет никакие элементы удостоверения сборки (например, имя или версия), поэтому загрузка не выполняется в соответствии с правилами удостоверений по нагрузке, как ожидалось от Load метода. Вместо этого сборка загружается с помощью правил загрузки. Сведения о недостатках использования контекста загрузки из контекста см. в Assembly.LoadFrom разделе "Перегрузка метода" или "Рекомендации по загрузке сборок".

От свидетельства зависит, предоставляются ли сборке определенные разрешения. Ниже приведены правила объединения доказательств сборки и безопасности:

  • При использовании Load метода без Evidence параметра сборка загружается с свидетельством того, что загрузчик предоставляет.

  • При использовании метода с параметром Load Evidence объединяются фрагменты доказательств. Фрагменты доказательств, предоставленных в качестве аргумента Load метода, заменяют части доказательств, предоставленные загрузчиком.

  • При использовании перегрузки Load метода с параметром Byte[] для загрузки изображения общего формата файлов объектов (COFF) доказательства наследуются от вызывающей сборки. Это относится к платформа .NET Framework версии 1.1 с пакетом обновления 1 (SP1) и последующим выпускам.

    Примечание

    В платформа .NET Framework версии 1.0 и в версии 1.1 без пакета обновления 1 (SP1) при использовании Load перегрузки метода с параметром Byte[] для загрузки образа COFF доказательства объединяются. Zone``Site и Url наследуются от вызывающей сборки и Hash StrongName взяты из сборки COFF.

  • При использовании Load метода с параметром Byte[] и Evidence загрузки изображения COFF используются только предоставленные доказательства. Свидетельство вызывающей сборки и доказательств изображения COFF игнорируется.

Отражение исполняемых файлов C++ может вызвать BadImageFormatExceptionисключение . Это, скорее всего, вызвано удалением адресов перемещения или .reloc раздела из исполняемого файла компилятором C++. Чтобы сохранить .reloc адрес исполняемого файла C++, укажите /fixed:no при связывании.

Примечание

Если задано AssemblyName.Name свойство и AssemblyName.CodeBase свойство, первая попытка загрузить сборку использует отображаемое имя (включая версию, язык и региональные параметры и т. д.), возвращаемое свойством Assembly.FullName . Если файл не найден, CodeBase используется для поиска сборки. Если сборка найдена, CodeBaseотображаемое имя сопоставляется со сборкой. Если совпадение завершается ошибкой FileLoadException , возникает исключение.

При вызове Load метода несколько раз в одной сборке, но с другим доказательством, среда CLR не создает исключение FileLoadException , так как не удается определить равенство и целостность различных спецификаций доказательств. Доказательства того, что в первую очередь успешно, являются доказательствами, которые используются.

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

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

Load(Byte[])

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

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly);
public static System.Reflection.Assembly Load (byte[] rawAssembly);
static member Load : byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte()) As Assembly

Параметры

rawAssembly
Byte[]

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

Возвращаемое значение

Assembly

Загруженная сборка.

Исключения

rawAssembly имеет значение null.

rawAssembly не является допустимой сборкой.

-или-

В настоящий момент загружена среда CLR версии 2.0 или более поздней версии. Сборка rawAssembly была скомпилирована в более поздней версии.

Комментарии

Уровень доверия сборки, загруженной с помощью этого метода, совпадает с уровнем доверия вызывающей сборки. Чтобы загрузить сборку из массива байтов с уровнем доверия домена приложения, используйте перегрузку Load(Byte[], Byte[], SecurityContextSource) метода. Дополнительные сведения об использовании доказательств с перегрузками Load метода, принимающее массивы байтов, см. в описании перегрузки Load(Byte[], Byte[], Evidence) метода.

Отображение исполняемых файлов C++ может вызвать исключение BadImageFormatException. Это, скорее всего, вызвано тем, что компилятор C++ отменяет адреса перемещения или .reloc раздел из исполняемого файла. Чтобы сохранить .reloc адрес исполняемого файла C++, укажите /fixed:no при связывании.

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

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

Load(String)

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

public:
 static System::Reflection::Assembly ^ Load(System::String ^ assemblyString);
public static System.Reflection.Assembly Load (string assemblyString);
static member Load : string -> System.Reflection.Assembly
Public Shared Function Load (assemblyString As String) As Assembly

Параметры

assemblyString
String

Длинная или короткая форма имени сборки.

Возвращаемое значение

Assembly

Загруженная сборка.

Исключения

assemblyString имеет значение null.

assemblyString представляет собой строку нулевой длины.

assemblyString не найден.

Не удалось загрузить файл, который был найден.

assemblyString не является допустимой сборкой.

-или-

В настоящий момент загружена среда CLR версии 2.0 или более поздней версии. Сборка assemblyString была скомпилирована в более поздней версии.

Примеры

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

using namespace System;
using namespace System::Collections;
using namespace System::Reflection;
int main()
{
    // You must supply a valid fully qualified assembly name.            
    Assembly^ SampleAssembly = Assembly::Load
        ( "SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3" );
    array<Type^>^ Types = SampleAssembly->GetTypes();
    
    // Display all the types contained in the specified assembly.
    IEnumerator^ myEnum = Types->GetEnumerator();
    Type^ oType;
    while ( myEnum->MoveNext() )
    {
        oType = safe_cast<Type^>(myEnum->Current);
        Console::WriteLine( oType->Name );
    }
}
using System;
using System.Reflection;

class Class1
{
    public static void Main()
    {
        // You must supply a valid fully qualified assembly name.
        Assembly SampleAssembly = Assembly.Load
            ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
        // Display all the types contained in the specified assembly.
        foreach (Type oType in SampleAssembly.GetTypes()) {
            Console.WriteLine(oType.Name);
        }
    }
}
Imports System.Reflection

Class Class1
    Public Shared Sub Main()
        ' You must supply a valid fully qualified assembly name.            
        Dim SampleAssembly As [Assembly] = _
            [Assembly].Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3")
        Dim oType As Type
        ' Display all the types contained in the specified assembly.
        For Each oType In SampleAssembly.GetTypes()
            Console.WriteLine(oType.Name)
        Next oType
    End Sub	'LoadSample
End Class

Комментарии

Чтобы загрузить правильную сборку, рекомендуется вызвать Load метод, передав длинную форму имени сборки. Длинная форма имени сборки состоит из его простого имени (например, System для сборки System.dll), а также его версии, языка и региональных параметров, маркера открытого ключа и при необходимости его архитектуры процессора. Он соответствует свойству сборки FullName . В следующем примере показано использование длинного имени для загрузки сборки System.dll для платформа .NET Framework 4:

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      string longName = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
      Assembly assem = Assembly.Load(longName);
      if (assem == null)
         Console.WriteLine("Unable to load assembly...");
      else
         Console.WriteLine(assem.FullName);
   }
}
// The example displays the following output:
//        system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim longName As String = "system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      Dim assem As Assembly = Assembly.Load(longName)
      If assem Is Nothing Then
         Console.WriteLine("Unable to load assembly...")
      Else
         Console.WriteLine(assem.FullName)
      End If
   End Sub
End Module
' The example displays the following output:
'       system, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

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

От свидетельства зависит, предоставляются ли сборке определенные разрешения. Ниже приведены правила объединения доказательств сборки и безопасности.

  • При использовании Load метода без Evidence параметра сборка загружается с свидетельством того, что загрузчик предоставляет.

  • При использовании Load метода с параметром Evidence объединяются фрагменты доказательств. Фрагменты доказательств, предоставленные в качестве аргумента методу Load , заменяют части доказательств, предоставленные загрузчиком.

  • При использовании перегрузки Load метода с параметром Byte[] для загрузки общего изображения формата файлов объектов (COFF) свидетельство наследуется от вызывающей сборки. Это относится к платформа .NET Framework версии 1.1 с пакетом обновления 1 (SP1) и последующим выпускам.

    Примечание

    В платформа .NET Framework версии 1.0 и в версии 1.1 без пакета обновления 1 (SP1) при использовании Load перегрузки метода с параметром Byte[] для загрузки образа COFF доказательства объединяются. Zone, Url и Site наследуется от вызывающей сборки, и Hash StrongName берется из сборки COFF.

  • При использовании Load метода с параметром Byte[] и Evidence загрузки изображения COFF используется только предоставленное свидетельство. Свидетельство вызывающей сборки и доказательств изображения COFF игнорируется.

Отражение исполняемых файлов C++ может вызвать BadImageFormatExceptionисключение . Это, скорее всего, вызвано удалением адресов перемещения или .reloc раздела из исполняемого файла компилятором C++. Чтобы сохранить .reloc адрес исполняемого файла C++, укажите /fixed:no при связывании.

В платформа .NET Framework версии 2.0 архитектура процессора добавляется в удостоверение сборки и может быть указана как часть строк имен сборки. Например, "ProcessorArchitecture=msil". Однако рекомендуемым способом указать имя сборки является создание AssemblyName объекта и передача его в соответствующую перегрузку Load метода. См. раздел AssemblyName.ProcessorArchitecture.

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

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

Load(AssemblyName)

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

public:
 static System::Reflection::Assembly ^ Load(System::Reflection::AssemblyName ^ assemblyRef);
public static System.Reflection.Assembly Load (System.Reflection.AssemblyName assemblyRef);
static member Load : System.Reflection.AssemblyName -> System.Reflection.Assembly
Public Shared Function Load (assemblyRef As AssemblyName) As Assembly

Параметры

assemblyRef
AssemblyName

Объект, описывающий загружаемую сборку.

Возвращаемое значение

Assembly

Загруженная сборка.

Исключения

assemblyRef имеет значение null.

assemblyRef не найден.

Не удалось загрузить файл, который был найден.

-или-

assemblyRef указывает на удаленную сборку, но возможность выполнения кода в удаленных сборках отключена. См. элемент <loadFromRemoteSources>.

Примечание. Вместо этого в .NET для приложений магазина Windows или переносимой библиотеки классов перехватывает исключение IOExceptionбазового класса.

assemblyRef не является допустимой сборкой. -или-

В настоящий момент загружена среда CLR версии 2.0 или более поздней версии. Сборка assemblyRef была скомпилирована в более поздней версии.

Примеры

В следующем примере создается экземпляр AssemblyName объекта и используется для загрузки сборки sysglobal.dll . Затем в примере отображается полное имя открытых типов сборки.

using System;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      String fullName = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                        "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL";
      var an = new AssemblyName(fullName);
      var assem = Assembly.Load(an);
      Console.WriteLine("Public types in assembly {0}:", assem.FullName);
      foreach (var t in assem.GetTypes())
         if (t.IsPublic)
            Console.WriteLine("   {0}", t.FullName);
   }
}
// The example displays the following output:
//   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
//      System.Globalization.CultureAndRegionInfoBuilder
//      System.Globalization.CultureAndRegionModifiers
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim fullName As String = "sysglobl, Version=4.0.0.0, Culture=neutral, " +
                               "PublicKeyToken=b03f5f7f11d50a3a, processor architecture=MSIL"
      Dim an As New AssemblyName(fullName)
      Dim assem As Assembly = Assembly.Load(an)
      Console.WriteLine("Public types in assembly {0}:", assem.FullName)
      For Each t As Type in assem.GetTypes()
         If t.IsPublic Then Console.WriteLine("   {0}", t.FullName)
      Next
   End Sub
End Module
' The example displays the following output:
'   Public types in assembly sysglobl, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a:
'      System.Globalization.CultureAndRegionInfoBuilder
'      System.Globalization.CultureAndRegionModifiers

Комментарии

FileLoadException вызывается, если assemblyRef указано полное имя сборки, а первая сборка, соответствующая простому имени, имеет другую версию, язык и региональные параметры или маркер открытого ключа. Загрузчик не продолжает проверки для других сборок, соответствующих простому имени. Начиная с платформа .NET Framework 4, так как выполнение кода в удаленных сборках по умолчанию отключено, при FileLoadException указании удаленной сборки также возникает assemblyRef исключение. Чтобы включить выполнение кода, загруженного из удаленных расположений, можно использовать элемент конфигурации <loadFromRemoteSources> .

Примечание

Не используйте AssemblyName только CodeBase набор свойств. Свойство CodeBase не предоставляет никаких элементов удостоверения сборки (например, имени или версии), поэтому загрузка не выполняется в соответствии с правилами удостоверений по нагрузке, как и ожидалось от Load метода. Вместо этого сборка загружается с помощью правил загрузки. Сведения о недостатках использования контекста загрузки из контекста см. в Assembly.LoadFrom описании перегрузки метода или рекомендаций по загрузке сборок.

От свидетельства зависит, предоставляются ли сборке определенные разрешения. Ниже приведены правила объединения доказательств сборки и безопасности.

  • При использовании Load метода без Evidence параметра сборка загружается с свидетельством того, что загрузчик предоставляет.

  • При использовании Load метода с параметром Evidence объединяются фрагменты доказательств. Фрагменты доказательств, предоставленные в качестве аргумента методу Load , заменяют части доказательств, предоставленные загрузчиком.

  • При использовании перегрузки Load метода с параметром Byte[] для загрузки общего изображения формата файлов объектов (COFF) свидетельство наследуется от вызывающей сборки. Это относится к платформа .NET Framework версии 1.1 с пакетом обновления 1 (SP1) и последующим выпускам.

    Примечание

    В платформа .NET Framework версии 1.0 и в версии 1.1 без пакета обновления 1 (SP1) при использовании Load перегрузки метода с параметром Byte[] для загрузки образа COFF доказательства объединяются. Zone, Url и Site наследуется от вызывающей сборки, и Hash StrongName берется из сборки COFF.

  • При использовании Load метода с параметром Byte[] и Evidence загрузки изображения COFF используется только предоставленное свидетельство. Свидетельство вызывающей сборки и свидетельства изображения COFF игнорируется.

Отображение исполняемых файлов C++ может вызвать исключение BadImageFormatException. Это, скорее всего, вызвано тем, что компилятор C++ отменяет адреса перемещения или .reloc раздел из исполняемого файла. Чтобы сохранить .reloc адрес исполняемого файла C++, укажите /fixed:no при связывании.

Примечание

Если задано AssemblyName.Name свойство и AssemblyName.CodeBase свойство, первая попытка загрузить сборку использует отображаемое имя (включая версию, язык и региональные параметры и т. д.), возвращаемое свойством Assembly.FullName . Если файл не найден, CodeBase используется для поиска сборки. Если сборка найдена с помощью CodeBase, отображаемое имя сопоставляется со сборкой. Если совпадение завершается ошибкой FileLoadException , создается исключение.

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

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

Load(Byte[], Byte[])

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

public:
 static System::Reflection::Assembly ^ Load(cli::array <System::Byte> ^ rawAssembly, cli::array <System::Byte> ^ rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[]? rawSymbolStore);
public static System.Reflection.Assembly Load (byte[] rawAssembly, byte[] rawSymbolStore);
static member Load : byte[] * byte[] -> System.Reflection.Assembly
Public Shared Function Load (rawAssembly As Byte(), rawSymbolStore As Byte()) As Assembly

Параметры

rawAssembly
Byte[]

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

rawSymbolStore
Byte[]

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

Возвращаемое значение

Assembly

Загруженная сборка.

Исключения

rawAssembly имеет значение null.

rawAssembly не является допустимой сборкой.

-или-

В настоящий момент загружена среда CLR версии 2.0 или более поздней версии. Сборка rawAssembly была скомпилирована в более поздней версии.

Комментарии

Уровень доверия сборки, загруженной с помощью этого метода, совпадает с уровнем доверия вызывающей сборки. Чтобы загрузить сборку из массива байтов с уровнем доверия домена приложения, используйте перегрузку Load(Byte[], Byte[], SecurityContextSource) метода. Дополнительные сведения об использовании доказательств с перегрузками Load метода, который принимает массивы байтов, см. в перегрузке Load(Byte[], Byte[], Evidence) метода.

Отражение исполняемых файлов C++ может вызвать BadImageFormatExceptionисключение . Это, скорее всего, вызвано удалением адресов перемещения или .reloc раздела из исполняемого файла компилятором C++. Чтобы сохранить .reloc адрес исполняемого файла C++, укажите /fixed:no при связывании.

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

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