Assembly.LoadFrom Метод

Определение

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

Перегрузки

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

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

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

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

LoadFrom(String)

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

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

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

Комментарии

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

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)

Внимание!

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

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

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

Параметры

assemblyFile
String

Имя файла, содержащего манифест сборки, либо путь к нему.

securityEvidence
Evidence

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

hashValue
Byte[]

Значение вычисленного хэш-кода.

hashAlgorithm
AssemblyHashAlgorithm

Алгоритм хэширования, используемый для хэширования файлов и генерации строгого имени.

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

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

Атрибуты

Исключения

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

Файл assemblyFile не найден, или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.

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

-или-

Параметр securityEvidence не является неоднозначным и определяется как недопустимый.

-или-

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

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения; например, 32-разрядная сборка в 64-разрядном процессе.

База кода, которая не начинается с "file://", была указана без требуемого разрешения WebPermission.

Параметр assemblyFile представляет собой пустую строку ("").

Длина имени сборки превышает максимальную длину, определенную в системе.

Комментарии

Параметр assemblyFile должен ссылаться на универсальный код ресурса (URI) без escape-символов. Этот метод предоставляет escape-символы для всех недопустимых символов в URI.

Примечание

Протокол FTP не поддерживается. Если URI, указанный для assemblyFile , является FTP-адресом, сборка не загружается. Исключение не выдается.

assemblyFile может быть абсолютным или относительным по отношению к текущему каталогу.

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

  • Контекст загрузки содержит сборки, найденные путем проверки: в глобальном кэше сборок, в хранилище сборок узла, если среда выполнения размещена, или в ApplicationBase и PrivateBinPath домена приложения. В большинстве перегруженных версий метода Load сборки загружаются именно в этот контекст.

  • Контекст load-from содержит сборки, для которых пользователь предоставил путь, не включенный в каталоги, в которых выполняется поиск с помощью проверки. К примерам методов, которые выполняют загрузку по указанному пути, относятся методы LoadFrom, CreateInstanceFrom и ExecuteAssembly.

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

  • Контекст только для отражения содержит сборки, загруженные ReflectionOnlyLoad с помощью методов и ReflectionOnlyLoadFrom ; код в этих контекстах не может быть выполнен.

  • Если пользователь создал или нашел сборку, она не находится ни в одном контексте. Это относится к сборкам, загруженным с помощью перегрузок Load метода , которые указывают массив байтов, содержащий сборку, и к временным динамическим сборкам, созданным с отражением и не сохраняемым на диске.

Контекст load-from позволяет загружать сборку из пути, не включенного в проверку, и тем не менее позволяет находить и загружать зависимости от этого пути, так как сведения о пути поддерживаются контекстом.

Метод LoadFrom имеет следующие недостатки. Вместо него рекомендуется использовать класс Load.

  • Если сборка с тем же идентификатором уже загружена, метод LoadFrom возвращает загруженную сборку даже в том случае, если был задан другой путь.

  • Если сборка загружается с LoadFromпомощью , а затем сборка в контексте загрузки пытается загрузить ту же сборку по отображаемого имени, попытка загрузки завершается ошибкой. Это может произойти при десериализации сборки.

  • Если сборка загружается с LoadFromпомощью , а путь проверки включает сборку с тем же удостоверением, но другим расположением InvalidCastException, может возникнуть , MissingMethodExceptionили другое непредвиденное поведение.

  • Метод LoadFrom требует наличия флагов FileIOPermissionAccess.Read или FileIOPermissionAccess.PathDiscovery либо наличия объекта WebPermission для заданного пути.

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

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

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

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

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

  • При использовании LoadFrom метода с параметром Byte[] для загрузки изображения общего формата файлов объектов (COFF) доказательства объединяются. Zone, Url и Site наследуются от вызывающей сборки, а Hash и StrongName — из сборки COFF.

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

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

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Source:
Assembly.cs
Source:
Assembly.cs
Source:
Assembly.cs

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

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, cli::array <System::Byte> ^ hashValue, System::Configuration::Assemblies::AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[]? hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, byte[] hashValue, System.Configuration.Assemblies.AssemblyHashAlgorithm hashAlgorithm);
static member LoadFrom : string * byte[] * System.Configuration.Assemblies.AssemblyHashAlgorithm -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, hashValue As Byte(), hashAlgorithm As AssemblyHashAlgorithm) As Assembly

Параметры

assemblyFile
String

Имя файла, содержащего манифест сборки, либо путь к нему.

hashValue
Byte[]

Значение вычисленного хэш-кода.

hashAlgorithm
AssemblyHashAlgorithm

Алгоритм хэширования, используемый для хэширования файлов и генерации строгого имени.

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

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

Исключения

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

Файл assemblyFile не найден, или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.

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

-или-

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

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения; например, 32-разрядная сборка в 64-разрядном процессе.

База кода, которая не начинается с "file://", была указана без требуемого разрешения WebPermission.

Параметр assemblyFile представляет собой пустую строку ("").

Длина имени сборки превышает максимальную длину, определенную в системе.

Комментарии

Параметр assemblyFile должен ссылаться на универсальный код ресурса (URI) без escape-символов. Этот метод предоставляет escape-символы для всех недопустимых символов в URI.

Примечание

Протокол FTP не поддерживается. Если URI, указанный для assemblyFile , является FTP-адресом, сборка не загружается. Исключение не выдается.

assemblyFile может быть абсолютным или относительным по отношению к текущему каталогу.

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

  • Контекст загрузки содержит сборки, найденные путем проверки: в глобальном кэше сборок, в хранилище сборок узла, если размещена среда выполнения, или в ApplicationBase и PrivateBinPath домена приложения. В большинстве перегруженных версий метода Load сборки загружаются именно в этот контекст.

  • Контекст load-from содержит сборки, для которых пользователь предоставил путь, не включенный в поиск. К примерам методов, которые выполняют загрузку по указанному пути, относятся методы LoadFrom, CreateInstanceFrom и ExecuteAssembly.

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

  • Контекст только для отражения содержит сборки, загруженные ReflectionOnlyLoad с помощью методов и ReflectionOnlyLoadFrom ; код в этих контекстах не может быть выполнен.

  • Если пользователь создал или нашел сборку, она не находится ни в одном контексте. Это относится к сборкам, загруженным с помощью перегрузок Load метода , которые указывают массив байтов, содержащий сборку, и к временным динамическим сборкам, созданным с отражением и не сохраняемым на диске.

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

Метод LoadFrom имеет следующие недостатки. Вместо него рекомендуется использовать класс Load.

  • Если сборка с тем же идентификатором уже загружена, метод LoadFrom возвращает загруженную сборку даже в том случае, если был задан другой путь.

  • Если сборка загружается с LoadFromпомощью , а затем сборка в контексте загрузки пытается загрузить ту же сборку по отображаемого имени, попытка загрузки завершается ошибкой. Это может произойти при десериализации сборки.

  • Если сборка загружается с LoadFromпомощью , а путь проверки включает сборку с тем же удостоверением, но другим расположением InvalidCastException, может возникнуть , MissingMethodExceptionили другое непредвиденное поведение.

  • Метод LoadFrom требует наличия флагов FileIOPermissionAccess.Read или FileIOPermissionAccess.PathDiscovery либо наличия объекта WebPermission для заданного пути.

  • Если собственный образ существует для assemblyFile, он не используется. Сборка не может быть загружена как доменно-нейтральная.

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

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

LoadFrom(String)

Source:
Assembly.cs
Source:
Assembly.cs
Source:
Assembly.cs

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

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

Параметры

assemblyFile
String

Имя файла, содержащего манифест сборки, либо путь к нему.

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

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

Исключения

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

Файл assemblyFile не найден, или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.

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

-или-

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

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения; например, 32-разрядная сборка в 64-разрядном процессе.

База кода, которая не начинается с "file://", была указана без требуемого разрешения WebPermission.

Параметр assemblyFile представляет собой пустую строку ("").

Длина имени сборки превышает максимальную длину, определенную в системе.

Примеры

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

Assembly^ SampleAssembly;
SampleAssembly = Assembly::LoadFrom( "c:\\Sample.Assembly.dll" );
// Obtain a reference to a method known to exist in assembly.
MethodInfo^ Method = SampleAssembly->GetTypes()[ 0 ]->GetMethod( "Method1" );
// Obtain a reference to the parameters collection of the MethodInfo instance.
array<ParameterInfo^>^ Params = Method->GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System::String
//   Position = 0
//   Optional=False
for each ( ParameterInfo^ Param in Params )
{
   Console::WriteLine( "Param= {0}", Param->Name );
   Console::WriteLine( "  Type= {0}", Param->ParameterType );
   Console::WriteLine( "  Position= {0}", Param->Position );
   Console::WriteLine( "  Optional= {0}", Param->IsOptional );
}
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
// Obtain a reference to a method known to exist in assembly.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine("  Type=" + Param.ParameterType.ToString());
    Console.WriteLine("  Position=" + Param.Position.ToString());
    Console.WriteLine("  Optional=" + Param.IsOptional.ToString());
}
Dim SampleAssembly As [Assembly]
SampleAssembly = [Assembly].LoadFrom("c:\Sample.Assembly.dll")
' Obtain a reference to a method known to exist in assembly.
Dim Method As MethodInfo = SampleAssembly.GetTypes()(0).GetMethod("Method1")
' Obtain a reference to the parameters collection of the MethodInfo instance.
Dim Params As ParameterInfo() = Method.GetParameters()
' Display information about method parameters.
' Param = sParam1
'   Type = System.String
'   Position = 0
'   Optional=False
For Each Param As ParameterInfo In Params
    Console.WriteLine(("Param=" + Param.Name.ToString()))
    Console.WriteLine(("  Type=" + Param.ParameterType.ToString()))
    Console.WriteLine(("  Position=" + Param.Position.ToString()))
    Console.WriteLine(("  Optional=" + Param.IsOptional.ToString()))
Next

Комментарии

Параметр assemblyFile должен ссылаться на универсальный код ресурса (URI) без escape-символов. Этот метод предоставляет escape-символы для всех недопустимых символов в URI.

Примечание

Протокол FTP не поддерживается. Если URI, указанный для assemblyFile , является FTP-адресом, сборка не загружается. Исключение не выдается.

assemblyFile может быть абсолютным или относительным по отношению к текущему каталогу.

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

  • Контекст загрузки содержит сборки, найденные путем проверки: в глобальном кэше сборок, в хранилище сборок узла, если среда выполнения размещена, или в ApplicationBase и PrivateBinPath домена приложения. В большинстве перегруженных версий метода Load сборки загружаются именно в этот контекст.

  • Контекст load-from содержит сборки, для которых пользователь предоставил путь, не включенный в каталоги, в которых выполняется поиск с помощью проверки. К примерам методов, которые выполняют загрузку по указанному пути, относятся методы LoadFrom, CreateInstanceFrom и ExecuteAssembly.

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

  • Контекст только для отражения содержит сборки, загруженные ReflectionOnlyLoad с помощью методов и ReflectionOnlyLoadFrom ; код в этих контекстах не может быть выполнен.

  • Если пользователь создал или нашел сборку, она не находится ни в одном контексте. Это относится к сборкам, загруженным с помощью перегрузок Load метода , которые указывают массив байтов, содержащий сборку, и к временным динамическим сборкам, созданным с отражением и не сохраняемым на диске.

Контекст load-from позволяет загружать сборку из пути, не включенного в проверку, и тем не менее позволяет находить и загружать зависимости от этого пути, так как сведения о пути поддерживаются контекстом.

Метод LoadFrom имеет следующие недостатки. Вместо него рекомендуется использовать класс Load.

  • Если сборка с тем же идентификатором уже загружена в контекст выполнения, метод LoadFrom возвращает загруженную сборку даже в том случае, если был задан другой путь.

  • Сборку можно загрузить в контексте load-from, даже если сборка с таким же удостоверением существует в контексте загрузки. Взаимодействие между двумя сборками не будет работать, что приведет к таким ошибкам, как InvalidCastException, MissingMethodExceptionили к другому непредвиденному поведению.

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

  • Если файл сборки, удостоверение которого передается политикой перенаправления привязки, передается в LoadFrom, политика будет применена, и сборка будет загружена из пути проверки в контексте загрузки.

  • Если сборка загружается в контексте load-from, а затем сборка в контексте загрузки пытается загрузить ту же сборку по отображаемого имени, попытка загрузки завершается ошибкой. Это может произойти при десериализации сборки.

  • Метод LoadFrom требует наличия флагов FileIOPermissionAccess.Read или FileIOPermissionAccess.PathDiscovery либо наличия объекта WebPermission для заданного пути.

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

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

LoadFrom(String, Evidence)

Внимание!

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

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

public:
 static System::Reflection::Assembly ^ LoadFrom(System::String ^ assemblyFile, System::Security::Policy::Evidence ^ securityEvidence);
public static System.Reflection.Assembly LoadFrom (string assemblyFile, 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 LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Reflection.Assembly LoadFrom (string assemblyFile, System.Security.Policy.Evidence securityEvidence);
static member LoadFrom : 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 LoadFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member LoadFrom : string * System.Security.Policy.Evidence -> System.Reflection.Assembly
Public Shared Function LoadFrom (assemblyFile As String, securityEvidence As Evidence) As Assembly

Параметры

assemblyFile
String

Имя файла, содержащего манифест сборки, либо путь к нему.

securityEvidence
Evidence

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

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

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

Атрибуты

Исключения

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

Файл assemblyFile не найден, или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.

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

-или-

Параметр securityEvidence не является неоднозначным и определяется как недопустимый.

-или-

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

assemblyFile не является допустимой сборкой для текущей загруженной среды выполнения; например, 32-разрядная сборка в 64-разрядном процессе.

База кода, которая не начинается с "file://", была указана без требуемого разрешения WebPermission.

Параметр assemblyFile представляет собой пустую строку ("").

Длина имени сборки превышает максимальную длину, определенную в системе.

Комментарии

Параметр assemblyFile должен ссылаться на универсальный код ресурса (URI) без escape-символов. Этот метод предоставляет escape-символы для всех недопустимых символов в URI.

Примечание

Протокол FTP не поддерживается. Если URI, указанный для assemblyFile , является FTP-адресом, сборка не загружается. Исключение не выдается.

assemblyFile может быть абсолютным или относительным по отношению к текущему каталогу.

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

  • Контекст загрузки содержит сборки, найденные путем проверки: в глобальном кэше сборок, в хранилище сборок узла, если среда выполнения размещена, или в ApplicationBase и PrivateBinPath домена приложения. В большинстве перегруженных версий метода Load сборки загружаются именно в этот контекст.

  • Контекст load-from содержит сборки, для которых пользователь предоставил путь, не включенный в каталоги, в которых выполняется поиск с помощью проверки. К примерам методов, которые выполняют загрузку по указанному пути, относятся методы LoadFrom, CreateInstanceFrom и ExecuteAssembly.

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

  • Контекст только для отражения содержит сборки, загруженные ReflectionOnlyLoad с помощью методов и ReflectionOnlyLoadFrom ; код в этих контекстах не может быть выполнен.

  • Если пользователь создал или нашел сборку, она не находится ни в одном контексте. Это относится к сборкам, загруженным с помощью перегрузок Load метода , которые указывают массив байтов, содержащий сборку, и к временным динамическим сборкам, созданным с отражением и не сохраняемым на диске.

Контекст load-from позволяет загружать сборку из пути, не включенного в проверку, и тем не менее позволяет находить и загружать зависимости от этого пути, так как сведения о пути поддерживаются контекстом.

Метод LoadFrom имеет следующие недостатки. Вместо него рекомендуется использовать класс Load.

  • Если сборка с тем же идентификатором уже загружена, метод LoadFrom возвращает загруженную сборку даже в том случае, если был задан другой путь.

  • Если сборка загружается с LoadFromпомощью , а затем сборка в контексте загрузки пытается загрузить ту же сборку по отображаемого имени, попытка загрузки завершается ошибкой. Это может произойти при десериализации сборки.

  • Если сборка загружается с LoadFromпомощью , а путь проверки включает сборку с тем же удостоверением, но другим расположением InvalidCastException, может возникнуть , MissingMethodExceptionили другое непредвиденное поведение.

  • Метод LoadFrom требует наличия флагов FileIOPermissionAccess.Read или FileIOPermissionAccess.PathDiscovery либо наличия объекта WebPermission для заданного пути.

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

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

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

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

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

  • При использовании LoadFrom метода с параметром Byte[] для загрузки изображения общего формата файлов объектов (COFF) доказательства объединяются. Zone, Url и Site наследуются от вызывающей сборки, а Hash и StrongName — из сборки COFF.

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

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

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