Bagikan melalui


Activator Kelas

Definisi

Berisi metode untuk membuat jenis objek secara lokal atau jarak jauh, atau mendapatkan referensi ke objek jarak jauh yang ada. Kelas ini tidak dapat diwariskan.

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
Warisan
Activator
Atribut
Penerapan

Contoh

Contoh berikut menunjukkan cara menggunakan Activator kelas untuk membangun objek secara dinamis pada durasi.

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

Keterangan

Metode ini CreateInstance membuat instans jenis yang ditentukan dalam rakitan dengan memanggil konstruktor yang paling cocok dengan argumen yang ditentukan. Jika tidak ada argumen yang ditentukan, konstruktor yang tidak mengambil parameter, yaitu, konstruktor tanpa parameter, dipanggil.

Anda harus memiliki izin yang memadai untuk mencari dan memanggil konstruktor; jika tidak, pengecualian dilemparkan. Secara default, hanya konstruktor publik yang dipertimbangkan selama pencarian konstruktor. Jika tidak ada konstruktor atau konstruktor tanpa parameter yang dapat ditemukan, pengecualian akan dilemparkan.

Parameter binder menentukan objek yang mencari rakitan untuk konstruktor yang sesuai. Anda dapat menentukan kriteria binder dan pencarian Anda sendiri. Jika tidak ada pengikat yang ditentukan, pengikat default akan digunakan. Untuk informasi selengkapnya, lihat kelas System.Reflection.Binder dan System.Reflection.BindingFlags.

Parameter bukti memengaruhi kebijakan keamanan dan izin untuk konstruktor. Untuk informasi selengkapnya, lihat System.Security.Policy.Evidence kelas.

Instans jenis dapat dibuat di situs lokal atau jarak jauh. Jika jenis dibuat dari jarak jauh, parameter atribut aktivasi menentukan URI situs jarak jauh. Panggilan untuk membuat instans mungkin melewati situs perantara sebelum mencapai situs jarak jauh. Atribut aktivasi lainnya dapat memodifikasi lingkungan, atau konteks, di mana panggilan beroperasi di situs jarak jauh dan perantara.

Jika instans dibuat secara lokal, referensi ke objek tersebut dikembalikan. Jika instans dibuat dari jarak jauh, referensi ke proksi dikembalikan. Objek jarak jauh dimanipulasi melalui proksi seolah-olah itu adalah objek lokal.

Metode ini GetObject membuat proksi ke objek jarak jauh yang sedang berjalan, objek terkenal yang diaktifkan server, atau layanan Web XML. Anda dapat menentukan media koneksi, yaitu saluran. Untuk informasi selengkapnya, lihat System.Runtime.Remoting.Channels.ChannelServices kelas.

Rakitan berisi definisi jenis. Metode ini CreateInstance membuat instans jenis dari rakitan yang sedang berjalan. Metode ini CreateInstanceFrom membuat instans dari file yang berisi assembly. Metode ini CreateComInstanceFrom membuat instans objek COM dari file yang berisi assembly.

Metode

CreateComInstanceFrom(String, String)

Membuat instans objek COM yang namanya ditentukan, menggunakan file rakitan bernama dan konstruktor tanpa parameter.

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

Membuat instans objek COM yang namanya ditentukan, menggunakan file rakitan bernama dan konstruktor tanpa parameter.

CreateInstance(ActivationContext)

Membuat instans jenis yang ditunjuk oleh objek yang ditentukan ActivationContext .

CreateInstance(ActivationContext, String[])

Membuat instans jenis yang ditunjuk oleh objek yang ditentukan ActivationContext dan diaktifkan dengan data aktivasi kustom yang ditentukan.

CreateInstance(AppDomain, String, String)

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan rakitan bernama dan konstruktor tanpa parameter.

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

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan rakitan bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

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

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan rakitan bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

CreateInstance(String, String)

Membuat instans jenis yang namanya ditentukan, menggunakan rakitan bernama dan konstruktor tanpa parameter.

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

Membuat instans jenis yang namanya ditentukan, menggunakan rakitan bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

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

Membuat instans jenis yang namanya ditentukan, menggunakan rakitan bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

CreateInstance(String, String, Object[])

Membuat instans jenis yang namanya ditentukan, menggunakan rakitan bernama dan konstruktor tanpa parameter.

CreateInstance(Type)

Membuat instans dari jenis yang ditentukan menggunakan konstruktor tanpa parameter jenis tersebut.

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

Membuat instans dari jenis yang ditentukan menggunakan konstruktor yang paling cocok dengan parameter yang ditentukan.

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

Membuat instans dari jenis yang ditentukan menggunakan konstruktor yang paling cocok dengan parameter yang ditentukan.

CreateInstance(Type, Boolean)

Membuat instans dari jenis yang ditentukan menggunakan konstruktor tanpa parameter jenis tersebut.

CreateInstance(Type, Object[])

Membuat instans dari jenis yang ditentukan menggunakan konstruktor yang paling cocok dengan parameter yang ditentukan.

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

Membuat instans dari jenis yang ditentukan menggunakan konstruktor yang paling cocok dengan parameter yang ditentukan.

CreateInstance<T>()

Membuat instans jenis yang ditunjuk oleh parameter jenis generik yang ditentukan, menggunakan konstruktor tanpa parameter.

CreateInstanceFrom(AppDomain, String, String)

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan file rakitan bernama dan konstruktor tanpa parameter.

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

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan file rakitan bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

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

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan file rakitan bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

CreateInstanceFrom(String, String)

Membuat instans jenis yang namanya ditentukan, menggunakan file rakitan bernama dan konstruktor tanpa parameter.

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

Membuat instans jenis yang namanya ditentukan, menggunakan file assembly bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

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

Membuat instans jenis yang namanya ditentukan, menggunakan file assembly bernama dan konstruktor yang paling cocok dengan parameter yang ditentukan.

CreateInstanceFrom(String, String, Object[])

Membuat instans jenis yang namanya ditentukan, menggunakan file rakitan bernama dan konstruktor tanpa parameter.

GetObject(Type, String)

Membuat proksi untuk objek terkenal yang ditunjukkan oleh jenis dan URL yang ditentukan.

GetObject(Type, String, Object)

Membuat proksi untuk objek terkenal yang ditunjukkan oleh jenis, URL, dan data saluran yang ditentukan.

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang kemudian dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

_Activator.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

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

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

Berlaku untuk