Activator.CreateInstance Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati.
Overload
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Obsoleti.
Crea un'istanza del tipo il cui nome è specificato nel dominio remoto specificato, usando l'assembly denominato e il costruttore che corrisponde maggiormente ai parametri specificati. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crea un'istanza del tipo il cui nome è specificato nel dominio remoto specificato, usando l'assembly denominato e il costruttore che corrisponde maggiormente ai parametri specificati. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore più adatto ai parametri specificati. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) |
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati. |
CreateInstance(Type, Object[], Object[]) |
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati. |
CreateInstance(String, String, Object[]) |
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore senza parametri. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Obsoleti.
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore più adatto ai parametri specificati. |
CreateInstance(Type, Object[]) |
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati. |
CreateInstance(Type, Boolean) |
Crea un'istanza del tipo specificato usando il costruttore senza parametri di tale tipo. |
CreateInstance(String, String) |
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore senza parametri. |
CreateInstance(ActivationContext, String[]) |
Crea un'istanza del tipo designato dall'oggetto ActivationContext specificato e attivato con i dati di attivazione personalizzati specificati. |
CreateInstance(Type) |
Crea un'istanza del tipo specificato usando il costruttore senza parametri di tale tipo. |
CreateInstance(ActivationContext) |
Crea un'istanza del tipo designato dall'oggetto ActivationContext specificato. |
CreateInstance(AppDomain, String, String) |
Crea un'istanza del tipo il cui nome è specificato nel dominio remoto specificato, usando l'assembly denominato e il costruttore senza parametri. |
CreateInstance<T>() |
Crea un'istanza del tipo designato dal parametro del tipo generico specificato, usando il costruttore senza parametri. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Attenzione
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.
Crea un'istanza del tipo il cui nome è specificato nel dominio remoto specificato, usando l'assembly denominato e il costruttore che corrisponde maggiormente ai parametri specificati.
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
Parametri
- domain
- AppDomain
Dominio in cui viene creato il tipo denominato typeName
.
- assemblyName
- String
Nome dell'assembly nel quale viene ricercato il tipo denominato typeName
. Se assemblyName
è null
, viene effettuata la ricerca nell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
- ignoreCase
- Boolean
true
per specificare che la ricerca di typeName
non fa distinzione tra maiuscole e minuscole, false
per specificare che la ricerca fa distinzione tra maiuscole e minuscole.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore typeName
. Se bindingAttr
è uguale a zero, verrà eseguita una ricerca di costruttori pubblici con distinzione tra maiuscole e minuscole.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore typeName
. Se binder
è null
, verrà usato il binder predefinito.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
- culture
- CultureInfo
Informazioni specifiche delle impostazioni cultura che regolano la coercizione di args
ai tipi formali dichiarati per il costruttore typeName
. Se culture
è null
, per il thread corrente verrà usato l'oggetto CultureInfo.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono prendere parte all'attivazione. In genere, corrisponde a una matrice che contiene un unico oggetto UrlAttribute. L'oggetto UrlAttribute specifica l'URL necessario per attivare un oggetto remoto.
- securityAttributes
- Evidence
Informazioni usate per prendere decisioni relative ai criteri di sicurezza e per concedere autorizzazioni di codice.
Restituisce
Handle che deve essere annullata per accedere all'oggetto appena creato o null
per Nullable<T> le istanze senza alcun valore.
- Attributi
Eccezioni
domain
o typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
Non è possibile trovare typename
in assemblyName
.
Il parametro assemblyName
non è stato trovato.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il costruttore, richiamato tramite reflection, ha generato un'eccezione.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
assemblyName
non è un assembly valido.
-oppure-
Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime (CLR) e assemblyName
è stato compilato per una versione di CLR successiva a quella attualmente caricata. Si noti che le versioni 2.0, 3.0 e 3.5 di .NET Framework usano tutte CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due evidenze diverse.
-oppure-
La codebase o il nome dell'assembly non è valido.
Commenti
Usare CreateInstance quando un host deve eseguire codice in un dominio applicazione con autorizzazioni di sicurezza limitate.
Utilizzare ObjectHandle.Unwrap per annullare il valore restituito.
Si applica a
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
Crea un'istanza del tipo il cui nome è specificato nel dominio remoto specificato, usando l'assembly denominato e il costruttore che corrisponde maggiormente ai parametri specificati.
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
Parametri
- domain
- AppDomain
Dominio in cui viene creato il tipo denominato typeName
.
- assemblyName
- String
Nome dell'assembly nel quale viene ricercato il tipo denominato typeName
. Se assemblyName
è null
, viene effettuata la ricerca nell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
- ignoreCase
- Boolean
true
per specificare che la ricerca di typeName
non fa distinzione tra maiuscole e minuscole, false
per specificare che la ricerca fa distinzione tra maiuscole e minuscole.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore typeName
. Se bindingAttr
è uguale a zero, verrà eseguita una ricerca di costruttori pubblici con distinzione tra maiuscole e minuscole.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore typeName
. Se binder
è null
, verrà usato il binder predefinito.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
- culture
- CultureInfo
Informazioni specifiche delle impostazioni cultura che regolano la coercizione di args
ai tipi formali dichiarati per il costruttore typeName
. Se culture
è null
, per il thread corrente verrà usato l'oggetto CultureInfo.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono prendere parte all'attivazione. In genere, matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Il parametro è correlato agli oggetti attivati dal client. L'attivazione del client è una tecnologia legacy mantenuta per garantire la compatibilità con le versioni precedenti, ma non è consigliata per nuove attività di sviluppo. Per le applicazioni distribuite si dovrebbe usare invece Windows Communication Foundation.
Restituisce
Handle che deve essere annullata per accedere all'oggetto appena creato o null
per Nullable<T> le istanze senza alcun valore.
- Attributi
Eccezioni
domain
o typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
Non è possibile trovare typename
in assemblyName
.
Il parametro assemblyName
non è stato trovato.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il costruttore, richiamato tramite reflection, ha generato un'eccezione.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
assemblyName
non è un assembly valido.
-oppure-
Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime (CLR) e assemblyName
è stato compilato per una versione di CLR successiva a quella attualmente caricata. Si noti che le versioni 2.0, 3.0 e 3.5 di .NET Framework usano tutte CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due evidenze diverse.
-oppure-
La codebase o il nome dell'assembly non è valido.
Commenti
Usare CreateInstance quando un host deve eseguire codice in un dominio applicazione con autorizzazioni di sicurezza limitate.
Utilizzare ObjectHandle.Unwrap per annullare il valore restituito.
Si applica a
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore più adatto ai parametri specificati.
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
Parametri
- assemblyName
- String
Nome dell'assembly nel quale viene ricercato il tipo denominato typeName
. Se assemblyName
è null
, viene effettuata la ricerca nell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
- ignoreCase
- Boolean
true
per specificare che la ricerca di typeName
non fa distinzione tra maiuscole e minuscole, false
per specificare che la ricerca fa distinzione tra maiuscole e minuscole.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore typeName
. Se bindingAttr
è uguale a zero, verrà eseguita una ricerca di costruttori pubblici con distinzione tra maiuscole e minuscole.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore typeName
. Se binder
è null
, verrà usato il binder predefinito.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
- culture
- CultureInfo
Informazioni specifiche delle impostazioni cultura che regolano la coercizione di args
ai tipi formali dichiarati per il costruttore typeName
. Se culture
è null
, per il thread corrente verrà usato l'oggetto CultureInfo.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono prendere parte all'attivazione. In genere, matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Il parametro è correlato agli oggetti attivati dal client. L'attivazione del client è una tecnologia legacy mantenuta per garantire la compatibilità con le versioni precedenti, ma non è consigliata per nuove attività di sviluppo. Per le applicazioni distribuite si dovrebbe usare invece Windows Communication Foundation.
Restituisce
Handle che deve essere annullata per accedere all'istanza appena creata o null
per Nullable<T> le istanze senza alcun valore.
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
Non è possibile trovare typename
in assemblyName
.
Il parametro assemblyName
non è stato trovato.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il costruttore, richiamato tramite reflection, ha generato un'eccezione.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
assemblyName
non è un assembly valido.
-oppure-
Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime (CLR) e assemblyName
è stato compilato per una versione di CLR successiva a quella attualmente caricata. Si noti che le versioni 2.0, 3.0 e 3.5 di .NET Framework usano tutte CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due evidenze diverse.
-oppure-
La codebase o il nome dell'assembly non è valido.
Commenti
Utilizzare ObjectHandle.Unwrap per annullare il valore restituito.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per creare tipi e membri non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessione dell'assembly che contiene i tipi non pubblici e i membri sono limitati al set di concessione del chiamante o a un sottoinsieme. Vedere Considerazioni sulla sicurezza per Reflection. Per usare questa funzionalità, l'applicazione deve essere di destinazione .NET Framework 3.5 o successiva.
Si applica a
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati.
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
Parametri
- type
- Type
Il tipo di oggetto da creare.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore type
. Se bindingAttr
è uguale a zero, verrà eseguita una ricerca di costruttori pubblici con distinzione tra maiuscole e minuscole.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore type
. Se binder
è null
, verrà usato il binder predefinito.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
- culture
- CultureInfo
Informazioni specifiche delle impostazioni cultura che regolano la coercizione di args
ai tipi formali dichiarati per il costruttore type
. Se culture
è null
, per il thread corrente verrà usato l'oggetto CultureInfo.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono prendere parte all'attivazione. In genere, matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Il parametro è correlato agli oggetti attivati dal client. L'attivazione del client è una tecnologia legacy mantenuta per garantire la compatibilità con le versioni precedenti, ma non è consigliata per nuove attività di sviluppo. Per le applicazioni distribuite si dovrebbe usare invece Windows Communication Foundation.
Restituisce
Riferimento all'oggetto appena creato o null
alle Nullable<T> istanze senza valore.
Eccezioni
type
è null
.
type
non è un oggetto RuntimeType
.
-oppure-
type
è un tipo generico aperto (ovvero, la proprietà ContainsGenericParameters restituisce true
).
type
non può essere un TypeBuilder.
-oppure-
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-oppure-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
Non è stato trovato alcun costruttore corrispondente.
type
è un oggetto COM ma l'identificatore di classe usato per ottenere il tipo non è valido oppure la classe identificata non è registrata.
type
non è un tipo valido.
Commenti
Il costruttore da richiamare deve fornire la corrispondenza più specifica con l'elenco di argomenti specificato con i vincoli del binder e degli attributi di associazione specificati.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per accedere a tipi e membri non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessione dei tipi e dei membri non pubblici è limitato al set di concessione del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per Reflection. Per usare questa funzionalità, l'applicazione deve essere di destinazione .NET Framework 3.5 o successiva.
Si applica a
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)
- Origine:
- Activator.cs
- Origine:
- Activator.cs
- Origine:
- Activator.cs
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati.
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
Parametri
- type
- Type
Il tipo di oggetto da creare.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore type
. Se bindingAttr
è uguale a zero, verrà eseguita una ricerca di costruttori pubblici con distinzione tra maiuscole e minuscole.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore type
. Se binder
è null
, verrà usato il binder predefinito.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
- culture
- CultureInfo
Informazioni specifiche delle impostazioni cultura che regolano la coercizione di args
ai tipi formali dichiarati per il costruttore type
. Se culture
è null
, per il thread corrente verrà usato l'oggetto CultureInfo.
Restituisce
Riferimento all'oggetto appena creato o null
alle Nullable<T> istanze senza valore.
Eccezioni
type
è null
.
type
non è un oggetto RuntimeType
.
-oppure-
type
è un tipo generico aperto (ovvero, la proprietà ContainsGenericParameters restituisce true
).
type
non può essere un TypeBuilder.
-oppure-
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
Non è stato trovato alcun costruttore corrispondente.
type
è un oggetto COM ma l'identificatore di classe usato per ottenere il tipo non è valido oppure la classe identificata non è registrata.
type
non è un tipo valido.
Commenti
Il costruttore da richiamare deve fornire la corrispondenza più specifica con l'elenco di argomenti specificato con i vincoli del binder e degli attributi di associazione specificati.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per accedere ai tipi e ai membri non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessione dell'assembly che contiene i tipi non pubblici e i membri è limitato al set di concessione del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per Reflection. Per usare questa funzionalità, l'applicazione deve essere di destinazione .NET Framework 3.5 o successiva.
Si applica a
CreateInstance(Type, Object[], Object[])
- Origine:
- Activator.cs
- Origine:
- Activator.cs
- Origine:
- Activator.cs
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati.
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
Parametri
- type
- Type
Il tipo di oggetto da creare.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono prendere parte all'attivazione. In genere, matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Il parametro è correlato agli oggetti attivati dal client. L'attivazione del client è una tecnologia legacy mantenuta per garantire la compatibilità con le versioni precedenti, ma non è consigliata per nuove attività di sviluppo. Per le applicazioni distribuite si dovrebbe usare invece Windows Communication Foundation.
Restituisce
Riferimento all'oggetto appena creato o null
alle Nullable<T> istanze senza valore.
Eccezioni
type
è null
.
type
non è un oggetto RuntimeType
.
-oppure-
type
è un tipo generico aperto (ovvero, la proprietà ContainsGenericParameters restituisce true
).
type
non può essere un TypeBuilder.
-oppure-
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-oppure-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
Non è stato trovato alcun costruttore pubblico corrispondente.
type
è un oggetto COM ma l'identificatore di classe usato per ottenere il tipo non è valido oppure la classe identificata non è registrata.
type
non è un tipo valido.
Commenti
Il costruttore da richiamare deve essere accessibile e deve fornire la corrispondenza più specifica con l'elenco di argomenti specificato.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per accedere a tipi non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessione dell'assembly che contiene i tipi non pubblici è limitato al set di concessione del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per Reflection. Per usare questa funzionalità, l'applicazione deve essere di destinazione .NET Framework 3.5 o successiva.
Si applica a
CreateInstance(String, String, Object[])
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore senza parametri.
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
Parametri
- assemblyName
- String
Nome dell'assembly nel quale viene ricercato il tipo denominato typeName
. Se assemblyName
è null
, viene effettuata la ricerca nell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono prendere parte all'attivazione. In genere, matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Il parametro è correlato agli oggetti attivati dal client. L'attivazione del client è una tecnologia legacy mantenuta per garantire la compatibilità con le versioni precedenti, ma non è consigliata per nuove attività di sviluppo. Per le applicazioni distribuite si dovrebbe usare invece Windows Communication Foundation.
Restituisce
Handle che deve essere decomcritto per accedere all'oggetto appena creato o null
per Nullable<T> le istanze.
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore pubblico corrispondente.
Non è possibile trovare typename
in assemblyName
.
Il parametro assemblyName
non è stato trovato.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-oppure-
activationAttributes
non è un oggetto UrlAttribute.
matrice.
assemblyName
non è un assembly valido.
-oppure-
Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime (CLR) e assemblyName
è stato compilato per una versione di CLR successiva a quella attualmente caricata. Si noti che le versioni 2.0, 3.0 e 3.5 di .NET Framework usano tutte CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due evidenze diverse.
-oppure-
La codebase o il nome dell'assembly non è valido.
Il costruttore richiamato genera un'eccezione.
-oppure-
Si è verificato un errore durante il tentativo di attivazione remota in una destinazione specificata in activationAttributes
.
Commenti
Usare ObjectHandle.Unwrap per annullare il wrapping del valore restituito.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per creare tipi non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessioni dei tipi non pubblici è limitato al set di concessioni del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per la reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Attenzione
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.
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore più adatto ai parametri specificati.
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
Parametri
- assemblyName
- String
Nome dell'assembly nel quale viene ricercato il tipo denominato typeName
. Se assemblyName
è null
, viene effettuata la ricerca nell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
- ignoreCase
- Boolean
true
per specificare che la ricerca di typeName
non fa distinzione tra maiuscole e minuscole, false
per specificare che la ricerca fa distinzione tra maiuscole e minuscole.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore typeName
. Se bindingAttr
è uguale a zero, verrà eseguita una ricerca di costruttori pubblici con distinzione tra maiuscole e minuscole.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore typeName
. Se binder
è null
, verrà usato il binder predefinito.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
- culture
- CultureInfo
Informazioni specifiche delle impostazioni cultura che regolano la coercizione di args
ai tipi formali dichiarati per il costruttore typeName
. Se culture
è null
, per il thread corrente verrà usato l'oggetto CultureInfo.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono prendere parte all'attivazione. In genere, matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Il parametro è correlato agli oggetti attivati dal client. L'attivazione del client è una tecnologia legacy mantenuta per garantire la compatibilità con le versioni precedenti, ma non è consigliata per nuove attività di sviluppo. Per le applicazioni distribuite si dovrebbe usare invece Windows Communication Foundation.
- securityInfo
- Evidence
Informazioni usate per prendere decisioni relative ai criteri di sicurezza e per concedere autorizzazioni di codice.
Restituisce
Handle che deve essere decomcritto per accedere all'oggetto appena creato o null
per Nullable<T> le istanze senza alcun valore.
- Attributi
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
Non è possibile trovare typename
in assemblyName
.
Il parametro assemblyName
non è stato trovato.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il costruttore, richiamato tramite reflection, ha generato un'eccezione.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
assemblyName
non è un assembly valido.
-oppure-
Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime (CLR) e assemblyName
è stato compilato per una versione di CLR successiva a quella attualmente caricata. Si noti che le versioni 2.0, 3.0 e 3.5 di .NET Framework usano tutte CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due evidenze diverse.
-oppure-
La codebase o il nome dell'assembly non è valido.
Commenti
Usare ObjectHandle.Unwrap per annullare il wrapping del valore restituito.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per creare tipi e membri non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessioni dell'assembly che contiene i tipi e i membri non pubblici è limitato al set di concessioni del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per la reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
CreateInstance(Type, Object[])
- Origine:
- Activator.cs
- Origine:
- Activator.cs
- Origine:
- Activator.cs
Crea un'istanza del tipo specificato utilizzando il costruttore che corrisponde maggiormente ai parametri specificati.
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
Parametri
- type
- Type
Il tipo di oggetto da creare.
- args
- Object[]
Una matrice di argomenti che corrispondono per numero, ordine e tipo ai parametri del costruttore da richiamare. Se args
è una matrice vuota oppure null
, viene chiamato il costruttore che non accetta parametri, ovvero il costruttore senza parametri.
Restituisce
Riferimento all'oggetto appena creato o null
per Nullable<T> le istanze senza alcun valore.
Eccezioni
type
è null
.
type
non è un oggetto RuntimeType
.
-oppure-
type
è un tipo generico aperto (ovvero, la proprietà ContainsGenericParameters restituisce true
).
type
non può essere un TypeBuilder.
-oppure-
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-oppure-
Il costruttore che corrisponde maggiormente a args
ha argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Nota: in .NET per le app di Windows Store o nella libreria di classi portabile intercettare invece l'eccezione della classe di base, MemberAccessException, .
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
Non è stato trovato alcun costruttore pubblico corrispondente.
Nota: in .NET per le app di Windows Store o nella libreria di classi portabile intercettare invece l'eccezione della classe di base, MissingMemberException, .
type
è un oggetto COM ma l'identificatore di classe usato per ottenere il tipo non è valido oppure la classe identificata non è registrata.
type
non è un tipo valido.
Esempio
Nell'esempio seguente viene chiamato il CreateInstance(Type, Object[]) metodo per creare un String oggetto . Chiama il costruttore per creare un'istanza String.String(Char[], Int32, Int32) di una stringa contenente dieci elementi da una matrice di caratteri a partire dalla quattordicesima posizione.
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
Nell'esempio seguente viene creata una matrice irregolare i cui elementi sono argomenti da passare a un String costruttore. L'esempio passa quindi ogni matrice al CreateInstance(Type, Object[]) metodo per richiamare il costruttore stringa appropriato.
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
Commenti
Il costruttore da richiamare deve essere accessibile e deve fornire la corrispondenza più specifica con l'elenco di argomenti specificato.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per accedere a tipi non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessioni dell'assembly che contiene i tipi non pubblici è limitato al set di concessioni del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per la reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
CreateInstance(Type, Boolean)
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
Crea un'istanza del tipo specificato usando il costruttore senza parametri di tale tipo.
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
Parametri
- type
- Type
Il tipo di oggetto da creare.
- nonPublic
- Boolean
true
se può corrispondere un costruttore senza parametri pubblico o non pubblico. false
se può corrispondere solo un costruttore senza parametri pubblico.
Restituisce
Riferimento all'oggetto appena creato o null
alle Nullable<T> istanze.
Eccezioni
type
è null
.
type
non è un oggetto RuntimeType
.
-oppure-
type
è un tipo generico aperto (ovvero, la proprietà ContainsGenericParameters restituisce true
).
type
non può essere un TypeBuilder.
-oppure-
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
L'assembly che contiene type
è un assembly dinamico creato con Save.
Il costruttore chiamato genera un'eccezione.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
Non è stato trovato alcun costruttore pubblico corrispondente.
type
è un oggetto COM ma l'identificatore di classe usato per ottenere il tipo non è valido oppure la classe identificata non è registrata.
type
non è un tipo valido.
Commenti
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per accedere ai tipi e ai membri non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessione dell'assembly che contiene i tipi non pubblici e i membri è limitato al set di concessione del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per Reflection. Per usare questa funzionalità, l'applicazione deve essere di destinazione .NET Framework 3.5 o successiva.
Si applica a
CreateInstance(String, String)
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
Crea un'istanza del tipo il cui nome è specificato, usando l'assembly denominato e il costruttore senza parametri.
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
Parametri
- assemblyName
- String
Nome dell'assembly nel quale viene ricercato il tipo denominato typeName
. Se assemblyName
è null
, viene effettuata la ricerca nell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
Restituisce
Handle che deve essere annullato per accedere all'oggetto appena creato o null
per Nullable<T> le istanze.
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore pubblico corrispondente.
Non è possibile trovare typename
in assemblyName
.
Il parametro assemblyName
non è stato trovato.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il costruttore, richiamato tramite reflection, ha generato un'eccezione.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
assemblyName
non è un assembly valido.
-oppure-
Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime (CLR) e assemblyName
è stato compilato per una versione di CLR successiva a quella attualmente caricata. Si noti che le versioni 2.0, 3.0 e 3.5 di .NET Framework usano tutte CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due evidenze diverse.
-oppure-
La codebase o il nome dell'assembly non è valido.
Esempio
Nell'esempio seguente viene definita una classe denominata Person
in un assembly denominato PersonInfo
. Si noti che la classe Person
dispone di due costruttori, uno dei quali è senza parametri.
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
Nell'esempio seguente viene chiamato il metodo CreateInstance(String, String) per creare un'istanza della classe Person
. Richiede che venga aggiunto un riferimento a PersonInfo.dll al progetto. Poiché il metodo chiama il CreateInstance(String, String) costruttore senza parametri della classe, nell'esempio Person
viene assegnato un valore alla relativa Name
proprietà.
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
Tuttavia, CreateInstance viene spesso chiamato per creare un'istanza di un tipo che supera i limiti del computer o che non è noto in fase di progettazione. In questo caso, non è possibile includere un riferimento all'assembly nel progetto e non è possibile eseguire chiamate con associazione anticipata ai membri del tipo. Per ovviare a questa limitazione, nell'esempio seguente viene utilizzato il metodo CreateInstance insieme alla reflection per assegnare un valore alla proprietà Person
dell'oggetto Name
e per visualizzarne il valore.
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
Commenti
Utilizzare ObjectHandle.Unwrap per annullare il valore restituito.
assemblyName
può corrispondere a uno dei seguenti nomi:
Il nome semplice di un assembly, senza il relativo percorso o estensione del file. Ad esempio, si specificherà
TypeExtensions
per un assembly il cui percorso e nome sono .\bin\TypeExtensions.dll.Nome completo di un assembly firmato costituito dal nome semplice, dalla versione, dalle impostazioni cultura e dal token di chiave pubblica; ad esempio, "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".
Per altre informazioni sul modo in cui Common Language Runtime identifica e carica gli assembly, vedere Come il runtime individua gli assembly. Per informazioni sull'uso del file di configurazione dell'applicazione per definire i percorsi dell'assembly, vedere Specifica della posizione di un assembly. Se assemblyName
viene trovato, viene caricato nel contesto predefinito.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per creare tipi non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessione dell'assembly che contiene i tipi non pubblici è limitato al set di concessione del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per Reflection. Per usare questa funzionalità, l'applicazione deve essere di destinazione .NET Framework 3.5 o successiva.
Si applica a
CreateInstance(ActivationContext, String[])
Crea un'istanza del tipo designato dall'oggetto ActivationContext specificato e attivato con i dati di attivazione personalizzati specificati.
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
Parametri
- activationContext
- ActivationContext
Oggetto di contesto di attivazione che specifica l'oggetto da creare.
- activationCustomData
- String[]
Matrice di stringhe Unicode contenente i dati di attivazione personalizzati.
Restituisce
Handle che deve essere annullato per accedere all'oggetto appena creato o null
per Nullable<T> le istanze.
Commenti
Utilizzare il metodo per annullare il ObjectHandle.Unwrap valore restituito.
Il contesto di attivazione viene usato durante l'attivazione basata su manifesto per configurare i criteri di dominio e fornire un modello di sicurezza basato su applicazioni. La ActivationContext classe contiene un ApplicationIdentity oggetto che fornisce l'accesso al manifesto dell'applicazione. Per altre informazioni, vedere la classe ApplicationSecurityManager.
Vedi anche
Si applica a
CreateInstance(Type)
- Origine:
- Activator.cs
- Origine:
- Activator.cs
- Origine:
- Activator.cs
Crea un'istanza del tipo specificato usando il costruttore senza parametri di tale tipo.
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
Parametri
- type
- Type
Il tipo di oggetto da creare.
Restituisce
Riferimento all'oggetto appena creato o null
alle Nullable<T> istanze.
Eccezioni
type
è null
.
type
non è un oggetto RuntimeType
.
-oppure-
type
è un tipo generico aperto (ovvero, la proprietà ContainsGenericParameters restituisce true
).
type
non può essere un TypeBuilder.
-oppure-
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
-oppure-
L'assembly che contiene type
è un assembly dinamico creato con Save.
Il costruttore chiamato genera un'eccezione.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Nota: in .NET per le app di Windows Store o la libreria di classi portabili, rilevare invece l'eccezione della classe di base, , MemberAccessException.
Non è possibile creare un'istanza di una classe astratta o questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
Non è stato trovato alcun costruttore pubblico corrispondente.
Nota: in .NET per le app di Windows Store o la libreria di classi portabili, rilevare invece l'eccezione della classe di base, , MissingMemberException.
type
è un oggetto COM ma l'identificatore di classe usato per ottenere il tipo non è valido oppure la classe identificata non è registrata.
type
non è un tipo valido.
Esempio
Nell'esempio di codice seguente viene illustrato come chiamare il CreateInstance(Type) metodo . Vengono create istanze di diversi tipi e vengono visualizzati i relativi valori predefiniti.
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
Commenti
Il costruttore da richiamare deve essere accessibile.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per accedere a tipi non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessione dell'assembly che contiene i tipi non pubblici è limitato al set di concessione del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per Reflection. Per usare questa funzionalità, l'applicazione deve essere di destinazione .NET Framework 3.5 o successiva.
Si applica a
CreateInstance(ActivationContext)
Crea un'istanza del tipo designato dall'oggetto ActivationContext specificato.
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
Parametri
- activationContext
- ActivationContext
Oggetto di contesto di attivazione che specifica l'oggetto da creare.
Restituisce
Handle che deve essere annullato per accedere all'oggetto appena creato o null
per Nullable<T> le istanze.
Commenti
Utilizzare il metodo per annullare il ObjectHandle.Unwrap valore restituito.
Il contesto di attivazione viene usato durante l'attivazione basata su manifesto per configurare i criteri di dominio e fornire un modello di sicurezza basato su applicazioni. La ActivationContext classe contiene un ApplicationIdentity oggetto che fornisce l'accesso al manifesto dell'applicazione. Per altre informazioni, vedere la classe ApplicationSecurityManager.
Vedi anche
Si applica a
CreateInstance(AppDomain, String, String)
Crea un'istanza del tipo il cui nome è specificato nel dominio remoto specificato, usando l'assembly denominato e il costruttore senza parametri.
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
Parametri
- domain
- AppDomain
Dominio remoto in cui viene creato il tipo denominato typeName
.
- assemblyName
- String
Nome dell'assembly nel quale viene ricercato il tipo denominato typeName
. Se assemblyName
è null
, viene effettuata la ricerca nell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
Restituisce
Handle che deve essere decomcritto per accedere all'oggetto appena creato o null
per Nullable<T> le istanze.
- Attributi
Eccezioni
typeName
o domain
è null
.
Non è stato trovato alcun costruttore pubblico corrispondente.
Non è possibile trovare typename
in assemblyName
.
Il parametro assemblyName
non è stato trovato.
Il chiamante non ha l'autorizzazione necessaria per chiamare il costruttore.
Impossibile creare un'istanza di un tipo astratto.
-oppure-
Questo membro è stato richiamato con un meccanismo di associazione tardiva.
Il costruttore, richiamato tramite reflection, ha generato un'eccezione.
Il tipo COM non è stato ottenuto tramite GetTypeFromProgID o GetTypeFromCLSID.
La creazione di tipi TypedReference, ArgIterator, Void e RuntimeArgumentHandle, o di matrici di questi tipi, non è supportata.
assemblyName
non è un assembly valido.
-oppure-
Attualmente è caricata la versione 2.0 o successiva di Common Language Runtime (CLR) e assemblyName
è stato compilato per una versione di CLR successiva a quella attualmente caricata. Si noti che le versioni 2.0, 3.0 e 3.5 di .NET Framework usano tutte CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due evidenze diverse.
-oppure-
La codebase o il nome dell'assembly non è valido.
Commenti
Usare CreateInstance quando un host deve eseguire codice in un dominio applicazione con autorizzazioni di sicurezza limitate.
Usare ObjectHandle.Unwrap per annullare il wrapping del valore restituito.
Si applica a
CreateInstance<T>()
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
- Origine:
- Activator.RuntimeType.cs
Crea un'istanza del tipo designato dal parametro del tipo generico specificato, usando il costruttore senza parametri.
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
Parametri di tipo
- T
Tipo da creare.
Restituisce
Riferimento all'oggetto appena creato o null
alle Nullable<T> istanze.
Eccezioni
Non è possibile creare un'istanza di una classe astratta oppure il tipo specificato per T
non ha un costruttore senza parametri.
Nota: in .NET per le app di Windows Store o nella libreria di classi portabile intercettare invece l'eccezione della classe di base, MissingMemberException, .
Commenti
Il CreateInstance<T>() metodo generico viene usato dai compilatori per implementare l'istanza dei tipi specificati dai parametri di tipo. Ad esempio, nel metodo generico seguente, l'implementazione di new T()
(gcnew T()
in C++) usa il CreateInstance<T>() metodo generico .
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
In generale, non esiste alcun uso per il CreateInstance<T>() metodo generico nel codice dell'applicazione, perché il tipo deve essere noto in fase di compilazione. Se il tipo è noto in fase di compilazione, è possibile usare la normale sintassi di creazione di istanze (new
operatore in C#, New
in Visual Basic, gcnew
in C++). Se il tipo non è noto in fase di compilazione, è possibile chiamare un overload non generico di CreateInstance.
Non sono presenti overload del CreateInstance<T>() metodo generico che accettano elenchi di argomenti, perché gli overload non generici di CreateInstance forniscono già la risoluzione del costruttore con associazione tardiva.
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per