Activator Sınıf

Tanım

Yerel veya uzaktan nesne türleri oluşturmak veya var olan uzak nesnelere başvurular almak için yöntemler içerir. Bu sınıf devralınamaz.

public ref class Activator abstract sealed
public ref class Activator sealed : System::Runtime::InteropServices::_Activator
public static class Activator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Activator : System.Runtime.InteropServices._Activator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Activator : System.Runtime.InteropServices._Activator
type Activator = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Activator = class
    interface _Activator
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Activator = class
    interface _Activator
Public Class Activator
Public NotInheritable Class Activator
Implements _Activator
Devralma
Activator
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnekte, çalışma zamanında nesneleri dinamik olarak oluşturmak için sınıfının nasıl kullanılacağı Activator gösterilmektedir.

using namespace System;
using namespace System::Reflection;
using namespace System::Text;

public ref class SomeType
{
public:
    void DoSomething(int x)
    {
        Console::WriteLine("100 / {0} = {1}", x, 100 / x);
    }
};

void main()
{
    // Create an instance of the StringBuilder type using 
    // Activator.CreateInstance.
    Object^ o = Activator::CreateInstance(StringBuilder::typeid);

    // Append a string into the StringBuilder object and display the 
    // StringBuilder.
    StringBuilder^ sb = (StringBuilder^) o;
    sb->Append("Hello, there.");
    Console::WriteLine(sb);

    // Create an instance of the SomeType class that is defined in this 
    // assembly.
    System::Runtime::Remoting::ObjectHandle^ oh = 
        Activator::CreateInstanceFrom(Assembly::GetEntryAssembly()->CodeBase, 
                                      SomeType::typeid->FullName);

    // Call an instance method defined by the SomeType type using this object.
    SomeType^ st = (SomeType^) oh->Unwrap();

    st->DoSomething(5);
};

/* This code produces the following output:
 
Hello, there.
100 / 5 = 20
 */
using System;
using System.Reflection;
using System.Text;

public class SomeType
{
    public void DoSomething(int x)
    {
        Console.WriteLine("100 / {0} = {1}", x, 100 / x);
    }
}

public class Example
{
    static void Main()
    {
        // Create an instance of the StringBuilder type using
        // Activator.CreateInstance.
        Object o = Activator.CreateInstance(typeof(StringBuilder));

        // Append a string into the StringBuilder object and display the
        // StringBuilder.
        StringBuilder sb = (StringBuilder) o;
        sb.Append("Hello, there.");
        Console.WriteLine(sb);

        // Create an instance of the SomeType class that is defined in this
        // assembly.
        System.Runtime.Remoting.ObjectHandle oh =
            Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase,
                                         typeof(SomeType).FullName);

        // Call an instance method defined by the SomeType type using this object.
        SomeType st = (SomeType) oh.Unwrap();

        st.DoSomething(5);
    }
}

/* This code produces the following output:

Hello, there.
100 / 5 = 20
 */
open System
open System.Reflection
open System.Text

type SomeType() =
    member _.DoSomething(x) = printfn $"100 / {x} = {100 / x}"

// Create an instance of the StringBuilder type using Activator.CreateInstance.
let o = Activator.CreateInstance typeof<StringBuilder>

// Append a string into the StringBuilder object and display the StringBuilder.
let sb = o :?> StringBuilder
sb.Append "Hello, there." |> ignore
printfn $"{sb}"

// Create an instance of the SomeType class that is defined in this assembly.
let oh = 
    Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().Location, typeof<SomeType>.FullName)

// Call an instance method defined by the SomeType type using this object.
let st = oh.Unwrap() :?> SomeType

st.DoSomething 5

(* This code produces the following output:

Hello, there.
100 / 5 = 20
 *)
Imports System.Reflection
Imports System.Text

Module Module1
    Sub Main()
        ' Create an instance of the StringBuilder type using 
        ' Activator.CreateInstance.
        Dim o As Object = Activator.CreateInstance(GetType(StringBuilder))

        ' Append a string into the StringBuilder object and display the 
        ' StringBuilder.
        Dim sb As StringBuilder = CType(o, StringBuilder)
        sb.Append("Hello, there.")
        Console.WriteLine(sb)

        ' Create an instance of the SomeType class that is defined in this assembly.
        Dim oh As System.Runtime.Remoting.ObjectHandle = _
            Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase, _
                                         GetType(SomeType).FullName)

        ' Call an instance method defined by the SomeType type using this object.
        Dim st As SomeType = CType(oh.Unwrap(), SomeType)

        st.DoSomething(5)
    End Sub

    Class SomeType
        Public Sub DoSomething(ByVal x As Int32)
            Console.WriteLine("100 / {0} = {1}", x, 100 \ x)
        End Sub
    End Class
End Module

' This code produces the following output:
' 
' Hello, there.
' 100 / 5 = 20

Açıklamalar

yöntemi, CreateInstance belirtilen bağımsız değişkenlerle en iyi eşleşen oluşturucuyu çağırarak bir derlemede tanımlanan türün bir örneğini oluşturur. Hiçbir bağımsız değişken belirtilmezse, parametre içermeyen oluşturucu, yani parametresiz oluşturucu çağrılır.

Bir oluşturucuyu aramak ve çağırmak için yeterli izne sahip olmanız gerekir; aksi takdirde, bir özel durum oluşturulur. Varsayılan olarak, bir oluşturucu arama sırasında yalnızca ortak oluşturucular dikkate alınır. Hiçbir oluşturucu veya parametresiz oluşturucu bulunamazsa, bir özel durum oluşturulur.

Ciltçi parametresi, uygun bir oluşturucu için bir derlemeyi arayan bir nesneyi belirtir. Kendi ciltçinizi ve arama ölçütlerinizi belirtebilirsiniz. Hiçbir cilt belirtilmezse, varsayılan bir cilt kullanılır. Daha fazla bilgi için ve System.Reflection.BindingFlags sınıflarını System.Reflection.Binder inceleyin.

Kanıt parametresi, oluşturucunun güvenlik ilkesini ve izinlerini etkiler. Daha fazla bilgi için sınıfına System.Security.Policy.Evidence bakın.

Türün bir örneği yerel veya uzak bir sitede oluşturulabilir. Tür uzaktan oluşturulursa, bir etkinleştirme özniteliği parametresi uzak sitenin URI'sini belirtir. Örneği oluşturma çağrısı, uzak siteye ulaşmadan önce ara sitelerden geçebilir. Diğer etkinleştirme öznitelikleri, çağrının uzak ve aracı sitelerde çalıştığı ortamı veya bağlamı değiştirebilir.

Örnek yerel olarak oluşturulduysa, bu nesneye bir başvuru döndürülür. Örnek uzaktan oluşturulursa ara sunucu başvurusu döndürülür. Uzak nesne, yerel bir nesneymiş gibi proxy üzerinden değiştirilir.

yöntemi, GetObject şu anda çalışan bir uzak nesneye, sunucudan etkinleştirilen iyi bilinen nesneye veya XML Web hizmetine bir ara sunucu oluşturur. Bağlantı medyasını, yani kanalı belirtebilirsiniz. Daha fazla bilgi için sınıfına System.Runtime.Remoting.Channels.ChannelServices bakın.

Derlemeler tür tanımları içerir. yöntemi, CreateInstance çalışmakta olan bir derlemeden türün bir örneğini oluşturur. yöntemi, CreateInstanceFrom derleme içeren bir dosyadan bir örnek oluşturur. yöntemi, CreateComInstanceFrom derleme içeren bir dosyadan COM nesnesinin bir örneğini oluşturur.

Yöntemler

CreateComInstanceFrom(String, String)

Adlandırılmış derleme dosyasını ve parametresiz oluşturucuyu kullanarak, adı belirtilen COM nesnesinin bir örneğini oluşturur.

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Adlandırılmış derleme dosyasını ve parametresiz oluşturucuyu kullanarak, adı belirtilen COM nesnesinin bir örneğini oluşturur.

CreateInstance(ActivationContext)

Belirtilen ActivationContext nesne tarafından belirlenen türün bir örneğini oluşturur.

CreateInstance(ActivationContext, String[])

Belirtilen nesne tarafından belirlenen ve belirtilen ActivationContext özel etkinleştirme verileriyle etkinleştirilen türün bir örneğini oluşturur.

CreateInstance(AppDomain, String, String)

Adlandırılmış derlemeyi ve parametresiz oluşturucuyu kullanarak belirtilen uzak etki alanında adı belirtilen türün bir örneğini oluşturur.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Adlandırılmış derlemeyi ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak, adı belirtilen uzak etki alanında belirtilen türün bir örneğini oluşturur.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Kullanımdan kalktı.

Adlandırılmış derlemeyi ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak, adı belirtilen uzak etki alanında belirtilen türün bir örneğini oluşturur.

CreateInstance(String, String)

Adlandırılmış derlemeyi ve parametresiz oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Adlandırılmış derlemeyi ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Kullanımdan kalktı.

Adlandırılmış derlemeyi ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

CreateInstance(String, String, Object[])

Adlandırılmış derlemeyi ve parametresiz oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

CreateInstance(Type)

Bu türün parametresiz oluşturucuyu kullanarak belirtilen türün bir örneğini oluşturur.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

Belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak belirtilen türün bir örneğini oluşturur.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

Belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak belirtilen türün bir örneğini oluşturur.

CreateInstance(Type, Boolean)

Bu türün parametresiz oluşturucuyu kullanarak belirtilen türün bir örneğini oluşturur.

CreateInstance(Type, Object[])

Belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak belirtilen türün bir örneğini oluşturur.

CreateInstance(Type, Object[], Object[])

Belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak belirtilen türün bir örneğini oluşturur.

CreateInstance<T>()

Parametresiz oluşturucuyu kullanarak belirtilen genel tür parametresi tarafından belirlenen türün bir örneğini oluşturur.

CreateInstanceFrom(AppDomain, String, String)

Adlandırılmış derleme dosyasını ve parametresiz oluşturucuyu kullanarak belirtilen uzak etki alanında adı belirtilen türün bir örneğini oluşturur.

CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Adlandırılmış derleme dosyasını ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak, belirtilen uzak etki alanında adı belirtilen türün bir örneğini oluşturur.

CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Kullanımdan kalktı.

Adlandırılmış derleme dosyasını ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak, belirtilen uzak etki alanında adı belirtilen türün bir örneğini oluşturur.

CreateInstanceFrom(String, String)

Adlandırılmış derleme dosyasını ve parametresiz oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Adlandırılmış derleme dosyasını ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Kullanımdan kalktı.

Adlandırılmış derleme dosyasını ve belirtilen parametrelerle en iyi eşleşen oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

CreateInstanceFrom(String, String, Object[])

Adlandırılmış derleme dosyasını ve parametresiz oluşturucuyu kullanarak adı belirtilen türün bir örneğini oluşturur.

GetObject(Type, String)

Belirtilen tür ve URL ile belirtilen iyi bilinen nesne için bir ara sunucu oluşturur.

GetObject(Type, String, Object)

Belirtilen tür, URL ve kanal verileriyle belirtilen iyi bilinen nesne için bir ara sunucu oluşturur.

Belirtik Arabirim Kullanımları

_Activator.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir nesne için tür bilgilerini alır ve bu da bir arabirimin tür bilgisini almak için kullanılabilir.

_Activator.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

_Activator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

Şunlara uygulanır