Assembly.LoadFrom Yöntem

Tanım

Bir bütünleştirilmiş kodu yükler.

Aşırı Yüklemeler

LoadFrom(String, Evidence, Byte[], AssemblyHashAlgorithm)
Geçersiz.

Dosya adı veya yolu, güvenlik kanıtı, karma değeri ve karma algoritması göz önünde bulundurularak bir derlemeyi yükler.

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Dosya adı veya yolu, karma değeri ve karma algoritmasına göre bir derleme yükler.

LoadFrom(String)

Dosya adı veya yolu verilen bir derlemeyi yükler.

LoadFrom(String, Evidence)
Geçersiz.

Dosya adı veya yolu verilen ve güvenlik kanıtı sağlayan bir derlemeyi yükler.

Açıklamalar

.NET Framework 4'ten başlayarak, uzak konumlardan yüklenen derlemelerde kod yürütme özelliği varsayılan olarak devre dışı bırakılır ve yöntemine LoadFrom yapılan çağrı bir FileLoadExceptionoluşturur. Derlemeyi yüklemek ve kodunu yürütmek için şunları gerçekleştirmeniz gerekir:

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

Dikkat

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.

Dosya adı veya yolu, güvenlik kanıtı, karma değeri ve karma algoritması göz önünde bulundurularak bir derlemeyi yükler.

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

Parametreler

assemblyFile
String

Derleme bildirimini içeren dosyanın adı veya yolu.

securityEvidence
Evidence

Derleme yüklemesi için kanıt.

hashValue
Byte[]

Hesaplanan karma kodun değeri.

hashAlgorithm
AssemblyHashAlgorithm

Karma dosyaları ve tanımlayıcı adı oluşturmak için kullanılan karma algoritması.

Döndürülenler

Yüklenen derleme.

Öznitelikler

Özel durumlar

assemblyFile, null değeridir.

assemblyFile bulunamadı veya yüklemeye çalıştığınız modül bir dosya adı uzantısı belirtmiyor.

Bulunan bir dosya yüklenemedi.

-veya-

securityEvidence belirsiz değildir ve geçersiz olarak belirlenir.

-veya-

Uzak derlemelerde kod yürütme özelliği devre dışıdır. Bkz <. loadFromRemoteSources>.

assemblyFile şu anda yüklü olan çalışma zamanı için geçerli bir derleme değildir; örneğin, 64 bit işlemde 32 bit derleme.

"file://" ile başlamayan bir kod tabanı gerekli WebPermissionolmadan belirtildi.

assemblyFile parametresi boş bir dizedir ("").

Derleme adı, sistem tarafından tanımlanan maksimum uzunluğu aşıyor.

Açıklamalar

parametresi, assemblyFile kaçış karakterleri olmayan bir URI'ye başvurmalıdır. Bu yöntem, URI'deki tüm geçersiz karakterler için kaçış karakterleri sağlar.

Not

Dosya aktarım protokolü (FTP) desteklenmez. için assemblyFile sağlanan URI bir FTP adresiyse, derleme yüklenmez. Özel durum oluşturulmaz.

assemblyFile geçerli dizine mutlak veya göreli olabilir.

Derlemeler üç bağlamdan birine yüklenebilir veya bağlam olmadan yüklenebilir:

  • Yük bağlamı, yoklama tarafından bulunan derlemeleri içerir: GAC'de, çalışma zamanı barındırılıyorsa bir konak derleme deposunda veya uygulama etki alanının ve PrivateBinPath içindeApplicationBase. Yöntem yükleme derlemelerinin Load çoğu bu bağlama yüklenir.

  • Yük kaynağı bağlamı, kullanıcının yoklama tarafından arama yapılan dizinlere dahil olmayan bir yol sağladığı derlemeleri içerir. LoadFrom, CreateInstanceFromve ExecuteAssembly yolları tarafından yüklenen yöntemlere örnek olarak verilebilir.

    .NET Framework 4'den başlayarak, URI'sinin uzak bir konum belirtmesi assemblyFile durumunda derleme yüklemesi varsayılan olarak devre dışı bırakılır ve LoadFrom yöntemi bir FileLoadExceptionoluşturur. Uzak konumlardan yüklenen kodun yürütülmesini etkinleştirmek için yapılandırma öğesini kullanabilirsiniz <loadFromRemoteSources> .

  • Yalnızca yansıma bağlamı ve ReflectionOnlyLoadFrom yöntemleriyle ReflectionOnlyLoad yüklenen derlemeleri içerir; bu bağlamlardaki kod yürütülemez.

  • Kullanıcı derlemeyi oluşturduysa veya bulduysa, herhangi bir bağlamda değildir. Bu, derleme içeren bir bayt dizisi belirten yöntemin Load aşırı yüklemeleri kullanılarak yüklenen derlemeler ve yansıma yayma ile oluşturulan ve diske kaydedilmeyen geçici dinamik derlemeler için geçerlidir.

Yük kaynağı bağlamı, bir derlemenin yoklamada bulunmayan bir yoldan yüklenmesini sağlar ve yol bilgileri bağlam tarafından korunacağından bu yol üzerindeki bağımlılıkların bulunup yüklenmesine izin verir.

yönteminin LoadFrom aşağıdaki dezavantajları vardır. Bunun yerine kullanmayı Load göz önünde bulundurun.

  • Aynı kimliğe sahip bir derleme zaten yüklüyse, LoadFrom farklı bir yol belirtilmiş olsa bile yüklenen derlemeyi döndürür.

  • Bir derleme ile yüklenirse ve daha sonra yük bağlamındaki bir derleme aynı derlemeyi görünen adla LoadFromyüklemeyi denerse, yükleme girişimi başarısız olur. Bir derleme seri durumdan çıkarıldığında bu durum oluşabilir.

  • Bir derleme ile LoadFromyüklenirse ve yoklama yolu aynı kimliğe ancak farklı bir konuma sahip bir derleme içeriyorsa, bir InvalidCastException, MissingMethodExceptionveya diğer beklenmeyen davranışlar oluşabilir.

  • LoadFromFileIOPermissionAccess.PathDiscoveryve FileIOPermissionAccess.Read , veya WebPermission, belirtilen yolda.

  • için assemblyFileyerel bir görüntü varsa, kullanılmaz. Derleme, etki alanı nötr olarak yüklenemez.

Bir derlemeye belirli izinlerin verilip verilmediği kanıta göre belirlenir. Derleme ve güvenlik kanıtı birleştirme kuralları aşağıdaki gibidir:

  • Parametresiz Evidence bir LoadFrom yöntem kullandığınızda, derleme yükleyicinin sağladığı kanıt ile birlikte yüklenir.

  • Parametreli Evidence bir LoadFrom yöntem kullandığınızda, kanıt parçaları birleştirilir. Yöntemine bağımsız değişken LoadFrom olarak sağlanan kanıt parçaları, yükleyici tarafından sağlanan kanıt parçalarının yerini alır.

  • Aynı derlemede bu yöntemi birden çok kez çağırırsanız ancak farklı bir kanıt belirtilirse, farklı kanıt belirtimlerinin eşitliği ve bütünlüğü belirlenemediğinden ortak dil çalışma zamanı bir FileLoadException oluşturmaz. İlk başarılı olan kanıt, kullanılan kanıttır.

  • Ortak nesne LoadFrom dosya biçimi (COFF) görüntüsünü yüklemek için parametresi olan Byte[] bir yöntem kullandığınızda kanıt birleştirilir. Zoneve UrlSite çağrı derlemesinden devralınır ve HashStrongName COFF derlemesinden alınır.

  • Parametreli bir LoadFromByte[] yöntem kullandığınızda ve Evidence COFF görüntüsünü yüklemek için yalnızca sağlanan kanıt kullanılır. Çağıran derlemenin kanıtı ve COFF görüntüsünün kanıtı yoksayılır.

Şunlara uygulanır

LoadFrom(String, Byte[], AssemblyHashAlgorithm)

Kaynak:
Assembly.cs
Kaynak:
Assembly.cs
Kaynak:
Assembly.cs

Dosya adı veya yolu, karma değeri ve karma algoritması verilen bir derlemeyi yükler.

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

Parametreler

assemblyFile
String

Derleme bildirimini içeren dosyanın adı veya yolu.

hashValue
Byte[]

Hesaplanan karma kodun değeri.

hashAlgorithm
AssemblyHashAlgorithm

Karma dosyaları ve tanımlayıcı adı oluşturmak için kullanılan karma algoritması.

Döndürülenler

Yüklenen derleme.

Özel durumlar

assemblyFile, null değeridir.

assemblyFile bulunamadı veya yüklemeye çalıştığınız modül bir dosya adı uzantısı belirtmiyor.

Bulunan bir dosya yüklenemedi.

-veya-

Uzak derlemelerde kod yürütme özelliği devre dışıdır. Bkz <. loadFromRemoteSources>.

assemblyFile şu anda yüklü olan çalışma zamanı için geçerli bir derleme değildir; örneğin, 64 bit işlemde 32 bit derleme.

"file://" ile başlamayan bir kod tabanı gerekli WebPermissionolmadan belirtildi.

assemblyFile parametresi boş bir dizedir ("").

Derleme adı, sistem tarafından tanımlanan maksimum uzunluğu aşıyor.

Açıklamalar

parametresi, assemblyFile kaçış karakterleri olmayan bir URI'ye başvurmalıdır. Bu yöntem, URI'deki tüm geçersiz karakterler için kaçış karakterleri sağlar.

Not

Dosya aktarım protokolü (FTP) desteklenmez. için assemblyFile sağlanan URI bir FTP adresiyse, derleme yüklenmez. Özel durum oluşturulmaz.

assemblyFile geçerli dizine mutlak veya göreli olabilir.

Derlemeler üç bağlamdan birine yüklenebilir veya bağlam olmadan yüklenebilir:

  • Yük bağlamı, yoklama tarafından bulunan derlemeleri içerir: genel bütünleştirilmiş kod önbelleğinde, çalışma zamanı barındırılıyorsa konak derleme deposunda veya uygulama etki alanının ve PrivateBinPath içindeApplicationBase. Yöntem yükleme derlemelerinin Load çoğu bu bağlama yüklenir.

  • Yük kaynağı bağlamı, kullanıcının yoklama işlemine dahil olmayan bir yol sağladığı derlemeleri içerir. LoadFrom, CreateInstanceFromve ExecuteAssembly yolları tarafından yüklenen yöntemlere örnek olarak verilebilir.

    .NET Framework 4'den başlayarak, URI'sinin uzak bir konum belirtmesi assemblyFile durumunda derleme yüklemesi varsayılan olarak devre dışı bırakılır ve LoadFrom yöntemi bir FileLoadExceptionoluşturur. Uzak konumlardan yüklenen kodun yürütülmesini etkinleştirmek için yapılandırma öğesini kullanabilirsiniz <loadFromRemoteSources> .

  • Yalnızca yansıma bağlamı ve ReflectionOnlyLoadFrom yöntemleriyle ReflectionOnlyLoad yüklenen derlemeleri içerir; bu bağlamlardaki kod yürütülemez.

  • Kullanıcı derlemeyi oluşturduysa veya bulduysa, herhangi bir bağlamda değildir. Bu, derleme içeren bir bayt dizisi belirten yöntemin Load aşırı yüklemeleri kullanılarak yüklenen derlemeler ve yansıma ile oluşturulan geçici dinamik derlemeler için geçerlidir ve diske kaydedilmez.

Kaynak yükleme bağlamı, bir derlemenin yoklama işlemine dahil olmayan bir yoldan yüklenmesini sağlar ve yol bilgileri bağlam tarafından korunduğu için bu yol üzerindeki bağımlılıkların bulunmasına ve yüklenmesine izin verir.

LoadFrom yöntemi aşağıdaki dezavantajlara sahiptir. Bunun yerine kullanmayı Load göz önünde bulundurun.

  • Aynı kimliğe sahip bir derleme zaten yüklüyse, LoadFrom farklı bir yol belirtilmiş olsa bile yüklenen derlemeyi döndürür.

  • Bir derleme ile LoadFromyüklenirse ve daha sonra yük bağlamındaki bir derleme aynı derlemeyi görünen ada göre yüklemeyi denerse, yükleme girişimi başarısız olur. Bir derleme seri durumdan çıkarıldığında bu durum oluşabilir.

  • Bir derleme ile LoadFromyüklenirse ve yoklama yolu aynı kimliğe ancak farklı bir konuma sahip bir derleme içeriyorsa, bir , MissingMethodExceptionveya başka beklenmeyen InvalidCastExceptiondavranışlar oluşabilir.

  • LoadFrom belirtilen FileIOPermissionAccess.Read yolda ve FileIOPermissionAccess.PathDiscovery, veya WebPermissiontaleplerini gösterir.

  • için assemblyFileyerel bir görüntü varsa kullanılmaz. Derleme, etki alanı nötr olarak yüklenemez.

Derleme, yükleyicinin sağladığı kanıtlarla yüklenir.

Şunlara uygulanır

LoadFrom(String)

Kaynak:
Assembly.cs
Kaynak:
Assembly.cs
Kaynak:
Assembly.cs

Dosya adı veya yolu verilen bir derlemeyi yükler.

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

Parametreler

assemblyFile
String

Derleme bildirimini içeren dosyanın adı veya yolu.

Döndürülenler

Yüklenen derleme.

Özel durumlar

assemblyFile, null değeridir.

assemblyFile bulunamadı veya yüklemeye çalıştığınız modül bir dosya adı uzantısı belirtmiyor.

Bulunan bir dosya yüklenemedi.

-veya-

Uzak derlemelerde kod yürütme özelliği devre dışıdır. Bkz <. loadFromRemoteSources>.

assemblyFile şu anda yüklü olan çalışma zamanı için geçerli bir derleme değildir; örneğin, 64 bit işlemde 32 bit derleme.

"file://" ile başlamayan bir kod tabanı gerekli WebPermissionolmadan belirtildi.

assemblyFile parametresi boş bir dizedir ("").

Derleme adı, sistem tarafından tanımlanan uzunluk üst sınırını aşıyor.

Örnekler

Aşağıdaki örnek, dosya adı veya yolu verilen bir derlemeyi yükler.

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

Açıklamalar

parametresi, assemblyFile kaçış karakterleri olmayan bir URI'ye başvurmalıdır. Bu yöntem, URI'deki tüm geçersiz karakterler için kaçış karakterleri sağlar.

Not

Dosya aktarım protokolü (FTP) desteklenmiyor. için assemblyFile sağlanan URI bir FTP adresiyse, derleme yüklenmez. Özel durum oluşturulmaz.

assemblyFile geçerli dizine göre veya mutlak olabilir.

Derlemeler üç bağlamdan birine yüklenebilir veya bağlam olmadan yüklenebilir:

  • Yük bağlamı, yoklama tarafından bulunan derlemeleri içerir: GAC'de, çalışma zamanı barındırılıyorsa bir konak derleme deposunda veya uygulama etki alanının ve PrivateBinPath içindeApplicationBase. Yöntemin Load çoğu aşırı yükleme derlemelerini bu bağlama yükler.

  • Yükten yükleme bağlamı, kullanıcının yoklama tarafından aranan dizinlere dahil olmayan bir yol sağladığı derlemeleri içerir. LoadFrom, CreateInstanceFromve ExecuteAssembly yol ile yüklenen yöntemlere örnektir.

    .NET Framework 4'den başlayarak, URI'sinin uzak bir konum belirtmesi assemblyFile durumunda derleme yüklemesi varsayılan olarak devre dışı bırakılır ve LoadFrom yöntemi bir FileLoadExceptionoluşturur. Uzak konumlardan yüklenen kodun yürütülmesini etkinleştirmek için yapılandırma öğesini kullanabilirsiniz <loadFromRemoteSources> .

  • Yalnızca yansıma bağlamı ve ReflectionOnlyLoadFrom yöntemleriyle ReflectionOnlyLoad yüklenen derlemeleri içerir; bu bağlamlardaki kod yürütülemez.

  • Kullanıcı derlemeyi oluşturduysa veya bulduysa, herhangi bir bağlamda değildir. Bu, derleme içeren bir bayt dizisi belirten yöntemin Load aşırı yüklemeleri kullanılarak yüklenen derlemeler ve yansıma ile oluşturulan geçici dinamik derlemeler için geçerlidir ve diske kaydedilmez.

Kaynak yükleme bağlamı, bir derlemenin yoklamada bulunmayan bir yoldan yüklenmesini sağlar ve yol bilgileri bağlam tarafından korunduğu için bu yol üzerindeki bağımlılıkların bulunmasına ve yüklenmesine izin verir.

LoadFrom yöntemi aşağıdaki dezavantajlara sahiptir. Bunun yerine kullanmayı Load göz önünde bulundurun.

  • Aynı kimliğe sahip bir derleme load-from bağlamında zaten yüklüyse, LoadFrom farklı bir yol belirtilmiş olsa bile yüklenen derlemeyi döndürür.

  • Bir derleme, yük bağlamında aynı kimliğe sahip bir derleme mevcut olsa bile yükten yükleme bağlamında yüklenebilir. İki derleme arasında birlikte çalışabilirlik çalışmayacak ve bu da , MissingMethodExceptiongibi InvalidCastExceptionhatalara veya diğer beklenmeyen davranışlara yol açar.

  • Yoklama yolundaki bir konumla çağrılması LoadFrom , derlemeyi yükleme bağlamında değil, yük bağlamında yükler.

  • Bağlama yeniden yönlendirme ilkesi tarafından kimliği ters çevrilen bir derleme dosyası'na LoadFromgeçirilirse, ilke uygulanır ve derleme yük bağlamındaki yoklama yolundan yüklenir.

  • Bir derleme yükleme kaynağı bağlamında yüklenirse ve daha sonra yükleme bağlamındaki bir derleme aynı derlemeyi görünen adla yüklemeyi denerse, yükleme girişimi başarısız olur. Bir derleme seri durumdan çıkarıldığında bu durum oluşabilir.

  • LoadFrom belirtilen FileIOPermissionAccess.Read yolda ve FileIOPermissionAccess.PathDiscovery, veya WebPermissiontaleplerini gösterir.

  • için assemblyFileyerel bir görüntü varsa kullanılmaz. Derleme, etki alanı nötr olarak yüklenemez.

Şunlara uygulanır

LoadFrom(String, Evidence)

Dikkat

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.

Dosya adı veya yolu verilen ve güvenlik kanıtı sağlayan bir derlemeyi yükler.

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

Parametreler

assemblyFile
String

Derleme bildirimini içeren dosyanın adı veya yolu.

securityEvidence
Evidence

Derleme yüklemesi için kanıt.

Döndürülenler

Yüklenen derleme.

Öznitelikler

Özel durumlar

assemblyFile, null değeridir.

assemblyFile bulunamadı veya yüklemeye çalıştığınız modül bir dosya adı uzantısı belirtmiyor.

Bulunan bir dosya yüklenemedi.

-veya-

securityEvidence belirsiz değil ve geçersiz olduğu belirlendi.

-veya-

Uzak derlemelerde kod yürütme özelliği devre dışıdır. Bkz <. loadFromRemoteSources>.

assemblyFile şu anda yüklü olan çalışma zamanı için geçerli bir derleme değildir; örneğin, 64 bit işlemde 32 bit derleme.

"file://" ile başlamayan bir kod tabanı gerekli WebPermissionolmadan belirtildi.

assemblyFile parametresi boş bir dizedir ("").

Derleme adı, sistem tarafından tanımlanan uzunluk üst sınırını aşıyor.

Açıklamalar

parametresi, assemblyFile kaçış karakterleri olmayan bir URI'ye başvurmalıdır. Bu yöntem, URI'deki tüm geçersiz karakterler için kaçış karakterleri sağlar.

Not

Dosya aktarım protokolü (FTP) desteklenmiyor. için assemblyFile sağlanan URI bir FTP adresiyse, derleme yüklenmez. Özel durum oluşturulmaz.

assemblyFile geçerli dizine göre veya mutlak olabilir.

Derlemeler üç bağlamdan birine yüklenebilir veya bağlam olmadan yüklenebilir:

  • Yük bağlamı, yoklama tarafından bulunan derlemeleri içerir: GAC'de, çalışma zamanı barındırılıyorsa bir konak derleme deposunda veya uygulama etki alanının ve PrivateBinPath içindeApplicationBase. Yöntemin Load çoğu aşırı yükleme derlemelerini bu bağlama yükler.

  • Yükten yükleme bağlamı, kullanıcının yoklama tarafından aranan dizinlere dahil olmayan bir yol sağladığı derlemeleri içerir. LoadFrom, CreateInstanceFromve ExecuteAssembly yol ile yüklenen yöntemlere örnektir.

    .NET Framework 4'den başlayarak, URI'sinin uzak bir konum belirtmesi assemblyFile durumunda derleme yüklemesi varsayılan olarak devre dışı bırakılır ve LoadFrom yöntemi bir FileLoadExceptionoluşturur. Uzak konumlardan yüklenen kodun yürütülmesini etkinleştirmek için yapılandırma öğesini kullanabilirsiniz <loadFromRemoteSources> .

  • Yalnızca yansıma bağlamı ve ReflectionOnlyLoadFrom yöntemleriyle ReflectionOnlyLoad yüklenen derlemeleri içerir; bu bağlamlardaki kod yürütülemez.

  • Kullanıcı derlemeyi oluşturduysa veya bulduysa, herhangi bir bağlamda değildir. Bu, derleme içeren bir bayt dizisi belirten yöntemin Load aşırı yüklemeleri kullanılarak yüklenen derlemeler ve yansıma ile oluşturulan geçici dinamik derlemeler için geçerlidir ve diske kaydedilmez.

Kaynak yükleme bağlamı, bir derlemenin yoklamada bulunmayan bir yoldan yüklenmesini sağlar ve yol bilgileri bağlam tarafından korunduğu için bu yol üzerindeki bağımlılıkların bulunmasına ve yüklenmesine izin verir.

LoadFrom yöntemi aşağıdaki dezavantajlara sahiptir. Bunun yerine kullanmayı Load göz önünde bulundurun.

  • Aynı kimliğe sahip bir derleme zaten yüklüyse, LoadFrom farklı bir yol belirtilmiş olsa bile yüklenen derlemeyi döndürür.

  • Bir derleme ile LoadFromyüklenirse ve daha sonra yük bağlamındaki bir derleme aynı derlemeyi görünen ada göre yüklemeyi denerse, yükleme girişimi başarısız olur. Bir derleme seri durumdan çıkarıldığında bu durum oluşabilir.

  • Bir derleme ile LoadFromyüklenirse ve yoklama yolu aynı kimliğe ancak farklı bir konuma sahip bir derleme içeriyorsa, bir , MissingMethodExceptionveya başka beklenmeyen InvalidCastExceptiondavranışlar oluşabilir.

  • LoadFrom belirtilen FileIOPermissionAccess.Read yolda ve FileIOPermissionAccess.PathDiscovery, veya WebPermissiontaleplerini gösterir.

  • için assemblyFileyerel bir görüntü varsa kullanılmaz. Derleme, etki alanı nötr olarak yüklenemez.

Bir derlemeye belirli izinlerin verilip verilmediği kanıta göre belirlenir. Derleme ve güvenlik kanıtı birleştirme kuralları aşağıdaki gibidir:

  • Parametre içermeyen Evidence bir LoadFrom yöntem kullandığınızda, derleme yükleyicinin sağladığı kanıt ile yüklenir.

  • Bir parametre ile Evidence bir LoadFrom yöntem kullandığınızda, kanıt parçaları birleştirilir. Yöntemine bağımsız değişken LoadFrom olarak sağlanan kanıt parçaları, yükleyici tarafından sağlanan kanıt parçalarının yerini alır.

  • Bu yöntemi aynı derlemede birden çok kez çağırırsanız ancak farklı bir kanıt belirtilirse, farklı kanıt belirtimlerinin eşitliği ve bütünlüğü belirlenemediğinden ortak dil çalışma zamanı bir FileLoadException oluşturmaz. İlk başarılı olan kanıt, kullanılan kanıttır.

  • Ortak nesne LoadFrom dosyası biçimi (COFF) görüntüsünü yüklemek için parametresi olan Byte[] bir yöntem kullandığınızda kanıt birleştirilir. ZoneSite ve Url çağrı derlemesinden devralınır ve HashStrongName COFF derlemesinden alınır.

  • Bir parametre ile bir LoadFromByte[] yöntem kullandığınızda ve Evidence bir COFF görüntüsünü yüklemek için yalnızca sağlanan kanıt kullanılır. Çağırma derlemesinin kanıtı ve COFF görüntüsünün kanıtı yoksayılır.

Ayrıca bkz.

Şunlara uygulanır