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 usando il costruttore che meglio corrisponde ai parametri specificati.
Overload
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Obsoleti.
Crea un'istanza del tipo il cui nome viene specificato nel dominio remoto specificato, utilizzando l'assembly denominato e il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crea un'istanza del tipo il cui nome viene specificato nel dominio remoto specificato, utilizzando l'assembly denominato e il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crea un'istanza del tipo il cui nome è specificato, utilizzando l'assembly denominato e il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crea un'istanza del tipo specificato usando il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) |
Crea un'istanza del tipo specificato usando il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(Type, Object[], Object[]) |
Crea un'istanza del tipo specificato usando il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(String, String, Object[]) |
Crea un'istanza del tipo il cui nome è specificato, utilizzando 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, utilizzando l'assembly denominato e il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(Type, Object[]) |
Crea un'istanza del tipo specificato usando il costruttore che meglio corrisponde ai parametri specificati. |
CreateInstance(Type, Boolean) |
Crea un'istanza del tipo specificato utilizzando il costruttore senza parametri del tipo. |
CreateInstance(String, String) |
Crea un'istanza del tipo il cui nome è specificato, utilizzando 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 utilizzando il costruttore senza parametri del 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 viene specificato nel dominio remoto specificato, utilizzando l'assembly denominato e il costruttore senza parametri. |
CreateInstance<T>() |
Crea un'istanza del tipo designato dal parametro di 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 viene specificato nel dominio remoto specificato, utilizzando l'assembly denominato e il costruttore che meglio corrisponde 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 in cui viene cercato il tipo denominato typeName
. Se assemblyName
è null
, viene eseguita la ricerca dell'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
è zero, viene eseguita una ricerca con distinzione tra maiuscole e minuscole per i costruttori pubblici.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore di typeName
. Se binder
è null
, viene usato il gestore di associazione predefinito.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (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
, viene utilizzato il CultureInfo per il thread corrente.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono partecipare all'attivazione. Si tratta in genere di una matrice che contiene un singolo oggetto UrlAttribute. Il UrlAttribute specifica l'URL necessario per attivare un oggetto remoto.
- securityAttributes
- Evidence
Informazioni usate per prendere decisioni sui criteri di sicurezza e concedere autorizzazioni per il codice.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per Nullable<T> istanze senza alcun valore.
- Attributi
Eccezioni
domain
o typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
typeName
non è stato trovato in assemblyName
.
assemblyName
non è stato trovato.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta 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, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
assemblyName
non è un assembly valido.
-o-
Common Language Runtime (CLR) versione 2.0 o successiva è attualmente caricata e assemblyName
è stata compilata per una versione di CLR successiva alla versione attualmente caricata. Si noti che .NET Framework versioni 2.0, 3.0 e 3.5 usano tutti CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due prove diverse.
-o-
Il nome dell'assembly o la codebase 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(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
Crea un'istanza del tipo il cui nome viene specificato nel dominio remoto specificato, utilizzando l'assembly denominato e il costruttore che meglio corrisponde 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 in cui viene cercato il tipo denominato typeName
. Se assemblyName
è null
, viene eseguita la ricerca dell'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
è zero, viene eseguita una ricerca con distinzione tra maiuscole e minuscole per i costruttori pubblici.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore di typeName
. Se binder
è null
, viene usato il gestore di associazione predefinito.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (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
, viene utilizzato il CultureInfo per il thread corrente.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono partecipare all'attivazione. Si tratta in genere di una matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Questo parametro è correlato agli oggetti attivati dal client. L'attivazione client è una tecnologia legacy che viene mantenuta per la compatibilità con le versioni precedenti, ma non è consigliata per il nuovo sviluppo. Le applicazioni distribuite devono invece usare Windows Communication Foundation.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per Nullable<T> istanze senza alcun valore.
- Attributi
Eccezioni
domain
o typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
typeName
non è stato trovato in assemblyName
.
assemblyName
non è stato trovato.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta 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, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
assemblyName
non è un assembly valido.
-o-
Common Language Runtime (CLR) versione 2.0 o successiva è attualmente caricata e assemblyName
è stata compilata per una versione di CLR successiva alla versione attualmente caricata. Si noti che .NET Framework versioni 2.0, 3.0 e 3.5 usano tutti CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due prove diverse.
-o-
Il nome dell'assembly o la codebase 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(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, utilizzando l'assembly denominato e il costruttore che meglio corrisponde 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 in cui viene cercato il tipo denominato typeName
. Se assemblyName
è null
, viene eseguita la ricerca dell'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
è zero, viene eseguita una ricerca con distinzione tra maiuscole e minuscole per i costruttori pubblici.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore di typeName
. Se binder
è null
, viene usato il gestore di associazione predefinito.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (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
, viene utilizzato il CultureInfo per il thread corrente.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono partecipare all'attivazione. Si tratta in genere di una matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Questo parametro è correlato agli oggetti attivati dal client. L'attivazione client è una tecnologia legacy che viene mantenuta per la compatibilità con le versioni precedenti, ma non è consigliata per il nuovo sviluppo. Le applicazioni distribuite devono invece usare Windows Communication Foundation.
Restituisce
Handle che deve essere decomistato per accedere all'istanza appena creata o null
per Nullable<T> istanze senza valore.
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
typeName
non è stato trovato in assemblyName
.
assemblyName
non è stato trovato.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta 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, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
assemblyName
non è un assembly valido.
-o-
Common Language Runtime (CLR) versione 2.0 o successiva è attualmente caricata e assemblyName
è stata compilata per una versione di CLR successiva alla versione attualmente caricata. Si noti che .NET Framework versioni 2.0, 3.0 e 3.5 usano tutti CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due prove diverse.
-o-
Il nome dell'assembly o la codebase 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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 di per Reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione 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 usando il costruttore che meglio corrisponde 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
Tipo di oggetto da creare.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore type
. Se bindingAttr
è zero, viene eseguita una ricerca con distinzione tra maiuscole e minuscole per i costruttori pubblici.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore di type
. Se binder
è null
, viene usato il gestore di associazione predefinito.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (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
, viene utilizzato il CultureInfo per il thread corrente.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono partecipare all'attivazione. Si tratta in genere di una matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Questo parametro è correlato agli oggetti attivati dal client. L'attivazione client è una tecnologia legacy che viene mantenuta per la compatibilità con le versioni precedenti, ma non è consigliata per il nuovo sviluppo. Le applicazioni distribuite devono invece usare Windows Communication Foundation.
Restituisce
Riferimento all'oggetto appena creato o null
per Nullable<T> istanze senza alcun valore.
Eccezioni
type
è null
.
type
non è un RuntimeType
.
-o-
type
è un tipo generico aperto, ovvero la proprietà ContainsGenericParameters restituisce true
.
type
non può essere un TypeBuilder.
-o-
La creazione di tipi TypedReference, ArgIterator, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-o-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta oppure 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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess e se il set di concessioni dei tipi e dei membri non pubblici è limitato al set di concessioni del chiamante o a un subset di tali tipi. Vedere considerazioni sulla sicurezza di per Reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione 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 usando il costruttore che meglio corrisponde 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
Tipo di oggetto da creare.
- bindingAttr
- BindingFlags
Combinazione di zero o più flag di bit che influiscono sulla ricerca del costruttore type
. Se bindingAttr
è zero, viene eseguita una ricerca con distinzione tra maiuscole e minuscole per i costruttori pubblici.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore di type
. Se binder
è null
, viene usato il gestore di associazione predefinito.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (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
, viene utilizzato il CultureInfo per il thread corrente.
Restituisce
Riferimento all'oggetto appena creato o null
per Nullable<T> istanze senza alcun valore.
Eccezioni
type
è null
.
type
non è un RuntimeType
.
-o-
type
è un tipo generico aperto, ovvero la proprietà ContainsGenericParameters restituisce true
.
type
non può essere un TypeBuilder.
-o-
La creazione di tipi TypedReference, ArgIterator, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta oppure 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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 di per Reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.
Si applica a
CreateInstance(Type, Object[], Object[])
- Origine:
- Activator.cs
- Origine:
- Activator.cs
- Origine:
- Activator.cs
Crea un'istanza del tipo specificato usando il costruttore che meglio corrisponde 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
Tipo di oggetto da creare.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (il costruttore senza parametri).
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono partecipare all'attivazione. Si tratta in genere di una matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Questo parametro è correlato agli oggetti attivati dal client. L'attivazione client è una tecnologia legacy che viene mantenuta per la compatibilità con le versioni precedenti, ma non è consigliata per il nuovo sviluppo. Le applicazioni distribuite devono invece usare Windows Communication Foundation.
Restituisce
Riferimento all'oggetto appena creato o null
per Nullable<T> istanze senza alcun valore.
Eccezioni
type
è null
.
type
non è un RuntimeType
.
-o-
type
è un tipo generico aperto, ovvero la proprietà ContainsGenericParameters restituisce true
.
type
non può essere un TypeBuilder.
-o-
La creazione di tipi TypedReference, ArgIterator, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-o-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta oppure 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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 corrispondente. Vedere considerazioni sulla sicurezza di per Reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione 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, utilizzando 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 in cui viene cercato il tipo denominato typeName
. Se assemblyName
è null
, viene eseguita la ricerca dell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono partecipare all'attivazione. Si tratta in genere di una matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Questo parametro è correlato agli oggetti attivati dal client. L'attivazione client è una tecnologia legacy che viene mantenuta per la compatibilità con le versioni precedenti, ma non è consigliata per il nuovo sviluppo. Le applicazioni distribuite devono invece usare Windows Communication Foundation.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per le istanze di Nullable<T>.
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore pubblico corrispondente.
typeName
non è stato trovato in assemblyName
.
assemblyName
non è stato trovato.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta oppure 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, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-o-
activationAttributes
non è un UrlAttribute
array.
assemblyName
non è un assembly valido.
-o-
Common Language Runtime (CLR) versione 2.0 o successiva è attualmente caricata e assemblyName
è stata compilata per una versione di CLR successiva alla versione attualmente caricata. Si noti che .NET Framework versioni 2.0, 3.0 e 3.5 usano tutti CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due prove diverse.
-o-
Il nome dell'assembly o la codebase non è valido.
Il costruttore richiamato genera un'eccezione.
-o-
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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess e se il set di concessioni dei tipi non pubblici è limitato al set di concessioni del chiamante o a un subset di tali tipi. Vedere considerazioni sulla sicurezza di per 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, utilizzando l'assembly denominato e il costruttore che meglio corrisponde 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 in cui viene cercato il tipo denominato typeName
. Se assemblyName
è null
, viene eseguita la ricerca dell'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
è zero, viene eseguita una ricerca con distinzione tra maiuscole e minuscole per i costruttori pubblici.
- binder
- Binder
Oggetto che usa bindingAttr
e args
per cercare e identificare il costruttore di typeName
. Se binder
è null
, viene usato il gestore di associazione predefinito.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (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
, viene utilizzato il CultureInfo per il thread corrente.
- activationAttributes
- Object[]
Matrice di uno o più attributi che possono partecipare all'attivazione. Si tratta in genere di una matrice che contiene un singolo oggetto UrlAttribute che specifica l'URL necessario per attivare un oggetto remoto.
Questo parametro è correlato agli oggetti attivati dal client. L'attivazione client è una tecnologia legacy che viene mantenuta per la compatibilità con le versioni precedenti, ma non è consigliata per il nuovo sviluppo. Le applicazioni distribuite devono invece usare Windows Communication Foundation.
- securityInfo
- Evidence
Informazioni usate per prendere decisioni sui criteri di sicurezza e concedere autorizzazioni per il codice.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per Nullable<T> istanze senza alcun valore.
- Attributi
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore corrispondente.
typeName
non è stato trovato in assemblyName
.
assemblyName
non è stato trovato.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta 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, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
activationAttributes
non è una matrice vuota e il tipo creato non deriva da MarshalByRefObject.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
assemblyName
non è un assembly valido.
-o-
Common Language Runtime (CLR) versione 2.0 o successiva è attualmente caricata e assemblyName
è stata compilata per una versione di CLR successiva alla versione attualmente caricata. Si noti che .NET Framework versioni 2.0, 3.0 e 3.5 usano tutti CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due prove diverse.
-o-
Il nome dell'assembly o la codebase 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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 di per 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 usando il costruttore che meglio corrisponde 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
Tipo di oggetto da creare.
- args
- Object[]
Matrice di argomenti che corrispondono in numero, ordine e digitare i parametri del costruttore da richiamare. Se args
è una matrice vuota o null
, viene richiamato il costruttore che non accetta parametri (il costruttore senza parametri).
Restituisce
Riferimento all'oggetto appena creato o null
per Nullable<T> istanze senza alcun valore.
Eccezioni
type
è null
.
type
non è un RuntimeType
.
-o-
type
è un tipo generico aperto, ovvero la proprietà ContainsGenericParameters restituisce true
.
type
non può essere un TypeBuilder.
-o-
La creazione di tipi TypedReference, ArgIterator, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
L'assembly che contiene type
è un assembly dinamico creato con Save.
-o-
Il costruttore che meglio corrisponde a args
include argomenti varargs
.
Il costruttore chiamato genera un'eccezione.
Il chiamante non dispone dell'autorizzazione per chiamare questo 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.
Impossibile creare un'istanza di una classe astratta oppure 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 metodo CreateInstance(Type, Object[]) per creare un oggetto String. Chiama il costruttore String.String(Char[], Int32, Int32) per creare un'istanza 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 frastagliata i cui elementi sono argomenti da passare a un costruttore String. L'esempio passa quindi ogni matrice al metodo CreateInstance(Type, Object[]) 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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 corrispondente. Vedere considerazioni sulla sicurezza di per 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 utilizzando il costruttore senza parametri del 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
Tipo di oggetto da creare.
- nonPublic
- Boolean
true
se un costruttore pubblico o non pubblico senza parametri può corrispondere; false
se solo un costruttore pubblico senza parametri può corrispondere.
Restituisce
Riferimento all'oggetto appena creato o null
per le istanze di Nullable<T>.
Eccezioni
type
è null
.
type
non è un RuntimeType
.
-o-
type
è un tipo generico aperto, ovvero la proprietà ContainsGenericParameters restituisce true
.
type
non può essere un TypeBuilder.
-o-
La creazione di tipi TypedReference, ArgIterator, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
L'assembly che contiene type
è un assembly dinamico creato con Save.
Il costruttore chiamato genera un'eccezione.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di una classe astratta oppure 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 a tipi e membri non pubblici se al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 di per Reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione 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, utilizzando 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 in cui viene cercato il tipo denominato typeName
. Se assemblyName
è null
, viene eseguita la ricerca dell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per le istanze di Nullable<T>.
Eccezioni
typeName
è null
.
Non è stato trovato alcun costruttore pubblico corrispondente.
typeName
non è stato trovato in assemblyName
.
assemblyName
non è stato trovato.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Non è possibile creare un'istanza di una classe astratta 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, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
assemblyName
non è un assembly valido.
-o-
Common Language Runtime (CLR) versione 2.0 o successiva è attualmente caricata e assemblyName
è stata compilata per una versione di CLR successiva alla versione attualmente caricata. Si noti che .NET Framework versioni 2.0, 3.0 e 3.5 usano tutti CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due prove diverse.
-o-
Il nome dell'assembly o la codebase non è valido.
Esempio
Nell'esempio seguente viene definita una classe denominata Person
in un assembly denominato PersonInfo
. Si noti che la classe Person
ha 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 un riferimento a PersonInfo.dll da aggiungere al progetto. Poiché il metodo CreateInstance(String, String) chiama il costruttore senza parametri della classe Person
, nell'esempio viene assegnato un valore alla relativa proprietà Name
.
using System;
using System.Runtime.Remoting;
public class Example
{
public static void Main()
{
ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
Person p = (Person) handle.Unwrap();
p.Name = "Samuel";
Console.WriteLine(p);
}
}
// The example displays the following output:
// Samuel
open System
let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{p}"
// The example displays the following output:
// Samuel
Imports System.Runtime.Remoting
Module Example
Public Sub Main()
Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
Dim p As Person = CType(handle.Unwrap(), Person)
p.Name = "Samuel"
Console.WriteLine(p)
End Sub
End Module
' The example displays the following output:
' Samuel
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 effettuare 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à Name
dell'oggetto Person
e 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
Usare ObjectHandle.Unwrap per annullare il wrapping del valore restituito.
assemblyName
può essere uno dei seguenti:
Nome semplice di un assembly, senza il percorso o l'estensione di file. Ad esempio, è necessario specificare
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 su come 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 degli assembly, vedere Specifica del percorso di un assembly. Se viene trovato assemblyName
, viene caricato nel contesto predefinito.
Nota
A partire da .NET Framework 2.0, questo metodo può essere usato per creare tipi non pubblici se al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 corrispondente. Vedere considerazioni sulla sicurezza di per Reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione 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 contesto di attivazione che specifica l'oggetto da creare.
- activationCustomData
- String[]
Matrice di stringhe Unicode che contengono dati di attivazione personalizzati.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per le istanze di Nullable<T>.
Commenti
Utilizzare il metodo ObjectHandle.Unwrap per annullare il wrapping del valore restituito.
Il contesto di attivazione viene usato durante l'attivazione basata su manifesto per configurare i criteri di dominio e per fornire un modello di sicurezza basato su applicazioni. La classe ActivationContext contiene un oggetto ApplicationIdentity 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 utilizzando il costruttore senza parametri del 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
Tipo di oggetto da creare.
Restituisce
Riferimento all'oggetto appena creato o null
per le istanze di Nullable<T>.
Eccezioni
type
è null
.
type
non è un RuntimeType
.
-o-
type
è un tipo generico aperto, ovvero la proprietà ContainsGenericParameters restituisce true
.
type
non può essere un TypeBuilder.
-o-
La creazione di tipi TypedReference, ArgIterator, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
-o-
L'assembly che contiene type
è un assembly dinamico creato con Save.
Il costruttore chiamato genera un'eccezione.
Il chiamante non dispone dell'autorizzazione per chiamare questo 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.
Impossibile creare un'istanza di una classe astratta oppure 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 di codice seguente viene illustrato come chiamare il metodo CreateInstance(Type). 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 al chiamante è stato concesso ReflectionPermission con il flag ReflectionPermissionFlag.RestrictedMemberAccess 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 corrispondente. Vedere considerazioni sulla sicurezza di per Reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione 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 contesto di attivazione che specifica l'oggetto da creare.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per le istanze di Nullable<T>.
Commenti
Utilizzare il metodo ObjectHandle.Unwrap per annullare il wrapping del valore restituito.
Il contesto di attivazione viene usato durante l'attivazione basata su manifesto per configurare i criteri di dominio e per fornire un modello di sicurezza basato su applicazioni. La classe ActivationContext contiene un oggetto ApplicationIdentity 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 viene specificato nel dominio remoto specificato, utilizzando 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 in cui viene cercato il tipo denominato typeName
. Se assemblyName
è null
, viene eseguita la ricerca dell'assembly in esecuzione.
- typeName
- String
Nome completo del tipo di cui creare un'istanza.
Restituisce
Handle che deve essere decomistato per accedere all'oggetto appena creato o null
per le istanze di Nullable<T>.
- Attributi
Eccezioni
typeName
o domain
è null
.
Non è stato trovato alcun costruttore pubblico corrispondente.
typeName
non è stato trovato in assemblyName
.
assemblyName
non è stato trovato.
Il chiamante non dispone dell'autorizzazione per chiamare questo costruttore.
Impossibile creare un'istanza di un tipo astratto.
-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, Voide RuntimeArgumentHandle o matrici di tali tipi non è supportata.
assemblyName
non è un assembly valido.
-o-
Common Language Runtime (CLR) versione 2.0 o successiva è attualmente caricata e assemblyName
è stata compilata per una versione di CLR successiva alla versione attualmente caricata. Si noti che .NET Framework versioni 2.0, 3.0 e 3.5 usano tutti CLR versione 2.0.
Un assembly o un modulo è stato caricato due volte con due prove diverse.
-o-
Il nome dell'assembly o la codebase 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 di 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
per le istanze di Nullable<T>.
Eccezioni
Impossibile creare un'istanza di una classe astratta oppure il tipo specificato per T
non dispone di 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 metodo generico CreateInstance<T>() 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 metodo generico CreateInstance<T>().
public:
generic <typename T> where T:gcnew()
static T Bar()
{
return gcnew T();
}
public static T Factory<T>() where T : new()
{
return new T();
}
let factory<'T when 'T : (new: unit -> 'T)> =
new 'T()
Public Shared Function Factory(Of T As New)() As T
Return New T()
End Function
In generale, non esiste alcun uso per il metodo generico CreateInstance<T>() 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 ( operatorenew
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 metodo generico CreateInstance<T>() che accettano elenchi di argomenti, perché gli overload non generici di CreateInstance forniscono già una risoluzione del costruttore con associazione tardiva.