Activator.CreateInstance Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 assemblyName
null
, 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 binder
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 pemasukan args
ke jenis formal yang dideklarasikan untuk konstruktor typeName
. Jika culture
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 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 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 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 assemblyName
null
, 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 binder
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 pemasukan args
ke jenis formal yang dideklarasikan untuk konstruktor typeName
. Jika culture
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 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 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 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 assemblyName
null
, 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 binder
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 pemasukan args
ke jenis formal yang dideklarasikan untuk konstruktor typeName
. Jika culture
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 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 binder
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 pemasukan args
ke jenis formal yang dideklarasikan untuk konstruktor type
. Jika culture
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 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
null
.
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 binder
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 pemasukan args
ke jenis formal yang dideklarasikan untuk konstruktor type
. Jika culture
null
, CultureInfo untuk utas saat ini digunakan.
Mengembalikan
Referensi ke objek yang baru dibuat, atau null
untuk instans Nullable<T> tanpa nilai.
Pengecualian
type
null
.
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
null
.
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 assemblyName
null
, 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 assemblyName
null
, 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 binder
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 pemasukan args
ke jenis formal yang dideklarasikan untuk konstruktor typeName
. Jika culture
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 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
null
.
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
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
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
null
.
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 assemblyName
null
, 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
null
.
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
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
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 assemblyName
null
, 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 domain
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 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
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
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.