AppDomain.CreateInstanceFrom 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.
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni bir örneğini oluşturur.
Aşırı Yüklemeler
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Geçersiz.
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur. |
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur. |
CreateInstanceFrom(String, String, Object[]) |
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur. |
CreateInstanceFrom(String, String) |
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur. |
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Dikkat
Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur.
public:
virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
abstract member CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstanceFrom which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
abstract member CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityAttributes As Evidence) As ObjectHandle
Parametreler
- assemblyFile
- String
İstenen türü tanımlayan bir derlemeyi içeren dosyanın adı (yol dahil). Derleme yöntemi kullanılarak LoadFrom(String) yüklenir.
- typeName
- String
ad alanı dahil ancak özelliği tarafından FullName döndürülen derleme dahil olmak üzere istenen türün tam adı.
- ignoreCase
- Boolean
Büyük/küçük harfe duyarlı bir arama yapılıp yapılmayacağını belirten bir Boole değeri.
- bindingAttr
- BindingFlags
Oluşturucu aramasını etkileyen sıfır veya daha fazla bit bayrağının typeName
birleşimi. Sıfır ise bindingAttr
, ortak oluşturucular için büyük/küçük harfe duyarlı bir arama yapılır.
- binder
- Binder
Bağlamayı, bağımsız değişken türlerini zorlamayı, üyeleri çağırmayı ve nesneleri yansıma aracılığıyla almayı MemberInfo sağlayan bir nesne. null ise binder
, varsayılan bağlayıcı kullanılır.
- args
- Object[]
Oluşturucuya geçirilecek bağımsız değişkenler. Bu bağımsız değişken dizisi, çağrılacak oluşturucunun parametrelerinin sayısı, sırası ve türüyle eşleşmelidir. Parametresiz oluşturucu tercih edilirse boş args
bir dizi veya null olmalıdır.
- culture
- CultureInfo
Oluşturucu için typeName
bildirilen resmi türlerin zorlamasını args
yöneten kültüre özgü bilgiler. ise culture
null
, CultureInfo geçerli iş parçacığı için kullanılır.
- activationAttributes
- Object[]
Etkinleştirmeye katılabilen bir veya daha fazla öznitelik dizisi. Genellikle, uzak nesneyi etkinleştirmek için gereken URL'yi belirten tek UrlAttribute bir nesne içeren bir dizi.
Bu parametre istemci tarafından etkinleştirilen nesnelerle ilgilidir. İstemci etkinleştirmesi, geriye dönük uyumluluk için korunan ancak yeni geliştirme için önerilmez eski bir teknolojidir. Dağıtılmış uygulamalar bunun yerine Windows Communication Foundation kullanmalıdır.
- securityAttributes
- Evidence
oluşturulmasını typeName
yetkilendirmek için kullanılan bilgiler.
Döndürülenler
Yeni örnek için sarmalayıcı olan veya null
bulunamaz bir typeName
nesne. Gerçek nesneye erişmek için, dönüş değerinin sarmalanmış halden çıkarılması gerekir.
Uygulamalar
- Öznitelikler
Özel durumlar
Çağıran, öğesinden MarshalByRefObjectdevralmayan bir nesne için etkinleştirme öznitelikleri sağlayamaz.
-veya-
securityAttributes
değildir null
. Eski CAS ilkesi etkinleştirilmediğinde olmalıdır securityAttributes
null
.
İşlem, yüklenmemiş bir uygulama etki alanında deneniyor.
assemblyFile
bulunamadı.
typeName
içinde assemblyFile
bulunamadı.
Eşleşen genel oluşturucu bulunamadı.
Çağıranın bu oluşturucuyu çağırmak için yeterli izni yoktur.
assemblyFile
şu anda yüklü olan çalışma zamanı için geçerli bir derleme değil.
Bir derleme veya modül iki farklı kanıtla iki kez yüklendi.
Bu örnek şeklindedir null
.
Açıklamalar
Bu yöntem hakkında daha fazla bilgi için yöntemine Activator.CreateInstanceFrom bakın.
yöntemi, çağrının CreateInstanceFrom yapıldığı uygulama etki alanı dışında bir hedef uygulama etki alanında örnek oluşturmak için kullanıldığında, derleme hedef uygulama etki alanına yüklenir. Ancak örnek, çağıran uygulama etki alanında sarmalanmış halden çıkarılırsa, sarmalanmış halden çıkarılmış örneği belirli şekillerde kullanmak derlemenin çağıran uygulama etki alanına yüklenmesine neden olabilir. Örneğin, örnek sarmalanmış halden çıkarıldıktan sonra, geç bağlanan yöntemlerinin çağrılması için tür bilgileri istenebilir. Derleme, çağıran uygulama etki alanına yüklendiğinde; özel durumlar oluşabilir.
Aynı derlemenin başka bir sürümü daha önce çağıran uygulama etki alanına yüklendiyse veya çağıran uygulama etki alanının yükleme yolu hedef uygulama etki alanından farklıysa, gibi MissingMethodException özel durumlar oluşabilir.
Çağıran uygulama etki alanı örnek türüne erken bağlı çağrılar yaparsa, InvalidCastException örneği atama girişiminde bulunulduğunda oluşturulabilir.
Ayrıca bkz.
Şunlara uygulanır
CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Kaynak:
- AppDomain.cs
- Kaynak:
- AppDomain.cs
- Kaynak:
- AppDomain.cs
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur.
public:
System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public System.Runtime.Remoting.ObjectHandle? CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
member this.CreateInstanceFrom : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle
Parametreler
- assemblyFile
- String
İstenen türü tanımlayan bir derlemeyi içeren dosyanın adı (yol dahil). Derleme yöntemi kullanılarak LoadFrom(String) yüklenir.
- typeName
- String
ad alanı dahil ancak özelliği tarafından FullName döndürülen derleme dahil olmak üzere istenen türün tam adı.
- ignoreCase
- Boolean
Büyük/küçük harfe duyarlı bir arama yapılıp yapılmayacağını belirten bir Boole değeri.
- bindingAttr
- BindingFlags
Oluşturucu aramasını etkileyen sıfır veya daha fazla bit bayrağının typeName
birleşimi. Sıfır ise bindingAttr
, ortak oluşturucular için büyük/küçük harfe duyarlı bir arama yapılır.
- binder
- Binder
Bağlamayı, bağımsız değişken türlerini zorlamayı, üyeleri çağırmayı ve nesneleri yansıma aracılığıyla almayı MemberInfo sağlayan bir nesne. null ise binder
, varsayılan bağlayıcı kullanılır.
- args
- Object[]
Oluşturucuya geçirilecek bağımsız değişkenler. Bu bağımsız değişken dizisi, çağrılacak oluşturucunun parametrelerinin sayısı, sırası ve türüyle eşleşmelidir. Parametresiz oluşturucu tercih edilirse boş args
bir dizi veya null olmalıdır.
- culture
- CultureInfo
Oluşturucu için typeName
bildirilen resmi türlerin zorlamasını args
yöneten kültüre özgü bilgiler. ise culture
null
, CultureInfo geçerli iş parçacığı için kullanılır.
- activationAttributes
- Object[]
Etkinleştirmeye katılabilen bir veya daha fazla öznitelik dizisi. Genellikle, uzak nesneyi etkinleştirmek için gereken URL'yi belirten tek UrlAttribute bir nesne içeren bir dizi.
Bu parametre istemci tarafından etkinleştirilen nesnelerle ilgilidir. İstemci etkinleştirmesi, geriye dönük uyumluluk için korunan ancak yeni geliştirme için önerilmez eski bir teknolojidir. Dağıtılmış uygulamalar bunun yerine Windows Communication Foundation kullanmalıdır.
Döndürülenler
Yeni örnek için sarmalayıcı olan veya null
bulunamaz bir typeName
nesne. Gerçek nesneye erişmek için, dönüş değerinin sarmalanmış halden çıkarılması gerekir.
Özel durumlar
Çağıran, öğesinden MarshalByRefObjectdevralmayan bir nesne için etkinleştirme öznitelikleri sağlayamaz.
İşlem, yüklenmemiş bir uygulama etki alanında deneniyor.
assemblyFile
bulunamadı.
typeName
içinde assemblyFile
bulunamadı.
Eşleşen genel oluşturucu bulunamadı.
Çağıranın bu oluşturucuyu çağırmak için yeterli izni yoktur.
assemblyFile
şu anda yüklü olan çalışma zamanı için geçerli bir derleme değil.
Bir derleme veya modül iki farklı kanıtla iki kez yüklendi.
Bu örnek şeklindedir null
.
Açıklamalar
Daha fazla bilgi için yöntemine Activator.CreateInstanceFrom bakın.
yöntemi, çağrının CreateInstanceFrom yapıldığı uygulama etki alanı dışında bir hedef uygulama etki alanında örnek oluşturmak için kullanıldığında, derleme hedef uygulama etki alanına yüklenir. Ancak örnek, çağıran uygulama etki alanında sarmalanmış halden çıkarılırsa, sarmalanmış halden çıkarılmış örneği belirli şekillerde kullanmak derlemenin çağıran uygulama etki alanına yüklenmesine neden olabilir. Örneğin, örnek sarmalanmış halden çıkarıldıktan sonra, geç bağlanan yöntemlerinin çağrılması için tür bilgileri istenebilir. Derleme, çağıran uygulama etki alanına yüklendiğinde; özel durumlar oluşabilir.
Aynı derlemenin başka bir sürümü daha önce çağıran uygulama etki alanına yüklendiyse veya çağıran uygulama etki alanının yükleme yolu hedef uygulama etki alanından farklıysa, gibi MissingMethodException özel durumlar oluşabilir.
Çağıran uygulama etki alanı örnek türüne erken bağlı çağrılar yaparsa, InvalidCastException örneği atama girişiminde bulunulduğunda oluşturulabilir.
Ayrıca bkz.
Şunlara uygulanır
CreateInstanceFrom(String, String, Object[])
- Kaynak:
- AppDomain.cs
- Kaynak:
- AppDomain.cs
- Kaynak:
- AppDomain.cs
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur.
public:
System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public:
virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public System.Runtime.Remoting.ObjectHandle? CreateInstanceFrom (string assemblyFile, string typeName, object?[]? activationAttributes);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName, object[] activationAttributes);
member this.CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
abstract member CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String, activationAttributes As Object()) As ObjectHandle
Parametreler
- assemblyFile
- String
İstenen türü tanımlayan bir derlemeyi içeren dosyanın adı (yol dahil). Derleme yöntemi kullanılarak LoadFrom(String) yüklenir.
- typeName
- String
ad alanı dahil ancak özelliği tarafından FullName döndürülen derleme dahil olmak üzere istenen türün tam adı.
- activationAttributes
- Object[]
Etkinleştirmeye katılabilen bir veya daha fazla öznitelik dizisi. Genellikle, uzak nesneyi etkinleştirmek için gereken URL'yi belirten tek UrlAttribute bir nesne içeren bir dizi.
Bu parametre istemci tarafından etkinleştirilen nesnelerle ilgilidir. İstemci etkinleştirmesi, geriye dönük uyumluluk için tutulan ancak yeni geliştirme için önerilmez eski bir teknolojidir. Dağıtılmış uygulamalar bunun yerine Windows Communication Foundation kullanmalıdır.
Döndürülenler
Yeni örnek için sarmalayıcı olan veya null
bulunamazsa typeName
nesne. Gerçek nesneye erişmek için, dönüş değerinin sarmalanmış halden çıkarılması gerekir.
Uygulamalar
Özel durumlar
assemblyFile
, null
değeridir.
assemblyFile
bulunamadı.
typeName
içinde assemblyFile
bulunamadı.
Çağıranın bu oluşturucuyu çağırmak için yeterli izni yoktur.
Eşleşen genel oluşturucu bulunamadı.
Çağıran, öğesinden MarshalByRefObjectdevralmayan bir nesne için etkinleştirme öznitelikleri sağlayamaz.
İşlem, yüklenmemiş bir uygulama etki alanında deneniyor.
assemblyFile
şu anda yüklü olan çalışma zamanı için geçerli bir derleme değil.
Bir derleme veya modül iki farklı kanıtla iki kez yüklendi.
Bu örnek şeklindedir null
.
Açıklamalar
için typeName
parametresiz oluşturucu çağrılır.
Bu yöntem hakkında daha fazla bilgi için yöntemine Activator.CreateInstanceFrom bakın.
yöntemi, çağrının CreateInstanceFrom yapıldığı uygulama etki alanı dışında bir hedef uygulama etki alanında bir örnek oluşturmak için kullanıldığında, derleme hedef uygulama etki alanına yüklenir. Ancak örnek, çağıran uygulama etki alanında sarmalanmış halden çıkarılırsa, sarmalanmış halden çıkarılmış örneği belirli şekillerde kullanmak derlemenin çağıran uygulama etki alanına yüklenmesine neden olabilir. Örneğin, örnek sarmalanmış halden çıkarıldıktan sonra, geç bağlanan yöntemlerinin çağrılması için tür bilgileri istenebilir. Derleme, çağıran uygulama etki alanına yüklendiğinde; özel durumlar oluşabilir.
Aynı derlemenin başka bir sürümü daha önce çağıran uygulama etki alanına yüklendiyse veya çağıran uygulama etki alanının yükleme yolu hedef uygulama etki alanından farklıysa, gibi MissingMethodException özel durumlar oluşabilir.
Çağıran uygulama etki alanı örnek türüne erken bağlı çağrılar yaparsa, InvalidCastException örneği atama girişiminde bulunulduğunda oluşturulabilir.
Ayrıca bkz.
Şunlara uygulanır
CreateInstanceFrom(String, String)
- Kaynak:
- AppDomain.cs
- Kaynak:
- AppDomain.cs
- Kaynak:
- AppDomain.cs
Belirtilen derleme dosyasında tanımlanan belirli bir türün yeni örneğini oluşturur.
public:
System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName);
public:
virtual System::Runtime::Remoting::ObjectHandle ^ CreateInstanceFrom(System::String ^ assemblyFile, System::String ^ typeName);
public System.Runtime.Remoting.ObjectHandle? CreateInstanceFrom (string assemblyFile, string typeName);
public System.Runtime.Remoting.ObjectHandle CreateInstanceFrom (string assemblyFile, string typeName);
member this.CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
abstract member CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
override this.CreateInstanceFrom : string * string -> System.Runtime.Remoting.ObjectHandle
Public Function CreateInstanceFrom (assemblyFile As String, typeName As String) As ObjectHandle
Parametreler
- assemblyFile
- String
İstenen türü tanımlayan bir derlemeyi içeren dosyanın adı (yol dahil). Derleme yöntemi kullanılarak LoadFrom(String) yüklenir.
- typeName
- String
ad alanı dahil ancak özelliği tarafından FullName döndürülen derleme dahil olmak üzere istenen türün tam adı.
Döndürülenler
Yeni örnek için sarmalayıcı olan veya null
bulunamazsa typeName
nesne. Gerçek nesneye erişmek için, dönüş değerinin sarmalanmış halden çıkarılması gerekir.
Uygulamalar
Özel durumlar
assemblyFile
bulunamadı.
typeName
içinde assemblyFile
bulunamadı.
İşlem, yüklenmemiş bir uygulama etki alanında deneniyor.
Parametresiz ortak oluşturucu bulunamadı.
Çağıranın bu oluşturucuyu çağırmak için yeterli izni yoktur.
assemblyFile
şu anda yüklü olan çalışma zamanı için geçerli bir derleme değil.
Bir derleme veya modül iki farklı kanıtla iki kez yüklendi.
Bu örnek şeklindedir null
.
Örnekler
Aşağıdaki örnekte, hedef uygulama etki alanında bir nesnenin örneğini oluşturmak ve yöntemlerini çağırmak için yöntem aşırı yüklemesinin nasıl kullanılacağı CreateInstanceFrom(String, String) gösterilmektedir.
Örnek, uygulama etki alanı sınırları arasında sıralanabilen sınıfını tanımlar MarshalableExample
. Örnek, şu anda yürütülen derlemenin yolunu oluşturur, bir hedef uygulama etki alanı oluşturur ve yöntem aşırı yüklemesini kullanarak CreateInstanceFrom(String, String) örnek derlemeyi hedef uygulama etki alanına yükler ve örneğini MarshalableExample
oluşturur.
Not
Bu örnekte yol mutlaktır, ancak yöntemi derlemeyi yüklemek için kullanıldığından Assembly.LoadFrom göreli yol da işe yarayacaktı.
Nesne tutamacını çıkardıktan sonra, örnek bir nesneyi hedef uygulama etki alanında kullanmanın üç yolunu gösterir:
Yansıma kullanarak geç bağlama ile bir yöntemi çağırma. Bunun için tür bilgileri gerekir ve bu da derlemenin çağıranın uygulama etki alanına yüklenmesine neden olur. (Bu örnekte zaten yüklenmiştir.)
Nesneyi hem çağıran hem de çağıran tarafından bilinen bir arabirime atama. Arabirim çağıran derlemede veya hem çağıran hem de çağıran tarafından başvurulan üçüncü bir derlemede tanımlanmışsa, çağrılan derleme çağıranın uygulama etki alanına yüklenmez.
Türü çağıran tarafından bilindiğinde nesneyi doğrudan kullanma. Derleme, çağıranın uygulama etki alanına yüklenmelidir.
Çağrılan derlemenin çağıranın uygulama etki alanına yüklenmesini önlemenin bir diğer yolu da çağıranın sınıfından MarshalByRefObject türetilmesi ve hedef uygulama etki alanında çalıştırılabilir bir yöntem tanımlamasıdır. Hedef derleme hedef uygulama etki alanına zaten yüklendiğinden, bu yöntem bir hedef derlemeyi incelemek için yansımayı kullanabilir. Özelliğin örneğine DynamicDirectory bakın.
using namespace System;
public interface class ITest
{
void Test(String^ greeting);
};
public ref class MarshalableExample : MarshalByRefObject, ITest
{
public:
virtual void Test(String^ greeting)
{
Console::WriteLine("{0} from '{1}'!", greeting,
AppDomain::CurrentDomain->FriendlyName);
}
};
void main()
{
// Construct a path to the current assembly.
String^ assemblyPath = Environment::CurrentDirectory + "\\" +
MarshalableExample::typeid->Assembly->GetName()->Name + ".exe";
AppDomain^ ad = AppDomain::CreateDomain("MyDomain");
System::Runtime::Remoting::ObjectHandle^ oh =
ad->CreateInstanceFrom(assemblyPath, "MarshalableExample");
Object^ obj = oh->Unwrap();
// Three ways to use the newly created object, depending on how
// much is known about the type: Late bound, early bound through
// a mutually known interface, or early binding of a known type.
//
obj->GetType()->InvokeMember("Test",
System::Reflection::BindingFlags::InvokeMethod,
Type::DefaultBinder, obj, gcnew array<Object^> { "Hello" });
ITest^ it = (ITest^) obj;
it->Test("Hi");
MarshalableExample^ ex = (MarshalableExample^) obj;
ex->Test("Goodbye");
}
/* This example produces the following output:
Hello from 'MyDomain'!
Hi from 'MyDomain'!
Goodbye from 'MyDomain'!
*/
using System;
public interface ITest
{
void Test(string greeting);
}
public class MarshalableExample : MarshalByRefObject, ITest
{
static void Main()
{
// Construct a path to the current assembly.
string assemblyPath = Environment.CurrentDirectory + "\\" +
typeof(MarshalableExample).Assembly.GetName().Name + ".exe";
AppDomain ad = AppDomain.CreateDomain("MyDomain");
System.Runtime.Remoting.ObjectHandle oh =
ad.CreateInstanceFrom(assemblyPath, "MarshalableExample");
object obj = oh.Unwrap();
// Three ways to use the newly created object, depending on how
// much is known about the type: Late bound, early bound through
// a mutually known interface, or early binding of a known type.
//
obj.GetType().InvokeMember("Test",
System.Reflection.BindingFlags.InvokeMethod,
Type.DefaultBinder, obj, new object[] { "Hello" });
ITest it = (ITest) obj;
it.Test("Hi");
MarshalableExample ex = (MarshalableExample) obj;
ex.Test("Goodbye");
}
public void Test(string greeting)
{
Console.WriteLine("{0} from '{1}'!", greeting,
AppDomain.CurrentDomain.FriendlyName);
}
}
/* This example produces the following output:
Hello from 'MyDomain'!
Hi from 'MyDomain'!
Goodbye from 'MyDomain'!
*/
open System
type ITest =
abstract Test: string -> unit
type MarshalableExample() =
inherit MarshalByRefObject()
member _.Test greeting =
printfn $"{greeting} from '{AppDomain.CurrentDomain.FriendlyName}'!"
interface ITest with
member this.Test message = this.Test message
// Construct a path to the current assembly.
let assemblyPath =
Environment.CurrentDirectory + "\\" + typeof<MarshalableExample>.Assembly.GetName().Name + ".exe"
let ad = AppDomain.CreateDomain "MyDomain"
let oh =
ad.CreateInstanceFrom(assemblyPath, "MarshalableExample")
let obj = oh.Unwrap()
// Three ways to use the newly created object, depending on how
// much is known about the type: Late bound, early bound through
// a mutually known interface, or early binding of a known type.
//
obj.GetType().InvokeMember("Test",
System.Reflection.BindingFlags.InvokeMethod,
Type.DefaultBinder, obj, [| box "Hello" |])
|> ignore
let it = obj :?> ITest
it.Test "Hi"
let ex = obj :?> MarshalableExample
ex.Test("Goodbye")
(* This example produces the following output:
Hello from 'MyDomain'!
Hi from 'MyDomain'!
Goodbye from 'MyDomain'!
*)
Public Interface ITest
Sub Test(ByVal greeting As String)
End Interface
Public Class MarshalableExample
Inherits MarshalByRefObject
Implements ITest
Shared Sub Main()
' Construct a path to the current assembly.
Dim assemblyPath As String = Environment.CurrentDirectory & "\" &
GetType(MarshalableExample).Assembly.GetName().Name & ".exe"
Dim ad As AppDomain = AppDomain.CreateDomain("MyDomain")
Dim oh As System.Runtime.Remoting.ObjectHandle =
ad.CreateInstanceFrom(assemblyPath, "MarshalableExample")
Dim obj As Object = oh.Unwrap()
' Three ways to use the newly created object, depending on how
' much is known about the type: Late bound, early bound through
' a mutually known interface, or early binding of a known type.
'
obj.GetType().InvokeMember("Test",
System.Reflection.BindingFlags.InvokeMethod,
Type.DefaultBinder, obj, New Object() { "Hello" })
Dim it As ITest = CType(obj, ITest)
it.Test("Hi")
Dim ex As MarshalableExample = CType(obj, MarshalableExample)
ex.Test("Goodbye")
End Sub
Public Sub Test(ByVal greeting As String) Implements ITest.Test
Console.WriteLine("{0} from '{1}'!", greeting,
AppDomain.CurrentDomain.FriendlyName)
End Sub
End Class
' This example produces the following output:
'
'Hello from 'MyDomain'!
'Hi from 'MyDomain'!
'Goodbye from 'MyDomain'!
Açıklamalar
için typeName
parametresiz oluşturucu çağrılır.
Daha fazla bilgi için yöntemine Activator.CreateInstanceFrom bakın.
yöntemi, çağrının CreateInstanceFrom yapıldığı uygulama etki alanı dışında bir hedef uygulama etki alanında bir örnek oluşturmak için kullanıldığında, derleme hedef uygulama etki alanına yüklenir. Ancak örnek, çağıran uygulama etki alanında sarmalanmış halden çıkarılırsa, sarmalanmış halden çıkarılmış örneği belirli şekillerde kullanmak derlemenin çağıran uygulama etki alanına yüklenmesine neden olabilir. Örneğin, örnek sarmalanmış halden çıkarıldıktan sonra, geç bağlanan yöntemlerinin çağrılması için tür bilgileri istenebilir. Derleme, çağıran uygulama etki alanına yüklendiğinde; özel durumlar oluşabilir.
Aynı derlemenin başka bir sürümü daha önce çağıran uygulama etki alanına yüklendiyse veya çağıran uygulama etki alanının yükleme yolu hedef uygulama etki alanından farklıysa, gibi MissingMethodException özel durumlar oluşabilir.
Çağıran uygulama etki alanı örnek türüne erken bağlı çağrılar yaparsa, InvalidCastException örneği atama girişiminde bulunulduğunda oluşturulabilir.