Assembly.LoadFrom Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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:
Derleme için açıkça bir korumalı alan oluşturun. (Bkz . Nasıl yapılır: Korumalı Alanda Kısmen Güvenilen Kod Çalıştırma.)
Yapılandırma öğesinin
true
özniteliğini olarak ayarlayarakenabled
derlemenin<loadFromRemoteSources>
kodunu tam güven içinde çalıştırın. Daha fazla bilgi için yapılandırma öğesi makalesine<loadFromRemoteSources>
bakın.
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 veLoadFrom
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
assemblyFile
yerel 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.Zone
veUrl
Site
çağrı derlemesinden devralınır veHash
StrongName
COFF derlemesinden alınır.Parametreli bir LoadFrom
Byte[]
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 veLoadFrom
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
assemblyFile
yerel 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 veLoadFrom
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
assemblyFile
yerel 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 veLoadFrom
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
assemblyFile
yerel 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.Zone
Site
veUrl
çağrı derlemesinden devralınır veHash
StrongName
COFF derlemesinden alınır.Bir parametre ile bir LoadFrom
Byte[]
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin