Aracılığıyla paylaş


AppDomain.CreateInstanceFrom Yöntem

Tanım

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 culturenull, 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ı typeNameyetkilendirmek 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

assemblyFile, null değeridir.

-veya-

typeName, null değeridir.

Ç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 securityAttributesnull.

İşlem, yüklenmemiş bir uygulama etki alanında deneniyor.

assemblyFile bulunamadı.

typeName içinde assemblyFilebulunamadı.

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 culturenull, 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

assemblyFile, null değeridir.

-veya-

typeName, null değeridir.

Ç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 assemblyFilebulunamadı.

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 assemblyFilebulunamadı.

Ç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, null değeridir.

-veya-

typeName, null değeridir.

assemblyFile bulunamadı.

typeName içinde assemblyFilebulunamadı.

İş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 MarshalableExampleoluş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.

Ayrıca bkz.

Şunlara uygulanır