Bagikan melalui


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 konstruktor assembly dan parameterless bernama.

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 konstruktor assembly dan parameterless bernama.

CreateInstance(ActivationContext, String[])

Membuat instans jenis yang ditunjuk oleh objek ActivationContext yang ditentukan 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 ActivationContext yang ditentukan.

CreateInstance(AppDomain, String, String)

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan konstruktor assembly dan parameterless bernama.

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 assemblyNamenull, rakitan yang dijalankan akan 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 konstruktor typeName. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi konstruktor typeName. Jika bindernull, 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 pemasukan args ke jenis formal yang dideklarasikan untuk konstruktor typeName. Jika culturenull, 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 objek UrlAttribute. 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 instans Nullable<T> tanpa nilai.

Atribut

Pengecualian

domain atau typeNamenull.

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 dengan args memiliki argumen varargs.

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(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 rakitan tempat jenis bernama typeName dicari. Jika assemblyNamenull, rakitan yang dijalankan akan 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 konstruktor typeName. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi konstruktor typeName. Jika bindernull, 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 pemasukan args ke jenis formal yang dideklarasikan untuk konstruktor typeName. Jika culturenull, 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 objek UrlAttribute 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 instans Nullable<T> tanpa nilai.

Atribut

Pengecualian

domain atau typeNamenull.

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 dengan args memiliki argumen varargs.

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 rakitan tempat jenis bernama typeName dicari. Jika assemblyNamenull, rakitan yang dijalankan akan 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 konstruktor typeName. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi konstruktor typeName. Jika bindernull, 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 pemasukan args ke jenis formal yang dideklarasikan untuk konstruktor typeName. Jika culturenull, 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 objek UrlAttribute 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 instans yang baru dibuat, atau null untuk instans Nullable<T> tanpa nilai.

Pengecualian

typeName 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 dengan args memiliki argumen varargs.

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 membuka bungkus nilai yang dikembalikan.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika set pemberian rakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian pemanggil atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 konstruktor type. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi konstruktor type. Jika bindernull, 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 pemasukan args ke jenis formal yang dideklarasikan untuk konstruktor type. Jika culturenull, 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 objek UrlAttribute 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 instans Nullable<T> tanpa nilai.

Pengecualian

type bukan RuntimeType.

-atau-

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

type tidak boleh menjadi 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 dengan args memiliki argumen varargs.

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.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika set pemberian jenis dan anggota nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 nol atau lebih bit yang memengaruhi pencarian konstruktor type. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi konstruktor type. Jika bindernull, 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 pemasukan args ke jenis formal yang dideklarasikan untuk konstruktor type. Jika culturenull, CultureInfo untuk utas saat ini digunakan.

Mengembalikan

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

Pengecualian

type bukan RuntimeType.

-atau-

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

type tidak boleh menjadi 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 dengan args memiliki argumen varargs.

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.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 merupakan array yang berisi satu objek UrlAttribute 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 instans Nullable<T> tanpa nilai.

Pengecualian

type bukan RuntimeType.

-atau-

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

type tidak boleh menjadi 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 dengan args memiliki argumen varargs.

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 paling spesifik dengan daftar argumen yang ditentukan.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika sekumpulan perakitan pemberian yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 konstruktor assembly dan parameterless bernama.

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 assemblyNamenull, rakitan yang dijalankan akan 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 merupakan array yang berisi satu objek UrlAttribute 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 instans Nullable<T>.

Pengecualian

typeName 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 membuka bungkus nilai yang dikembalikan.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika set pemberian jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 assemblyNamenull, rakitan yang dijalankan akan 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 konstruktor typeName. Jika bindingAttr nol, pencarian peka huruf besar/kecil untuk konstruktor publik dilakukan.

binder
Binder

Objek yang menggunakan bindingAttr dan args untuk mencari dan mengidentifikasi konstruktor typeName. Jika bindernull, 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 pemasukan args ke jenis formal yang dideklarasikan untuk konstruktor typeName. Jika culturenull, 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 objek UrlAttribute 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 instans Nullable<T> tanpa nilai.

Atribut

Pengecualian

typeName 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 dengan args memiliki argumen varargs.

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 membuka bungkus nilai yang dikembalikan.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika set pemberian rakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian pemanggil atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 instans Nullable<T> tanpa nilai.

Pengecualian

type bukan RuntimeType.

-atau-

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

type tidak boleh menjadi 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 dengan args memiliki argumen varargs.

Konstruktor yang disebut melempar pengecualian.

Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.

Catatan: Di .NET untuk aplikasi Windows Store atauPustaka Kelas Portabel , tangkap pengecualian kelas dasar, , 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 Windows Store atauPustaka Kelas Portabel , tangkap pengecualian kelas dasar, , 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 metode CreateInstance(Type, Object[]) untuk membuat objek String. Ini memanggil konstruktor String.String(Char[], Int32, Int32) 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 jagged yang elemennya adalah argumen untuk diteruskan ke konstruktor String. Contoh kemudian meneruskan setiap array ke metode CreateInstance(Type, Object[]) 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 paling spesifik dengan daftar argumen yang ditentukan.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika sekumpulan perakitan pemberian yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 untuk instans Nullable<T>.

Pengecualian

type bukan RuntimeType.

-atau-

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

type tidak boleh menjadi 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

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 konstruktor assembly dan parameterless bernama.

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 rakitan tempat jenis bernama typeName dicari. Jika assemblyNamenull, rakitan yang dijalankan akan 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 untuk instans Nullable<T>.

Pengecualian

typeName 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.

Rakitan 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 kelas Person 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 metode CreateInstance(String, String) untuk membuat instans kelas Person. Ini memerlukan referensi ke PersonInfo.dll untuk ditambahkan ke proyek. Karena metode CreateInstance(String, String) memanggil konstruktor tanpa parameter kelas Person, contoh menetapkan nilai ke properti Name.

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 metode CreateInstance bersama dengan pantulan untuk menetapkan nilai ke properti Name objek Person 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 hal berikut:

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

  • Nama lengkap rakitan 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 bagaimana runtime bahasa umum mengidentifikasi dan memuat rakitan, lihat Bagaimana Runtime Menemukan Rakitan. Untuk informasi tentang menggunakan file konfigurasi aplikasi untuk menentukan lokasi perakitan, lihat Menentukan Lokasi Assembly. Jika assemblyName ditemukan, assemblyName dimuat dalam konteks default.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk membuat jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika set pemberian rakitan yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 ActivationContext yang ditentukan 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 untuk instans Nullable<T>.

Keterangan

Gunakan metode ObjectHandle.Unwrap 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 objek ApplicationIdentity yang menyediakan akses ke manifes aplikasi. Untuk informasi selengkapnya, lihat kelas ApplicationSecurityManager.

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 untuk instans Nullable<T>.

Pengecualian

type bukan RuntimeType.

-atau-

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

type tidak boleh menjadi 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 Windows Store atauPustaka Kelas Portabel , tangkap pengecualian kelas dasar, , 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 Windows Store atauPustaka Kelas Portabel , tangkap pengecualian kelas dasar, , 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 metode CreateInstance(Type). 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.

Nota

Dimulai dengan .NET Framework 2.0, metode ini dapat digunakan untuk mengakses jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan bendera ReflectionPermissionFlag.RestrictedMemberAccess dan jika sekumpulan perakitan pemberian yang berisi jenis nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untukRefleksi .) 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 ActivationContext yang ditentukan.

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 untuk instans Nullable<T>.

Keterangan

Gunakan metode ObjectHandle.Unwrap 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 objek ApplicationIdentity yang menyediakan akses ke manifes aplikasi. Untuk informasi selengkapnya, lihat kelas ApplicationSecurityManager.

Lihat juga

Berlaku untuk

CreateInstance(AppDomain, String, String)

Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan konstruktor assembly dan parameterless bernama.

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 rakitan tempat jenis bernama typeName dicari. Jika assemblyNamenull, rakitan yang dijalankan akan 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 untuk instans Nullable<T>.

Atribut

Pengecualian

typeName atau domainnull.

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

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<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 untuk instans 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 Windows Store atauPustaka Kelas Portabel , tangkap pengecualian kelas dasar, , sebagai gantinya.

Keterangan

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

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 metode generik CreateInstance<T>() dalam kode aplikasi, karena jenisnya harus diketahui pada waktu kompilasi. Jika jenis diketahui pada waktu kompilasi, sintaks instansiasi normal dapat digunakan ( operatornew di C#, New di Visual Basic, gcnew di C++). Jika jenis tidak diketahui pada waktu kompilasi, Anda dapat memanggil kelebihan beban non-generik CreateInstance.

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

Berlaku untuk