Assembly.LoadFrom Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Загружает сборку.
Перегрузки
LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm) |
Устаревшие..
Загружает сборку с заданным именем файла сборки или путем, свидетельством безопасности, хэш-значением и хэш-алгоритмом. |
LoadFrom(String, Byte[], AssemblyHashAlgorithm) |
Загружает сборку с заданным именем файла сборки или путем, хэш-значением и хэш-алгоритмом. |
LoadFrom(String) |
Загружает сборку с заданным именем или путем. |
LoadFrom(String, Evidence) |
Устаревшие..
Загружает сборку, заданную именем файла или путем к этому файлу и предоставленным свидетельством безопасности. |
Комментарии
Только .NET Framework: См. <loadFromRemoteSources>
сведения о загрузке сборок из удаленных расположений.
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
не является неоднозначным и определяется как недопустимый.
-или-
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.
См.
<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)
- Исходный код:
- Assembly.cs
- Исходный код:
- Assembly.cs
- Исходный код:
- 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
Алгоритм хэширования, используемый для хэширования файлов и генерации строгого имени.
Возвращаемое значение
Загруженная сборка.
Исключения
Только .NET Core и .NET 5+: Во всех случаях.
assemblyFile
имеет значение null
.
Файл assemblyFile
не найден, или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.
Не удалось загрузить файл, который был найден.
-или-
assemblyFile
указывает расположение, которое отключено на <основе loadFromRemoteSources>.
assemblyFile
не является допустимой сборкой для текущей загруженной среды выполнения; например, 32-разрядная сборка в 64-разрядном процессе.
База кода, которая не начинается с "file://", была указана без требуемого разрешения WebPermission.
Параметр assemblyFile
представляет собой пустую строку ("").
Длина имени сборки превышает максимальную длину, определенную в системе.
Комментарии
В .NET Core и .NET 5+ этот метод вызывает исключение при вызове NotSupportedException . Взамен рекомендуется использовать LoadFrom(String).
Параметр assemblyFile
должен ссылаться на универсальный код ресурса (URI) без escape-символов. Этот метод предоставляет escape-символы для всех недопустимых символов в URI.
Примечание
Протокол FTP не поддерживается. Если URI, указанный для assemblyFile
, является FTP-адресом, сборка не загружается. Исключение не выдается.
assemblyFile
может быть абсолютным или относительным по отношению к текущему каталогу.
Сборки можно загрузить в один из трех контекстов или без контекста:
Контекст загрузки содержит сборки, найденные путем проверки: в глобальном кэше сборок, в хранилище сборок узла, если размещена среда выполнения, или в ApplicationBase и PrivateBinPath домена приложения. В большинстве перегруженных версий метода Load сборки загружаются именно в этот контекст.
Контекст load-from содержит сборки, для которых пользователь предоставил путь, не включенный в поиск. К примерам методов, которые выполняют загрузку по указанному пути, относятся методы LoadFrom, CreateInstanceFrom и ExecuteAssembly.
См.
<loadFromRemoteSources>
сведения о загрузке сборок из удаленных расположений.Контекст только для отражения содержит сборки, загруженные ReflectionOnlyLoad с помощью методов и ReflectionOnlyLoadFrom ; код в этих контекстах не может быть выполнен.
Если пользователь создал или нашел сборку, она не находится ни в одном контексте. Это относится к сборкам, загруженным с помощью перегрузок Load метода , которые указывают массив байтов, содержащий сборку, и к временным динамическим сборкам, созданным с отражением и не сохраняемым на диске.
Контекст load-from позволяет загружать сборку из пути, который не включен в проверки, и тем не менее позволяет находить и загружать зависимости от этого пути, так как сведения о пути поддерживаются контекстом.
Метод LoadFrom имеет следующие недостатки. Вместо него рекомендуется использовать класс Load.
Если сборка с тем же идентификатором уже загружена, метод LoadFrom возвращает загруженную сборку даже в том случае, если был задан другой путь.
Если сборка загружается с LoadFromпомощью , а затем сборка в контексте загрузки пытается загрузить ту же сборку по отображаемого имени, попытка загрузки завершается ошибкой. Это может произойти при десериализации сборки.
Если сборка загружается с LoadFromпомощью , а путь проверки включает сборку с тем же удостоверением, но другим расположением InvalidCastException, может возникнуть , MissingMethodExceptionили другое непредвиденное поведение.
Метод LoadFrom требует наличия флагов FileIOPermissionAccess.Read или FileIOPermissionAccess.PathDiscovery либо наличия объекта WebPermission для заданного пути.
Если собственный образ существует для
assemblyFile
, он не используется. Сборка не может быть загружена как доменно-нейтральная.
Сборка загружается с доказательствами, которые предоставляет загрузчик.
Применяется к
LoadFrom(String)
- Исходный код:
- Assembly.cs
- Исходный код:
- Assembly.cs
- Исходный код:
- 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
не найден, или модуль, который вы пытаетесь загрузить, не указывает расширение имени файла.
Не удалось загрузить файл, который был найден.
-или-
Только .NET Framework: 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
может быть абсолютным или относительным по отношению к текущему каталогу.
Только .NET Framework: Сборки можно загрузить в один из трех контекстов или без контекста:
Контекст загрузки содержит сборки, найденные путем проверки: в глобальном кэше сборок, в хранилище сборок узла, если среда выполнения размещена, или в ApplicationBase и PrivateBinPath домена приложения. В большинстве перегруженных версий метода Load сборки загружаются именно в этот контекст.
Контекст load-from содержит сборки, для которых пользователь предоставил путь, не включенный в каталоги, в которых выполняется поиск с помощью проверки. Он также позволяет найти и загрузить зависимости от этого пути, так как сведения о пути поддерживаются контекстом. К примерам методов, которые выполняют загрузку по указанному пути, относятся методы LoadFrom, CreateInstanceFrom и ExecuteAssembly.
См.
<loadFromRemoteSources>
сведения о загрузке сборок из удаленных расположений.Контекст только для отражения содержит сборки, загруженные ReflectionOnlyLoad с помощью методов и ReflectionOnlyLoadFrom ; код в этих контекстах не может быть выполнен.
Если пользователь создал или нашел сборку, она не находится ни в одном контексте. Это относится к сборкам, загруженным с помощью перегрузок Load метода , которые указывают массив байтов, содержащий сборку, и к временным динамическим сборкам, созданным с отражением и не сохраняемым на диске.
Метод 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
не является неоднозначным и определяется как недопустимый.
-или-
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.
См.
<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 игнорируются.