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.

Внимание!

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

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

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);
[System.Obsolete]
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
[<System.Obsolete>]
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

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

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

Assembly

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

Атрибуты

Исключения

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

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

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

-или-

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

-или-

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

assemblyFile не является допустимой сборкой. Например, это 32-разрядная сборка в 64-разрядном процессе. Дополнительные сведения см. в разделе исключений.

-или-

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

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

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

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

Комментарии

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • В платформа .NET Framework версии 1.0 и 1.1 политика не применяется.

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

  • При использовании 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)

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

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

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

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

Assembly

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

Исключения

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

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

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

-или-

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

assemblyFile не является допустимой сборкой. Например, это 32-разрядная сборка в 64-разрядном процессе. Дополнительные сведения см. в разделе исключений.

-или-

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

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

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

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

Комментарии

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LoadFrom(String)

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

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

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

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

Assembly

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

Исключения

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

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

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

-или-

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

assemblyFile не является допустимой сборкой. Например, это 32-разрядная сборка в 64-разрядном процессе. Дополнительные сведения см. в разделе исключений.

-или-

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

База кода, которая не начинается с "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, если универсальный код ресурса (URIassemblyFile) указывает удаленное расположение, загрузка сборки отключена по умолчанию, а LoadFrom метод вызывает исключение FileLoadException. Чтобы включить выполнение кода, загруженного из удаленных расположений, можно использовать элемент конфигурации <loadFromRemoteSources> .

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

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

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

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

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

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

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

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

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

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

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

  • В платформа .NET Framework версии 1.0 и 1.1 политика не применяется.

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

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.

Внимание!

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

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

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);
[System.Obsolete]
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
[<System.Obsolete>]
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

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

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

Assembly

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

Атрибуты

Исключения

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

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

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

-или-

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

-или-

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

assemblyFile не является допустимой сборкой. Например, это 32-разрядная сборка в 64-разрядном процессе. Дополнительные сведения см. в разделе исключений.

-или-

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

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

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

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

Комментарии

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • В платформа .NET Framework версии 1.0 и 1.1 политика не применяется.

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

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

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

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

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

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

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

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