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
| Nama | Deskripsi |
|---|---|
| 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 yang ditentukan ActivationContext dan diaktifkan dengan data aktivasi kustom yang ditentukan. |
| CreateInstance(Type) |
Membuat instans dari jenis yang ditentukan menggunakan konstruktor tanpa parameter jenis tersebut. |
| CreateInstance(ActivationContext) |
Membuat instans jenis yang ditunjuk oleh objek yang ditentukan ActivationContext . |
| CreateInstance(AppDomain, String, String) |
Membuat instans jenis yang namanya ditentukan dalam domain jarak jauh yang ditentukan, menggunakan 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 https://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 https://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 https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityAttributes As Evidence) As ObjectHandle
Parameter
- domain
- AppDomain
Domain tempat jenis bernama typeName dibuat.
- assemblyName
- String
Nama rakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.
- typeName
- String
Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.
- ignoreCase
- Boolean
true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.
- bindingAttr
- BindingFlags
Kombinasi bendera 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 typeName konstruktor. Jika binder adalah null, pengikat default digunakan.
- args
- Object[]
Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.
- culture
- CultureInfo
Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.
- activationAttributes
- Object[]
Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek. 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 misalnya 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.
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
assemblyName bukan rakitan yang valid.
-atau-
Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.
Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.
-atau-
Nama rakitan atau basis kode tidak valid.
Keterangan
Gunakan CreateInstance saat host perlu menjalankan kode di domain aplikasi yang memiliki izin keamanan terbatas.
Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.
Berlaku untuk
CreateInstance(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 adalah null, rakitan yang dijalankan dicari.
- typeName
- String
Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.
- ignoreCase
- Boolean
true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.
- bindingAttr
- BindingFlags
Kombinasi bendera nol atau lebih bit yang memengaruhi pencarian 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 typeName konstruktor. Jika binder adalah null, pengikat default digunakan.
- args
- Object[]
Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.
- culture
- CultureInfo
Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.
- activationAttributes
- Object[]
Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.
Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.
Mengembalikan
Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya 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.
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
assemblyName bukan rakitan yang valid.
-atau-
Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.
Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.
-atau-
Nama rakitan atau basis kode tidak valid.
Keterangan
Gunakan CreateInstance saat host perlu menjalankan kode di domain aplikasi yang memiliki izin keamanan terbatas.
Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.
Berlaku untuk
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- 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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")]
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);
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.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")>]
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
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 adalah null, rakitan yang dijalankan dicari.
- typeName
- String
Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.
- ignoreCase
- Boolean
true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.
- bindingAttr
- BindingFlags
Kombinasi bendera nol atau lebih bit yang memengaruhi pencarian 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 typeName konstruktor. Jika binder adalah null, pengikat default digunakan.
- args
- Object[]
Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.
- culture
- CultureInfo
Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.
- activationAttributes
- Object[]
Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.
Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.
Mengembalikan
Handel yang harus dibongkar untuk mengakses instans yang baru dibuat, atau null misalnya Nullable<T> tanpa nilai.
- Atribut
Pengecualian
typeName adalah null.
Tidak ditemukan konstruktor yang cocok.
typeName tidak ditemukan di assemblyName.
assemblyName tidak ditemukan.
Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.
Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.
Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.
Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
assemblyName bukan rakitan yang valid.
-atau-
Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.
Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.
-atau-
Nama rakitan atau basis kode tidak valid.
Keterangan
Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.
Di .NET Core 3.0 dan versi yang lebih baru, beban rakitan yang dipicu oleh API ini dipengaruhi oleh nilai saat ini dari AssemblyLoadContext.CurrentContextualReflectionContext.
Nota
Metode ini dapat digunakan untuk membuat jenis dan anggota nonpublik jika penelepon telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- 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 type konstruktor. Jika binder adalah null, pengikat default digunakan.
- args
- Object[]
Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.
- culture
- CultureInfo
Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk type konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.
- activationAttributes
- Object[]
Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.
Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.
Mengembalikan
Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> tanpa nilai.
Pengecualian
type adalah null.
typebukan .RuntimeType
-atau-
type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).
type tidak boleh berupa TypeBuilder.
-atau-
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.
-atau-
Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
Konstruktor yang disebut melempar pengecualian.
Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.
Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.
Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.
Tidak ditemukan konstruktor yang cocok.
type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.
type bukan tipe yang valid.
Keterangan
Konstruktor yang akan dipanggil harus memberikan kecocokan paling spesifik dengan daftar argumen yang ditentukan di bawah batasan atribut pengikat dan pengikatan yang ditentukan.
Nota
Metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan pemberian jenis dan anggota nonpublik dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
- 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 type konstruktor. Jika binder adalah null, pengikat default digunakan.
- args
- Object[]
Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.
- culture
- CultureInfo
Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk type konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.
Mengembalikan
Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> tanpa nilai.
Pengecualian
type adalah null.
typebukan .RuntimeType
-atau-
type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).
type tidak boleh berupa TypeBuilder.
-atau-
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
Konstruktor yang disebut melempar pengecualian.
Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.
Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.
Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.
Tidak ditemukan konstruktor yang cocok.
type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.
type bukan tipe yang valid.
Keterangan
Konstruktor yang akan dipanggil harus memberikan kecocokan paling spesifik dengan daftar argumen yang ditentukan di bawah batasan atribut pengikat dan pengikatan yang ditentukan.
Nota
Metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(Type, Object[], Object[])
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
- 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 UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.
Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.
Mengembalikan
Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> tanpa nilai.
Pengecualian
type adalah null.
typebukan .RuntimeType
-atau-
type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).
type tidak boleh berupa TypeBuilder.
-atau-
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.
-atau-
Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
Konstruktor yang disebut melempar pengecualian.
Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.
Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.
Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.
Tidak ditemukan konstruktor publik yang cocok.
type adalah objek COM tetapi pengidentifikasi kelas yang digunakan untuk mendapatkan jenis tidak valid, atau kelas yang diidentifikasi tidak terdaftar.
type bukan tipe yang valid.
Keterangan
Konstruktor yang akan dipanggil harus dapat diakses dan harus memberikan kecocokan paling spesifik dengan daftar argumen yang ditentukan.
Nota
Metode ini dapat digunakan untuk mengakses jenis nonpublik jika penelepon telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dibatasi untuk set pemberian pemanggil atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(String, String, Object[])
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- 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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")]
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);
public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, object[] activationAttributes);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")>]
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle
Parameter
- assemblyName
- String
Nama rakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.
- typeName
- String
Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.
- activationAttributes
- Object[]
Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.
Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi harus menggunakan Windows Communication Foundation.
Mengembalikan
Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .
- Atribut
Pengecualian
typeName adalah null.
Tidak ditemukan konstruktor publik yang cocok.
typeName tidak ditemukan di assemblyName.
assemblyName tidak ditemukan.
Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.
Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.
Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, 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.
Di .NET Core 3.0 dan versi yang lebih baru, beban rakitan yang dipicu oleh API ini dipengaruhi oleh nilai saat ini dari AssemblyLoadContext.CurrentContextualReflectionContext.
Nota
Metode ini dapat digunakan untuk membuat jenis nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika set pemberian jenis nonpublik dibatasi untuk set pemberian pemanggil atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(String, String, 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 https://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 https://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 https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityInfo As Evidence) As ObjectHandle
Parameter
- assemblyName
- String
Nama rakitan tempat jenis bernama typeName dicari. Jika assemblyName adalah null, rakitan yang dijalankan dicari.
- typeName
- String
Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.
- ignoreCase
- Boolean
true untuk menentukan bahwa pencarian typeName tidak peka huruf besar/kecil; false untuk menentukan bahwa pencarian peka huruf besar/kecil.
- bindingAttr
- BindingFlags
Kombinasi bendera 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 typeName konstruktor. Jika binder adalah null, pengikat default digunakan.
- args
- Object[]
Array argumen yang cocok dengan angka, urutan, dan ketik parameter konstruktor yang akan dipanggil. Jika args adalah array kosong atau null, konstruktor yang tidak mengambil parameter (konstruktor tanpa parameter) dipanggil.
- culture
- CultureInfo
Informasi khusus budaya yang mengatur koersi ke jenis args formal yang dideklarasikan untuk typeName konstruktor. Jika culture adalah null, CultureInfo untuk utas saat ini digunakan.
- activationAttributes
- Object[]
Array dari satu atau beberapa atribut yang dapat berpartisipasi dalam aktivasi. Ini biasanya merupakan array yang berisi satu UrlAttribute objek yang menentukan URL yang diperlukan untuk mengaktifkan objek jarak jauh.
Parameter ini terkait dengan objek yang diaktifkan klien. Aktivasi klien adalah teknologi warisan yang dipertahankan untuk kompatibilitas mundur tetapi tidak direkomendasikan untuk pengembangan baru. Aplikasi terdistribusi 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 misalnya Nullable<T> tanpa nilai.
- Atribut
Pengecualian
typeName adalah null.
Tidak ditemukan konstruktor yang cocok.
typeName tidak ditemukan di assemblyName.
assemblyName tidak ditemukan.
Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.
Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.
Konstruktor, yang dipanggil melalui pantulan, melemparkan pengecualian.
Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
activationAttributes bukan array kosong, dan jenis yang dibuat tidak berasal dari MarshalByRefObject.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
assemblyName bukan rakitan yang valid.
-atau-
Runtime bahasa umum (CLR) versi 2.0 atau yang lebih baru saat ini dimuat, dan assemblyName dikompilasi untuk versi CLR yang lebih baru dari versi yang saat ini dimuat. Perhatikan bahwa .NET Framework versi 2.0, 3.0, dan 3.5 semuanya menggunakan CLR versi 2.0.
Rakitan atau modul dimuat dua kali dengan dua bukti yang berbeda.
-atau-
Nama rakitan atau basis kode tidak valid.
Keterangan
Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.
Nota
Metode ini dapat digunakan untuk membuat jenis dan anggota nonpublik jika penelepon telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(Type, Object[])
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
- 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 misalnya Nullable<T> tanpa nilai.
Pengecualian
type adalah null.
typebukan .RuntimeType
-atau-
type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).
type tidak boleh berupa TypeBuilder.
-atau-
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, atau array dari jenis tersebut, tidak didukung.
-atau-
Rakitan yang berisi type adalah rakitan dinamis yang dibuat dengan Save.
-atau-
Konstruktor yang paling cocok args memiliki varargs argumen.
Konstruktor yang disebut melempar pengecualian.
Pemanggil tidak memiliki izin untuk memanggil konstruktor ini.
Tidak dapat membuat instans kelas abstrak, atau anggota ini dipanggil dengan mekanisme pengikatan terlambat.
Jenis COM tidak diperoleh melalui GetTypeFromProgID atau GetTypeFromCLSID.
Tidak ditemukan konstruktor 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.
Contoh
Contoh berikut memanggil CreateInstance(Type, Object[]) metode untuk membuat String objek. Ini memanggil String.String(Char[], Int32, Int32) konstruktor untuk membuat instans string yang berisi sepuluh elemen dari array karakter mulai dari posisi keempat belas.
using System;
public class Example
{
public static void Main()
{
// Initialize array of characters from a to z.
char[] chars = new char[26];
for (int ctr = 0; ctr < 26; ctr++)
chars[ctr] = (char) (ctr + 0x0061);
object obj = Activator.CreateInstance(typeof(string),
new object[] { chars, 13, 10 } );
Console.WriteLine(obj);
}
}
// The example displays the following output:
// nopqrstuvw
open System
// Initialize array of characters from a to z.
let chars = [| 'a' .. 'z' |]
let obj = Activator.CreateInstance(typeof<string>, chars[13..22])
printfn $"{obj}"
// The example displays the following output:
// nopqrstuvw
Module Example
Public Sub Main()
' Initialize array of characters from a to z.
Dim chars(25) As Char
For ctr As Short = 0 To 25
chars(ctr) = ChrW(ctr + &h0061)
Next
Dim obj As Object = Activator.CreateInstance(GetType(String),
{ chars, 13, 10 })
Console.WriteLine(obj)
End Sub
End Module
' The example displays the following output:
' nopqrstuvw
Contoh berikut membuat array jagged yang elemennya adalah argumen yang akan diteruskan ke String konstruktor. Contoh kemudian meneruskan setiap array ke CreateInstance(Type, Object[]) metode untuk memanggil konstruktor string yang sesuai.
using System;
public class Example
{
public static void Main()
{
char[] characters = { 'a', 'b', 'c', 'd', 'e', 'f' };
object[][] arguments = new object[3][] { new object[] { characters },
new object[] { characters, 1, 4 },
new object[] { characters[1], 20 } };
for (int ctr = 0; ctr <= arguments.GetUpperBound(0); ctr++) {
object[] args = arguments[ctr];
object result = Activator.CreateInstance(typeof(string), args);
Console.WriteLine("{0}: {1}", result.GetType().Name, result);
}
}
}
// The example displays the following output:
// String: abcdef
// String: bcde
// String: bbbbbbbbbbbbbbbbbbbb
open System
let chars = [| 'a' .. 'f' |]
let arguments =
[| chars
chars[1..4]
Array.create 20 chars[1] |]
for args in arguments do
let result =
Activator.CreateInstance(typeof<string>, args)
printfn $"{result.GetType().Name}: {result}"
// The example displays the following output:
// String: abcdef
// String: bcde
// String: bbbbbbbbbbbbbbbbbbbb
Module Example
Public Sub Main()
Dim characters() As Char = { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c }
Dim arguments()() As Object = new Object(2)() { New Object() { characters },
New Object() { characters, 1, 4 },
New Object() { characters(1), 20 } }
For ctr As Integer = 0 To arguments.GetUpperBound(0)
Dim args() As Object = arguments(ctr)
Dim result As Object = Activator.CreateInstance(GetType(String), args)
Console.WriteLine("{0}: {1}", result.GetType().Name, result)
Next
End Sub
End Module
' The example displays the following output:
' String: abcdef
' String: bcde
' String: bbbbbbbbbbbbbbbbbbbb
Keterangan
Konstruktor yang akan dipanggil harus dapat diakses dan harus memberikan kecocokan paling spesifik dengan daftar argumen yang ditentukan.
Nota
Metode ini dapat digunakan untuk mengakses jenis nonpublik jika penelepon telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dibatasi untuk set pemberian pemanggil atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(Type, Boolean)
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
Membuat instans dari jenis yang ditentukan menggunakan konstruktor tanpa parameter jenis tersebut.
public:
static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object? CreateInstance(Type type, bool nonPublic);
public static object CreateInstance(Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj
Public Shared Function CreateInstance (type As Type, nonPublic As Boolean) As Object
Parameter
- type
- Type
Jenis objek yang akan dibuat.
- nonPublic
- Boolean
true jika konstruktor tanpa parameter publik atau nonpublik dapat cocok; false jika hanya konstruktor tanpa parameter publik yang dapat cocok.
Mengembalikan
Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> .
Pengecualian
type adalah null.
typebukan .RuntimeType
-atau-
type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).
type tidak boleh berupa TypeBuilder.
-atau-
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, 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
Metode ini dapat digunakan untuk mengakses jenis dan anggota nonpublik jika pemanggil telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dan anggota dibatasi untuk set pemberian penelepon atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(String, String)
- Sumber:
- Activator.RuntimeType.cs
- Sumber:
- Activator.RuntimeType.cs
- 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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")]
public static System.Runtime.Remoting.ObjectHandle? CreateInstance(string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance(string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")>]
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
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 adalah null, rakitan yang dijalankan dicari.
- typeName
- String
Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.
Mengembalikan
Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .
- Atribut
Pengecualian
typeName adalah 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.
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, 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 Person kelas memiliki dua konstruktor, salah satunya tanpa parameter.
using System;
public class Person
{
private string _name;
public Person()
{ }
public Person(string name)
{
this._name = name;
}
public string Name
{ get { return this._name; }
set { this._name = value; } }
public override string ToString()
{
return this._name;
}
}
type Person(name) =
member val Name = name with get, set
override this.ToString() = this.Name
new () = Person Unchecked.defaultof<string>
Public Class Person
Private _name As String
Public Sub New()
End Sub
Public Sub New(name As String)
Me._name = name
End Sub
Public Property Name As String
Get
Return Me._name
End Get
Set
Me._name = value
End Set
End Property
Public Overrides Function ToString() As String
Return Me._name
End Function
End Class
Contoh berikut memanggil CreateInstance(String, String) metode untuk membuat instans Person kelas. Ini memerlukan referensi ke PersonInfo.dll untuk ditambahkan ke proyek.
CreateInstance(String, String) Karena metode memanggil Person konstruktor tanpa parameter kelas, contoh menetapkan nilai ke propertinyaName.
using System;
using System.Runtime.Remoting;
public class Example
{
public static void Main()
{
ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
Person p = (Person) handle.Unwrap();
p.Name = "Samuel";
Console.WriteLine(p);
}
}
// The example displays the following output:
// Samuel
open System
let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{p}"
// The example displays the following output:
// Samuel
Imports System.Runtime.Remoting
Module Example
Public Sub Main()
Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
Dim p As Person = CType(handle.Unwrap(), Person)
p.Name = "Samuel"
Console.WriteLine(p)
End Sub
End Module
' The example displays the following output:
' Samuel
Namun, CreateInstance sering dipanggil untuk membuat instans jenis yang melewati batas mesin atau yang tidak diketahui pada waktu desain. Dalam hal ini, Anda tidak dapat menyertakan referensi ke perakitan dalam proyek dan tidak dapat melakukan panggilan terikat awal ke anggota jenis. Untuk mengatasi batasan ini, contoh berikut menggunakan CreateInstance metode bersama dengan pantulan untuk menetapkan nilai ke Person properti objek Name dan untuk menampilkan nilainya.
using System;
using System.Reflection;
using System.Runtime.Remoting;
public class Example
{
public static void Main()
{
ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
object p = handle.Unwrap();
Type t = p.GetType();
PropertyInfo prop = t.GetProperty("Name");
if (prop != null)
prop.SetValue(p, "Samuel");
MethodInfo method = t.GetMethod("ToString");
object retVal = method.Invoke(p, null);
if (retVal != null)
Console.WriteLine(retVal);
}
}
// The example displays the following output:
// Samuel
open System
let handle =
Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap()
let t = p.GetType()
let prop = t.GetProperty "Name"
if not (isNull prop) then
prop.SetValue(p, "Samuel")
let method = t.GetMethod "ToString"
let retVal = method.Invoke(p, null)
if not (isNull retVal) then
printfn $"{retVal}"
// The example displays the following output:
// Samuel
Imports System.Reflection
Imports System.Runtime.Remoting
Module Example
Public Sub Main()
Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
Dim p As Object = handle.Unwrap()
Dim t As Type = p.GetType()
Dim prop As PropertyInfo = t.GetProperty("Name")
if Not prop Is Nothing Then
prop.SetValue(p, "Samuel")
End If
Dim method As MethodInfo = t.GetMethod("ToString")
Dim retVal As Object = method.Invoke(p, Nothing)
If Not retVal Is Nothing Then
Console.WriteLine(retVal)
End If
End Sub
End Module
' The example displays the following output:
' Samuel
Keterangan
Gunakan ObjectHandle.Unwrap untuk membuka bungkus nilai yang dikembalikan.
assemblyName dapat berupa salah satu hal berikut:
Nama sederhana rakitan, tanpa jalur atau ekstensi filenya. Misalnya, Anda akan menentukan
TypeExtensionsuntuk 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 Cara Runtime Menemukan Rakitan. Untuk informasi tentang menggunakan file konfigurasi aplikasi untuk menentukan lokasi perakitan, lihat Menentukan Lokasi Assembly. Jika assemblyName ditemukan, itu dimuat dalam konteks default.
Di .NET Core 3.0 dan versi yang lebih baru, beban rakitan yang dipicu oleh API ini dipengaruhi oleh nilai saat ini dari AssemblyLoadContext.CurrentContextualReflectionContext.
Nota
Metode ini dapat digunakan untuk membuat jenis nonpublik jika penelepon telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika set pemberian rakitan yang berisi jenis nonpublik dibatasi untuk set pemberian pemanggil atau subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(ActivationContext, String[])
Membuat instans jenis yang ditunjuk oleh objek yang ditentukan ActivationContext dan diaktifkan dengan data aktivasi kustom yang ditentukan.
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext, cli::array <System::String ^> ^ activationCustomData);
public static System.Runtime.Remoting.ObjectHandle CreateInstance(ActivationContext activationContext, string[] activationCustomData);
static member CreateInstance : ActivationContext * string[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext, activationCustomData As String()) As ObjectHandle
Parameter
- activationContext
- ActivationContext
Objek konteks aktivasi yang menentukan objek yang akan dibuat.
- activationCustomData
- String[]
Array string Unicode yang berisi data aktivasi kustom.
Mengembalikan
Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .
Keterangan
ObjectHandle.Unwrap Gunakan metode untuk membuka bungkus nilai yang dikembalikan.
Konteks aktivasi digunakan selama aktivasi berbasis manifes untuk menyiapkan kebijakan domain dan untuk menyediakan model keamanan berbasis aplikasi. Kelas ActivationContext berisi ApplicationIdentity objek yang menyediakan akses ke manifes aplikasi. Untuk informasi selengkapnya, lihat kelas ApplicationSecurityManager.
Lihat juga
Berlaku untuk
CreateInstance(Type)
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
- Sumber:
- Activator.cs
Membuat instans dari jenis yang ditentukan menggunakan konstruktor tanpa parameter jenis tersebut.
public:
static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance(Type type);
public static object? CreateInstance(Type type);
static member CreateInstance : Type -> obj
Public Shared Function CreateInstance (type As Type) As Object
Parameter
- type
- Type
Jenis objek yang akan dibuat.
Mengembalikan
Referensi ke objek yang baru dibuat, atau null misalnya Nullable<T> .
Pengecualian
type adalah null.
typebukan .RuntimeType
-atau-
type adalah jenis generik terbuka (yaitu, ContainsGenericParameters properti mengembalikan true).
type tidak boleh berupa TypeBuilder.
-atau-
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, 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.
Contoh
Contoh kode berikut menunjukkan cara memanggil CreateInstance(Type) metode . Instans dari beberapa jenis berbeda dibuat dan nilai defaultnya ditampilkan.
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
Metode ini dapat digunakan untuk mengakses jenis nonpublik jika penelepon telah diberikan ReflectionPermission dengan ReflectionPermissionFlag.RestrictedMemberAccess bendera dan jika sekumpulan perakitan yang berisi jenis nonpublik dibatasi untuk set pemberian pemanggil atau ke subsetnya. (Lihat Pertimbangan Keamanan untuk Refleksi.) Untuk menggunakan fungsionalitas ini, aplikasi Anda harus menargetkan .NET Framework 3.5 atau yang lebih baru.
Berlaku untuk
CreateInstance(ActivationContext)
Membuat instans jenis yang ditunjuk oleh objek yang ditentukan ActivationContext .
public:
static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext);
public static System.Runtime.Remoting.ObjectHandle CreateInstance(ActivationContext activationContext);
static member CreateInstance : ActivationContext -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext) As ObjectHandle
Parameter
- activationContext
- ActivationContext
Objek konteks aktivasi yang menentukan objek yang akan dibuat.
Mengembalikan
Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .
Keterangan
ObjectHandle.Unwrap Gunakan metode untuk membuka bungkus nilai yang dikembalikan.
Konteks aktivasi digunakan selama aktivasi berbasis manifes untuk menyiapkan kebijakan domain dan untuk menyediakan model keamanan berbasis aplikasi. Kelas ActivationContext berisi ApplicationIdentity objek yang menyediakan akses ke manifes aplikasi. Untuk informasi selengkapnya, lihat 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 adalah null, rakitan yang dijalankan dicari.
- typeName
- String
Nama jenis yang sepenuhnya memenuhi syarat untuk membuat instans.
Mengembalikan
Handel yang harus dibongkar untuk mengakses objek yang baru dibuat, atau null misalnya Nullable<T> .
- Atribut
Pengecualian
typeName atau 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.
TypedReferencePembuatan , ArgIterator, , Voiddan RuntimeArgumentHandle jenis, 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
- 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>();
public static T CreateInstance<T>() where T : allows ref struct;
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 misalnya Nullable<T> .
Pengecualian
Tidak dapat membuat instans kelas abstrak, atau jenis yang ditentukan untuk T tidak memiliki konstruktor tanpa parameter.
Keterangan
Metode CreateInstance<T>() generik digunakan oleh kompilator untuk mengimplementasikan instansiasi jenis yang ditentukan oleh parameter jenis. Misalnya, dalam metode generik berikut, implementasi menggunakan new T()CreateInstance<T>() metode generik.
public static T Factory<T>() where T : new()
{
return new T();
}
let factory<'T when 'T : (new: unit -> 'T)> =
new 'T()
Public Shared Function Factory(Of T As New)() As T
Return New T()
End Function
Secara umum, tidak ada penggunaan untuk CreateInstance<T>() metode generik dalam kode aplikasi, karena jenisnya harus diketahui pada waktu kompilasi. Jika jenis diketahui pada waktu kompilasi, sintaks instansiasi normal dapat digunakan (new operator di C#, New di Visual Basic). Jika jenis tidak diketahui pada waktu kompilasi, Anda dapat memanggil kelebihan beban non-generik .CreateInstance
Tidak ada kelebihan beban CreateInstance<T>() metode generik yang mengambil daftar argumen, karena kelebihan beban CreateInstance non-generik sudah memberikan resolusi konstruktor yang terikat terlambat.