Activator.CreateInstance Metode

Definisi

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

Overload

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(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(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(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

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

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

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(String, String, Object[])

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

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(Type, 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(String, String)

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

CreateInstance(ActivationContext, String[])

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

CreateInstance(Type)

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

CreateInstance(ActivationContext)

Membuat instans jenis yang ditunjuk oleh objek yang ditentukan ActivationContext .

CreateInstance(AppDomain, String, String)

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

CreateInstance<T>()

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

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

Perhatian

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 CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, 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 static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, 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 CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, 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);
static member CreateInstance : AppDomain * 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 CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName 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

Parameter

domain
AppDomain

Domain tempat jenis bernama typeName dibuat.

assemblyName
String

Nama rakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.

typeName
String

Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.

ignoreCase
Boolean

true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.

bindingAttr
BindingFlags

Kombinasi bendera bit nol atau lebih yang memengaruhi pencarian typeName konstruktor. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi typeName konstruktor. Jika binder adalah null, pengikat default digunakan.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

culture
CultureInfo

Informasi khusus budaya yang mengatur koersi args ke jenis formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.

activationAttributes
Object[]

Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek. UrlAttribute menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.

securityAttributes
Evidence

Informasi yang digunakan untuk membuat keputusan kebijakan keamanan dan memberikan izin kode.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null untuk Nullable<T> instans tanpa nilai.

Atribut

Pengecualian

domain atau typeName adalah null.

Tidak ditemukan konstruktor yang cocok.

typename tidak ditemukan di assemblyName.

assemblyName tidak ditemukan.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

assemblyName bukan rakitan yang valid.

-atau-

Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.

Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.

-atau-

Nama rakitan atau basis kode tidak valid.

Keterangan

Gunakan CreateInstance saat host perlu menjalankan kode di domain aplikasi yang telah membatasi izin keamanan.

Gunakan ObjectHandle.Unwrap untuk membongkar nilai yang dikembalikan.

Berlaku untuk

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.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, 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.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName 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

Parameter

domain
AppDomain

Domain tempat jenis bernama typeName dibuat.

assemblyName
String

Nama perakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.

typeName
String

Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.

ignoreCase
Boolean

true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.

bindingAttr
BindingFlags

Kombinasi bendera nol atau lebih bit yang memengaruhi pencarian typeName konstruktor. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi typeName konstruktor. Jika binder adalah null, pengikat default digunakan.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

culture
CultureInfo

Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.

activationAttributes
Object[]

Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.

Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi seharusnya menggunakan Windows Communication Foundation.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya tanpa Nullable<T> nilai.

Atribut

Pengecualian

domain atau typeName adalah null.

Tidak ditemukan konstruktor yang cocok.

typename tidak ditemukan di assemblyName.

assemblyName tidak ditemukan.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

assemblyName bukan rakitan yang valid.

-atau-

Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.

Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.

-atau-

Nama rakitan atau basis kode tidak valid.

Keterangan

Gunakan CreateInstance saat host perlu menjalankan kode di domain aplikasi yang memiliki izin keamanan terbatas.

Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.

Berlaku untuk

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

Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, 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 static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName 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

Parameter

assemblyName
String

Nama perakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.

typeName
String

Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.

ignoreCase
Boolean

true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.

bindingAttr
BindingFlags

Kombinasi bendera nol atau lebih bit yang memengaruhi pencarian typeName konstruktor. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi typeName konstruktor. Jika binder adalah null, pengikat default digunakan.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

culture
CultureInfo

Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.

activationAttributes
Object[]

Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.

Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi seharusnya menggunakan Windows Communication Foundation.

Mengembalikan

Handel yang harus dibongkar untuk mengakses instans yang baru dibuat, atau null misalnya tanpa Nullable<T> nilai.

Pengecualian

typeNameadalah null.

Tidak ditemukan konstruktor yang cocok.

typename tidak ditemukan di assemblyName.

assemblyName tidak ditemukan.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

assemblyName bukan rakitan yang valid.

-atau-

Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.

Perakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.

-atau-

Nama rakitan atau basis kode tidak valid.

Keterangan

Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang memberikan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

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

Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs

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

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As Object

Parameter

type
Type

Jenis objek yang akan dibuat.

bindingAttr
BindingFlags

Kombinasi bendera nol atau lebih bit yang memengaruhi pencarian type konstruktor. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi type konstruktor. Jika binder adalah null, pengikat default digunakan.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

culture
CultureInfo

Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk type konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.

activationAttributes
Object[]

Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.

Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi seharusnya menggunakan Windows Communication Foundation.

Mengembalikan

Referensi ke objek yang baru dibuat, atau null untuk Nullable<T> instans tanpa nilai.

Pengecualian

typeadalah null.

typebukan .RuntimeType

-atau-

type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).

type tidak boleh berupa TypeBuilder.

-atau-

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.

-atau-

Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

Konstruktor yang disebut melempar pengecualian.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Tidak ditemukan konstruktor yang cocok.

type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.

type bukan tipe yang valid.

Keterangan

Konstruktor yang akan dipanggil harus memberikan kecocokan paling spesifik dengan daftar argumen yang ditentukan di bawah batasan atribut pengikat dan pengikatan yang ditentukan.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika set pemberian jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

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

Sumber:
Activator.cs
Sumber:
Activator.cs
Sumber:
Activator.cs

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

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo) As Object

Parameter

type
Type

Jenis objek yang akan dibuat.

bindingAttr
BindingFlags

Kombinasi bendera bit nol atau lebih yang memengaruhi pencarian type konstruktor. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi type konstruktor. Jika binder adalah null, pengikat default digunakan.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

culture
CultureInfo

Informasi khusus budaya yang mengatur koersi args ke jenis formal yang dideklarasikan untuk type konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.

Mengembalikan

Referensi ke objek yang baru dibuat, atau null untuk Nullable<T> instans tanpa nilai.

Pengecualian

typeadalah null.

typebukan .RuntimeType

-atau-

type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).

type tidak boleh berupa TypeBuilder.

-atau-

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

Konstruktor yang disebut melempar pengecualian.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Tidak ditemukan konstruktor yang cocok.

type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.

type bukan tipe yang valid.

Keterangan

Konstruktor yang akan dipanggil harus memberikan kecocokan paling spesifik dengan daftar argumen yang ditentukan di bawah batasan atribut pengikat dan pengikatan yang ditentukan.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika penelepon telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subset daripadanya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

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

Sumber:
Activator.cs
Sumber:
Activator.cs
Sumber:
Activator.cs

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

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, object?[]? args, object?[]? activationAttributes);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);
static member CreateInstance : Type * obj[] * obj[] -> obj
Public Shared Function CreateInstance (type As Type, args As Object(), activationAttributes As Object()) As Object

Parameter

type
Type

Jenis objek yang akan dibuat.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

activationAttributes
Object[]

Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya adalah array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.

Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.

Mengembalikan

Referensi ke objek yang baru dibuat, atau null untuk Nullable<T> instans tanpa nilai.

Pengecualian

typeadalah null.

typebukan .RuntimeType

-atau-

type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).

type tidak boleh berupa TypeBuilder.

-atau-

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.

-atau-

Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

Konstruktor yang disebut melempar pengecualian.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Tidak ditemukan konstruktor publik yang cocok.

type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.

type bukan tipe yang valid.

Keterangan

Konstruktor yang akan dipanggil harus dapat diakses dan harus memberikan kecocokan yang paling spesifik dengan daftar argumen yang ditentukan.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subset daripadanya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

CreateInstance(String, String, Object[])

Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle

Parameter

assemblyName
String

Nama rakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.

typeName
String

Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.

activationAttributes
Object[]

Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya adalah array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.

Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null untuk Nullable<T> instans.

Pengecualian

typeNameadalah null.

Tidak ditemukan konstruktor publik yang cocok.

typename tidak ditemukan di assemblyName.

assemblyName tidak ditemukan.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.

-atau-

activationAttributes bukan UrlAttribute

Array.

assemblyName bukan rakitan yang valid.

-atau-

Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.

Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.

-atau-

Nama rakitan atau basis kode tidak valid.

Konstruktor yang dipanggil melempar pengecualian.

-atau-

Terjadi kesalahan saat mencoba aktivasi jarak jauh dalam target yang ditentukan dalam activationAttributes.

Keterangan

Gunakan ObjectHandle.Unwrap untuk membongkar nilai yang dikembalikan.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika set pemberian jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

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

Perhatian

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 CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, 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 ^ securityInfo);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
[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 CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstance : 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 CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityInfo As Evidence) As ObjectHandle

Parameter

assemblyName
String

Nama rakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.

typeName
String

Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.

ignoreCase
Boolean

true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.

bindingAttr
BindingFlags

Kombinasi bendera bit nol atau lebih yang memengaruhi pencarian typeName konstruktor. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi typeName konstruktor. Jika binder adalah null, pengikat default digunakan.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

culture
CultureInfo

Informasi khusus budaya yang mengatur koersi args ke jenis formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.

activationAttributes
Object[]

Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya adalah array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.

Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.

securityInfo
Evidence

Informasi yang digunakan untuk membuat keputusan kebijakan keamanan dan memberikan izin kode.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null untuk Nullable<T> instans tanpa nilai.

Atribut

Pengecualian

typeNameadalah null.

Tidak ditemukan konstruktor yang cocok.

typename tidak ditemukan di assemblyName.

assemblyName tidak ditemukan.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

assemblyName bukan rakitan yang valid.

-atau-

Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.

Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.

-atau-

Nama rakitan atau basis kode tidak valid.

Keterangan

Gunakan ObjectHandle.Unwrap untuk membongkar nilai yang dikembalikan.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

CreateInstance(Type, Object[])

Sumber:
Activator.cs
Sumber:
Activator.cs
Sumber:
Activator.cs

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

public:
 static System::Object ^ CreateInstance(Type ^ type, ... cli::array <System::Object ^> ^ args);
public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, params object[] args);
public static object? CreateInstance (Type type, params object?[]? args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj
Public Shared Function CreateInstance (type As Type, ParamArray args As Object()) As Object
Public Shared Function CreateInstance (type As Type, args As Object()) As Object

Parameter

type
Type

Jenis objek yang akan dibuat.

args
Object[]

Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.

Mengembalikan

Referensi ke objek yang baru dibuat, atau null untuk Nullable<T> instans tanpa nilai.

Pengecualian

typeadalah null.

typebukan .RuntimeType

-atau-

type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).

type tidak boleh berupa TypeBuilder.

-atau-

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.

-atau-

Konstruktor yang paling cocok args memiliki varargs argumen.

Konstruktor yang disebut melempar pengecualian.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Catatan: Di .NET untuk aplikasi Bursa Windows atau Pustaka Kelas Portabel, tangkap pengecualian kelas dasar, MemberAccessException, sebagai gantinya.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Tidak ditemukan konstruktor publik yang cocok.

Catatan: Di .NET untuk aplikasi Bursa Windows atau Pustaka Kelas Portabel, tangkap pengecualian kelas dasar, MissingMemberException, sebagai gantinya.

type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.

type bukan tipe yang valid.

Contoh

Contoh berikut memanggil CreateInstance(Type, Object[]) metode untuk membuat String objek. Ini memanggil String.String(Char[], Int32, Int32) konstruktor untuk membuat instans string yang berisi sepuluh elemen dari array karakter mulai dari posisi keempat belas.

using System;

public class Example
{
   public static void Main()
   {
      // Initialize array of characters from a to z.
      char[] chars = new char[26];
      for (int ctr = 0; ctr < 26; ctr++)
         chars[ctr] = (char) (ctr + 0x0061);

      object obj = Activator.CreateInstance(typeof(string),
                                            new object[] { chars, 13, 10 } );
      Console.WriteLine(obj);
   }
}
// The example displays the following output:
//       nopqrstuvw
open System

// Initialize array of characters from a to z.
let chars = [| 'a' .. 'z' |]

let obj = Activator.CreateInstance(typeof<string>, chars[13..22])

printfn $"{obj}"

// The example displays the following output:
//       nopqrstuvw
Module Example
   Public Sub Main()
      ' Initialize array of characters from a to z.
      Dim chars(25) As Char 
      For ctr As Short = 0 To 25
         chars(ctr) = ChrW(ctr + &h0061)
      Next 
      Dim obj As Object = Activator.CreateInstance(GetType(String),
                                                   { chars, 13, 10 })
      Console.WriteLine(obj)                                          
   End Sub
End Module
' The example displays the following output:
'       nopqrstuvw

Contoh berikut membuat array berjatuh yang elemennya adalah argumen yang akan diteruskan ke String konstruktor. Contoh kemudian meneruskan setiap array ke CreateInstance(Type, Object[]) metode untuk memanggil konstruktor string yang sesuai.

using System;

public class Example
{
   public static void Main()
   {
      char[] characters = { 'a', 'b', 'c', 'd', 'e', 'f' };
      object[][] arguments = new object[3][] { new object[] { characters },
                                               new object[] { characters, 1, 4 },
                                               new object[] { characters[1], 20 } };

      for (int ctr = 0; ctr <= arguments.GetUpperBound(0); ctr++) {
         object[] args = arguments[ctr];
         object result = Activator.CreateInstance(typeof(string), args);
         Console.WriteLine("{0}: {1}", result.GetType().Name, result);
      }
   }
}
// The example displays the following output:
//    String: abcdef
//    String: bcde
//    String: bbbbbbbbbbbbbbbbbbbb
open System

let chars = [| 'a' .. 'f' |]

let arguments =
    [| chars
       chars[1..4]
       Array.create 20 chars[1] |]

for args in arguments do
    let result =
        Activator.CreateInstance(typeof<string>, args)

    printfn $"{result.GetType().Name}: {result}"

// The example displays the following output:
//    String: abcdef
//    String: bcde
//    String: bbbbbbbbbbbbbbbbbbbb
Module Example
   Public Sub Main()
      Dim characters() As Char = { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c }
      Dim arguments()() As Object = new Object(2)() { New Object() { characters },
                                                      New Object() { characters, 1, 4 },
                                                      New Object() { characters(1), 20 } }

      For ctr As Integer = 0 To arguments.GetUpperBound(0)
         Dim args() As Object = arguments(ctr)
         Dim result As Object = Activator.CreateInstance(GetType(String), args)
         Console.WriteLine("{0}: {1}", result.GetType().Name, result)
      Next
   End Sub
End Module
' The example displays the following output:
'       String: abcdef
'       String: bcde
'       String: bbbbbbbbbbbbbbbbbbbb

Keterangan

Konstruktor yang akan dipanggil harus dapat diakses dan harus memberikan kecocokan yang paling spesifik dengan daftar argumen yang ditentukan.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subset daripadanya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

CreateInstance(Type, Boolean)

Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs

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

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object? CreateInstance (Type type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj
Public Shared Function CreateInstance (type As Type, nonPublic As Boolean) As Object

Parameter

type
Type

Jenis objek yang akan dibuat.

nonPublic
Boolean

true jika konstruktor tanpa parameter publik atau nonpublik dapat cocok; false jika hanya konstruktor tanpa parameter publik yang dapat cocok.

Mengembalikan

Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> .

Pengecualian

typeadalah null.

typebukan .RuntimeType

-atau-

type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).

type tidak boleh berupa TypeBuilder.

-atau-

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.

Konstruktor yang disebut melempar pengecualian.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Tidak ditemukan konstruktor publik yang cocok.

type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.

type bukan tipe yang valid.

Keterangan

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis nonpublik dan anggota jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian pemanggil atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

CreateInstance(String, String)

Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle

Parameter

assemblyName
String

Nama perakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.

typeName
String

Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .

Pengecualian

typeNameadalah null.

Tidak ditemukan konstruktor publik yang cocok.

typename tidak ditemukan di assemblyName.

assemblyName tidak ditemukan.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Anda tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

assemblyName bukan rakitan yang valid.

-atau-

Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.

Perakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.

-atau-

Nama rakitan atau basis kode tidak valid.

Contoh

Contoh berikut mendefinisikan kelas bernama Person dalam rakitan bernama PersonInfo. Perhatikan bahwa Person kelas memiliki dua konstruktor, salah satunya tanpa parameter.

using System;

public class Person
{
   private string _name;

   public Person()
   { }

   public Person(string name)
   {
      this._name = name;
   }

   public string Name
   { get { return this._name; }
     set { this._name = value; } }

   public override string ToString()
   {
      return this._name;
   }
}
type Person(name) =
    member val Name = name with get, set

    override this.ToString() = this.Name

    new () = Person Unchecked.defaultof<string>
Public Class Person
   Private _name As String
   
   Public Sub New()
   End Sub
   
   Public Sub New(name As String)
      Me._name = name
   End Sub
   
   Public Property Name As String
      Get
         Return Me._name
      End Get
      Set
         Me._name = value
      End Set
   End Property
   
   Public Overrides Function ToString() As String
      Return Me._name
   End Function
End Class

Contoh berikut memanggil CreateInstance(String, String) metode untuk membuat instans Person kelas. Ini memerlukan referensi ke PersonInfo.dll untuk ditambahkan ke proyek. CreateInstance(String, String) Karena metode memanggil Person konstruktor tanpa parameter kelas, contoh menetapkan nilai ke propertinyaName.

using System;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      Person p = (Person) handle.Unwrap();
      p.Name = "Samuel";
      Console.WriteLine(p);
   }
}
// The example displays the following output:
//        Samuel
open System

let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{p}"

// The example displays the following output:
//        Samuel
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Person = CType(handle.Unwrap(), Person)
      p.Name = "Samuel"
      Console.WriteLine(p)
   End Sub
End Module
' The example displays the following output:
'       Samuel

Namun, CreateInstance sering dipanggil untuk membuat instans jenis yang melewati batas mesin atau yang tidak diketahui pada waktu desain. Dalam hal ini, Anda tidak dapat menyertakan referensi ke perakitan dalam proyek dan tidak dapat melakukan panggilan terikat awal ke anggota jenis. Untuk mengatasi batasan ini, contoh berikut menggunakan CreateInstance metode bersama dengan pantulan untuk menetapkan nilai ke Person properti objek Name dan untuk menampilkan nilainya.

using System;
using System.Reflection;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      object p = handle.Unwrap();
      Type t = p.GetType();
      PropertyInfo prop = t.GetProperty("Name");
      if (prop != null)
         prop.SetValue(p, "Samuel");

      MethodInfo method = t.GetMethod("ToString");
      object retVal = method.Invoke(p, null);
      if (retVal != null)
         Console.WriteLine(retVal);
   }
}
// The example displays the following output:
//        Samuel
open System

let handle =
    Activator.CreateInstance("PersonInfo", "Person")

let p = handle.Unwrap()
let t = p.GetType()
let prop = t.GetProperty "Name"

if not (isNull prop) then
    prop.SetValue(p, "Samuel")

let method = t.GetMethod "ToString"
let retVal = method.Invoke(p, null)

if not (isNull retVal) then
    printfn $"{retVal}"

// The example displays the following output:
//        Samuel
Imports System.Reflection
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Object = handle.Unwrap()
      Dim t As Type = p.GetType()
      Dim prop As PropertyInfo = t.GetProperty("Name")
      if Not prop Is Nothing Then
         prop.SetValue(p, "Samuel")
      End If   
      Dim method As MethodInfo = t.GetMethod("ToString")
      Dim retVal As Object = method.Invoke(p, Nothing) 
      If Not retVal Is Nothing Then
         Console.WriteLine(retVal)
      End If
   End Sub
End Module
' The example displays the following output:
'       Samuel

Keterangan

Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.

assemblyName dapat berupa salah satu dari berikut ini:

  • Nama sederhana assembly, tanpa jalur atau ekstensi filenya. Misalnya, Anda akan menentukan TypeExtensions untuk assembly yang jalur dan namanya adalah .\bin\TypeExtensions.dll.

  • Nama lengkap assembly yang ditandatangani, yang terdiri dari nama sederhana, versi, budaya, dan token kunci publik; misalnya, "TypeExtensions, Version=1.0.0.0, Culture=netral, PublicKeyToken=181869f2f7435b51".

Untuk informasi selengkapnya tentang cara runtime bahasa umum mengidentifikasi dan memuat rakitan, lihat Cara Runtime Menemukan Rakitan. Untuk informasi tentang menggunakan file konfigurasi aplikasi untuk menentukan lokasi perakitan, lihat Menentukan Lokasi Assembly. Jika assemblyName ditemukan, itu dimuat dalam konteks default.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang memberikan yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

CreateInstance(ActivationContext, String[])

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext, cli::array <System::String ^> ^ activationCustomData);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData);
static member CreateInstance : ActivationContext * string[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext, activationCustomData As String()) As ObjectHandle

Parameter

activationContext
ActivationContext

Objek konteks aktivasi yang menentukan objek yang akan dibuat.

activationCustomData
String[]

Array string Unicode yang berisi data aktivasi kustom.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .

Keterangan

ObjectHandle.Unwrap Gunakan metode untuk membuka bungkus nilai yang dikembalikan.

Konteks aktivasi digunakan selama aktivasi berbasis manifes untuk menyiapkan kebijakan domain dan untuk menyediakan model keamanan berbasis aplikasi. Kelas ActivationContext berisi ApplicationIdentity objek yang menyediakan akses ke manifes aplikasi. Untuk informasi selengkapnya, lihat ApplicationSecurityManager kelas.

Lihat juga

Berlaku untuk

CreateInstance(Type)

Sumber:
Activator.cs
Sumber:
Activator.cs
Sumber:
Activator.cs

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

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
public static object? CreateInstance (Type type);
static member CreateInstance : Type -> obj
Public Shared Function CreateInstance (type As Type) As Object

Parameter

type
Type

Jenis objek yang akan dibuat.

Mengembalikan

Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> .

Pengecualian

typeadalah null.

typebukan .RuntimeType

-atau-

type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).

type tidak boleh berupa TypeBuilder.

-atau-

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

-atau-

Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.

Konstruktor yang disebut melempar pengecualian.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Catatan: Di .NET untuk aplikasi Bursa Windows atau Pustaka Kelas Portabel, tangkap pengecualian kelas dasar, MemberAccessException, sebagai gantinya.

Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Tidak ditemukan konstruktor publik yang cocok.

Catatan: Di .NET untuk aplikasi Bursa Windows atau Pustaka Kelas Portabel, tangkap pengecualian kelas dasar, MissingMemberException, sebagai gantinya.

type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.

type bukan tipe yang valid.

Contoh

Contoh kode berikut menunjukkan cara memanggil CreateInstance(Type) metode . Instans dari beberapa jenis berbeda dibuat dan nilai defaultnya ditampilkan.

using namespace System;

ref class DynamicInstanceList
{
private:
    static String^ instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

public:
    static void Main()
    {
        array<String^>^ instances = instanceSpec->Split(';');
        Array^ instlist = Array::CreateInstance(Object::typeid, instances->Length);
        Object^ item;

        for (int i = 0; i < instances->Length; i++)
        {
            // create the object from the specification string
            Console::WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator::CreateInstance(Type::GetType(instances[i]));
            instlist->SetValue(item, i);
        }
        Console::WriteLine("\nObjects and their default values:\n");
        for each (Object^ o in instlist)
        {
            Console::WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o->GetType()->FullName, o->ToString(), o->GetHashCode());
        }
    }
};

int main()
{
    DynamicInstanceList::Main();
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
using System;

class DynamicInstanceList
{
    private static string instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

    public static void Main()
    {
        string[] instances = instanceSpec.Split(';');
        Array instlist = Array.CreateInstance(typeof(object), instances.Length);
        object item;
        for (int i = 0; i < instances.Length; i++)
        {
            // create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator.CreateInstance(Type.GetType(instances[i]));
            instlist.SetValue(item, i);
        }
        Console.WriteLine("\nObjects and their default values:\n");
        foreach (object o in instlist)
        {
            Console.WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o.GetType().FullName, o.ToString(), o.GetHashCode());
        }
    }
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
open System

let instanceSpec =
    "System.EventArgs;System.Random;System.Exception;System.Object;System.Version"

let instances = instanceSpec.Split ';'
let instlist = Array.zeroCreate instances.Length
let mutable item = obj ()

for i = 0 to instances.Length - 1 do
    // create the object from the specification string
    printfn $"Creating instance of: {instances.[i]}"
    item <- Activator.CreateInstance(Type.GetType instances.[i])
    instlist.[i] <- item

printfn "\nObjects and their default values:\n"

for o in instlist do
    printfn $"Type:     {o.GetType().FullName}\nValue:    {o}\nHashCode: {o.GetHashCode()}\n"


// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
Class DynamicInstanceList
    Private Shared instanceSpec As String = "System.EventArgs;System.Random;" + _
        "System.Exception;System.Object;System.Version"

    Public Shared Sub Main()
        Dim instances() As String = instanceSpec.Split(";")
        Dim instlist As Array = Array.CreateInstance(GetType(Object), instances.Length)
        Dim item As Object

        For i As Integer = 0 To instances.Length -1
            ' create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances(i))
            item = Activator.CreateInstance(Type.GetType(instances(i)))
            instlist.SetValue(item, i)
        Next i
        Console.WriteLine(Environment.NewLine + "Objects and their default values:" + Environment.NewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + Environment.NewLine + "Value:    {1}" + _
                Environment.NewLine + "HashCode: {2}" + Environment.NewLine, _
                o.GetType().FullName, o.ToString(), o.GetHashCode())
        Next o
    End Sub
End Class

' This program will display output similar to the following:
'
' Creating instance of: System.EventArgs
' Creating instance of: System.Random
' Creating instance of: System.Exception
' Creating instance of: System.Object
' Creating instance of: System.Version
'
' Objects and their default values:
'
' Type:     System.EventArgs
' Value:    System.EventArgs
' HashCode: 46104728
'
' Type:     System.Random
' Value:    System.Random
' HashCode: 12289376
'
' Type:     System.Exception
' Value:    System.Exception: Exception of type 'System.Exception' was thrown.
' HashCode: 55530882
'
' Type:     System.Object
' Value:    System.Object
' HashCode: 30015890
'
' Type:     System.Version
' Value:    0.0
' HashCode: 1048575

Keterangan

Konstruktor yang akan dipanggil harus dapat diakses.

Catatan

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan pemberian yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.

Berlaku untuk

CreateInstance(ActivationContext)

Membuat instans jenis yang ditunjuk oleh objek yang ditentukan ActivationContext .

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext);
static member CreateInstance : ActivationContext -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext) As ObjectHandle

Parameter

activationContext
ActivationContext

Objek konteks aktivasi yang menentukan objek yang akan dibuat.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .

Keterangan

ObjectHandle.Unwrap Gunakan metode untuk membuka bungkus nilai yang dikembalikan.

Konteks aktivasi digunakan selama aktivasi berbasis manifes untuk menyiapkan kebijakan domain dan untuk menyediakan model keamanan berbasis aplikasi. Kelas ActivationContext berisi ApplicationIdentity objek yang menyediakan akses ke manifes aplikasi. Untuk informasi selengkapnya, lihat ApplicationSecurityManager kelas.

Lihat juga

Berlaku untuk

CreateInstance(AppDomain, String, String)

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle

Parameter

domain
AppDomain

Domain jarak jauh tempat jenis bernama typeName dibuat.

assemblyName
String

Nama perakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.

typeName
String

Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.

Mengembalikan

Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .

Atribut

Pengecualian

typeName atau domain adalah null.

Tidak ditemukan konstruktor publik yang cocok.

typename tidak ditemukan di assemblyName.

assemblyName tidak ditemukan.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Tidak dapat membuat contoh jenis abstrak.

-atau-

Anggota ini dipanggil dengan mekanisme pengikatan terlambat.

Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.

Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.

Pembuatan jenis TypedReference, ArgIterator, Void, dan RuntimeArgumentHandle , atau array dari jenis tersebut, tidak didukung.

assemblyName bukan rakitan yang valid.

-atau-

Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.

Perakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.

-atau-

Nama rakitan atau basis kode tidak valid.

Keterangan

Gunakan CreateInstance saat host perlu menjalankan kode di domain aplikasi yang memiliki izin keamanan terbatas.

Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.

Berlaku untuk

CreateInstance<T>()

Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs
Sumber:
Activator.RuntimeType.cs

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

public:
generic <typename T>
 static T CreateInstance();
public static T CreateInstance<T> ();
static member CreateInstance : unit -> 'T
Public Shared Function CreateInstance(Of T) () As T

Jenis parameter

T

Jenis yang akan dibuat.

Mengembalikan

T

Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> .

Pengecualian

Tidak dapat membuat instans kelas abstrak, atau jenis yang ditentukan untuk T tidak memiliki konstruktor tanpa parameter.

Catatan: Di .NET untuk aplikasi Bursa Windows atau Pustaka Kelas Portabel, tangkap pengecualian kelas dasar, MissingMemberException, sebagai gantinya.

Keterangan

Metode CreateInstance<T>() generik digunakan oleh pengkompilasi untuk mengimplementasikan instansiasi jenis yang ditentukan oleh parameter jenis. Misalnya, dalam metode generik berikut, implementasi new T() (gcnew T() dalam C++) menggunakan CreateInstance<T>() metode generik.

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
let factory<'T when 'T : (new: unit -> 'T)> =
    new 'T()
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

Secara umum, tidak ada penggunaan untuk CreateInstance<T>() metode generik dalam kode aplikasi, karena jenisnya harus diketahui pada waktu kompilasi. Jika jenis diketahui pada waktu kompilasi, sintaks instantiation normal dapat digunakan (new operator di C#, New di Visual Basic, gcnew di C++). Jika jenis tidak diketahui pada waktu kompilasi CreateInstance, Anda dapat memanggil kelebihan beban non-generik .

Tidak ada kelebihan beban CreateInstance<T>() metode generik yang mengambil daftar argumen, karena kelebihan beban CreateInstance non-generik sudah memberikan resolusi konstruktor yang terlambat.

Berlaku untuk