Activator.CreateInstance Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés.
Surcharges
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Obsolète.
Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) |
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(Type, Object[], Object[]) |
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(String, String, Object[]) |
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur sans paramètre. |
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Obsolète.
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(Type, Object[]) |
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés. |
CreateInstance(Type, Boolean) |
Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type. |
CreateInstance(String, String) |
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur sans paramètre. |
CreateInstance(ActivationContext, String[]) |
Crée une instance du type désigné par l’objet ActivationContext spécifié et activé avec les données d’activation personnalisées spécifiées. |
CreateInstance(Type) |
Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type. |
CreateInstance(ActivationContext) |
Crée une instance du type désigné par l’objet ActivationContext spécifié. |
CreateInstance(AppDomain, String, String) |
Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, à l’aide de l’assembly nommé et du constructeur sans paramètre. |
CreateInstance<T>() |
Crée une instance du type désigné par le paramètre de type générique spécifié, à l’aide du constructeur sans paramètre. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Attention
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.
Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- domain
- AppDomain
Domaine dans lequel le type nommé typeName
est créé.
- assemblyName
- String
Nom de l’assembly dans lequel le type nommé typeName
est recherché. Si assemblyName
est null
, l’assembly en cours d’exécution est recherché.
- typeName
- String
Nom complet du type à créer une instance.
- ignoreCase
- Boolean
true
spécifier que la recherche de typeName
n’est pas sensible à la casse ; false
pour spécifier que la recherche respecte la casse.
- bindingAttr
- BindingFlags
Combinaison d’indicateurs de bits zéro ou plus qui affectent la recherche du constructeur typeName
. Si bindingAttr
est égal à zéro, une recherche sensible à la casse pour les constructeurs publics est effectuée.
- binder
- Binder
Objet qui utilise bindingAttr
et args
pour rechercher et identifier le constructeur typeName
. Si binder
est null
, le classeur par défaut est utilisé.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
- culture
- CultureInfo
Informations propres à la culture qui régissent la contrainte de args
aux types formels déclarés pour le constructeur typeName
. Si culture
est null
, le CultureInfo du thread actuel est utilisé.
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. Il s’agit généralement d’un tableau qui contient un seul objet UrlAttribute. L'UrlAttribute spécifie l’URL requise pour activer un objet distant.
- securityAttributes
- Evidence
Informations utilisées pour prendre des décisions de stratégie de sécurité et accorder des autorisations de code.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé, ou null
pour Nullable<T> instances sans valeur.
- Attributs
Exceptions
domain
ou typeName
est null
.
Aucun constructeur correspondant n’a été trouvé.
typeName
n’a pas été trouvé dans assemblyName
.
assemblyName
n’a pas été trouvé.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le constructeur, qui a été appelé par réflexion, a levé une exception.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
activationAttributes
n’est pas un tableau vide, et le type créé ne dérive pas de MarshalByRefObject.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
assemblyName
n’est pas un assembly valide.
-ou-
Le Common Language Runtime (CLR) version 2.0 ou ultérieure est actuellement chargé et assemblyName
a été compilé pour une version du CLR ultérieure à la version actuellement chargée. Notez que les versions .NET Framework 2.0, 3.0 et 3.5 utilisent toutes clR version 2.0.
Un assembly ou un module a été chargé deux fois avec deux preuves différentes.
-ou-
Le nom de l’assembly ou la base de code n’est pas valide.
Remarques
Utilisez CreateInstance lorsqu’un hôte doit exécuter du code dans un domaine d’application disposant d’autorisations de sécurité restreintes.
Utilisez ObjectHandle.Unwrap pour désencapsuler la valeur de retour.
S’applique à
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- domain
- AppDomain
Domaine dans lequel le type nommé typeName
est créé.
- assemblyName
- String
Nom de l’assembly dans lequel le type nommé typeName
est recherché. Si assemblyName
est null
, l’assembly en cours d’exécution est recherché.
- typeName
- String
Nom complet du type à créer une instance.
- ignoreCase
- Boolean
true
spécifier que la recherche de typeName
n’est pas sensible à la casse ; false
pour spécifier que la recherche respecte la casse.
- bindingAttr
- BindingFlags
Combinaison d’indicateurs de bits zéro ou plus qui affectent la recherche du constructeur typeName
. Si bindingAttr
est égal à zéro, une recherche sensible à la casse pour les constructeurs publics est effectuée.
- binder
- Binder
Objet qui utilise bindingAttr
et args
pour rechercher et identifier le constructeur typeName
. Si binder
est null
, le classeur par défaut est utilisé.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
- culture
- CultureInfo
Informations propres à la culture qui régissent la contrainte de args
aux types formels déclarés pour le constructeur typeName
. Si culture
est null
, le CultureInfo du thread actuel est utilisé.
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. Il s’agit généralement d’un tableau qui contient un seul objet UrlAttribute qui spécifie l’URL requise pour activer un objet distant.
Ce paramètre est lié aux objets activés par le client. L’activation du client est une technologie héritée qui est conservée pour la compatibilité descendante, mais qui n’est pas recommandée pour le nouveau développement. Les applications distribuées doivent plutôt utiliser Windows Communication Foundation.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé, ou null
pour Nullable<T> instances sans valeur.
- Attributs
Exceptions
domain
ou typeName
est null
.
Aucun constructeur correspondant n’a été trouvé.
typeName
n’a pas été trouvé dans assemblyName
.
assemblyName
n’a pas été trouvé.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le constructeur, qui a été appelé par réflexion, a levé une exception.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
activationAttributes
n’est pas un tableau vide, et le type créé ne dérive pas de MarshalByRefObject.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
assemblyName
n’est pas un assembly valide.
-ou-
Le Common Language Runtime (CLR) version 2.0 ou ultérieure est actuellement chargé et assemblyName
a été compilé pour une version du CLR ultérieure à la version actuellement chargée. Notez que les versions .NET Framework 2.0, 3.0 et 3.5 utilisent toutes clR version 2.0.
Un assembly ou un module a été chargé deux fois avec deux preuves différentes.
-ou-
Le nom de l’assembly ou la base de code n’est pas valide.
Remarques
Utilisez CreateInstance lorsqu’un hôte doit exécuter du code dans un domaine d’application disposant d’autorisations de sécurité restreintes.
Utilisez ObjectHandle.Unwrap pour désencapsuler la valeur de retour.
S’applique à
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- assemblyName
- String
Nom de l’assembly dans lequel le type nommé typeName
est recherché. Si assemblyName
est null
, l’assembly en cours d’exécution est recherché.
- typeName
- String
Nom complet du type à créer une instance.
- ignoreCase
- Boolean
true
spécifier que la recherche de typeName
n’est pas sensible à la casse ; false
pour spécifier que la recherche respecte la casse.
- bindingAttr
- BindingFlags
Combinaison d’indicateurs de bits zéro ou plus qui affectent la recherche du constructeur typeName
. Si bindingAttr
est égal à zéro, une recherche sensible à la casse pour les constructeurs publics est effectuée.
- binder
- Binder
Objet qui utilise bindingAttr
et args
pour rechercher et identifier le constructeur typeName
. Si binder
est null
, le classeur par défaut est utilisé.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
- culture
- CultureInfo
Informations propres à la culture qui régissent la contrainte de args
aux types formels déclarés pour le constructeur typeName
. Si culture
est null
, le CultureInfo du thread actuel est utilisé.
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. Il s’agit généralement d’un tableau qui contient un seul objet UrlAttribute qui spécifie l’URL requise pour activer un objet distant.
Ce paramètre est lié aux objets activés par le client. L’activation du client est une technologie héritée qui est conservée pour la compatibilité descendante, mais qui n’est pas recommandée pour le nouveau développement. Les applications distribuées doivent plutôt utiliser Windows Communication Foundation.
Retours
Handle qui doit être décompressé pour accéder à l’instance nouvellement créée ou null
pour Nullable<T> instances sans valeur.
Exceptions
typeName
est null
.
Aucun constructeur correspondant n’a été trouvé.
typeName
n’a pas été trouvé dans assemblyName
.
assemblyName
n’a pas été trouvé.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le constructeur, qui a été appelé par réflexion, a levé une exception.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
activationAttributes
n’est pas un tableau vide, et le type créé ne dérive pas de MarshalByRefObject.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
assemblyName
n’est pas un assembly valide.
-ou-
Le Common Language Runtime (CLR) version 2.0 ou ultérieure est actuellement chargé et assemblyName
a été compilé pour une version du CLR ultérieure à la version actuellement chargée. Notez que les versions .NET Framework 2.0, 3.0 et 3.5 utilisent toutes clR version 2.0.
Un assembly ou un module a été chargé deux fois avec deux preuves différentes.
-ou-
Le nom de l’assembly ou la base de code n’est pas valide.
Remarques
Utilisez ObjectHandle.Unwrap pour désencapsuler la valeur de retour.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour créer des types et des membres non publics si l’appelant a reçu ReflectionPermission avec l’indicateur ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types et membres non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- type
- Type
Type d’objet à créer.
- bindingAttr
- BindingFlags
Combinaison d’indicateurs de bits zéro ou plus qui affectent la recherche du constructeur type
. Si bindingAttr
est égal à zéro, une recherche sensible à la casse pour les constructeurs publics est effectuée.
- binder
- Binder
Objet qui utilise bindingAttr
et args
pour rechercher et identifier le constructeur type
. Si binder
est null
, le classeur par défaut est utilisé.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
- culture
- CultureInfo
Informations propres à la culture qui régissent la contrainte de args
aux types formels déclarés pour le constructeur type
. Si culture
est null
, le CultureInfo du thread actuel est utilisé.
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. Il s’agit généralement d’un tableau qui contient un seul objet UrlAttribute qui spécifie l’URL requise pour activer un objet distant.
Ce paramètre est lié aux objets activés par le client. L’activation du client est une technologie héritée qui est conservée pour la compatibilité descendante, mais qui n’est pas recommandée pour le nouveau développement. Les applications distribuées doivent plutôt utiliser Windows Communication Foundation.
Retours
Référence à l’objet nouvellement créé ou null
pour Nullable<T> instances sans valeur.
Exceptions
type
est null
.
type
n’est pas un RuntimeType
.
-ou-
type
est un type générique ouvert (autrement dit, la propriété ContainsGenericParameters retourne true
).
type
ne peut pas être un TypeBuilder.
-ou-
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
activationAttributes
n’est pas un tableau vide, et le type créé ne dérive pas de MarshalByRefObject.
-ou-
L’assembly qui contient type
est un assembly dynamique créé avec Save.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
Le constructeur appelé lève une exception.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
Aucun constructeur correspondant n’a été trouvé.
type
est un objet COM, mais l’identificateur de classe utilisé pour obtenir le type n’est pas valide ou la classe identifiée n’est pas inscrite.
type
n’est pas un type valide.
Remarques
Le constructeur à appeler doit fournir la correspondance la plus spécifique avec la liste d’arguments spécifiée sous les contraintes des attributs de liaison et de classeur spécifiés.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour accéder aux types et membres non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi des types et membres non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- type
- Type
Type d’objet à créer.
- bindingAttr
- BindingFlags
Combinaison d’indicateurs de bits zéro ou plus qui affectent la recherche du constructeur type
. Si bindingAttr
est égal à zéro, une recherche sensible à la casse pour les constructeurs publics est effectuée.
- binder
- Binder
Objet qui utilise bindingAttr
et args
pour rechercher et identifier le constructeur type
. Si binder
est null
, le classeur par défaut est utilisé.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
- culture
- CultureInfo
Informations propres à la culture qui régissent la contrainte de args
aux types formels déclarés pour le constructeur type
. Si culture
est null
, le CultureInfo du thread actuel est utilisé.
Retours
Référence à l’objet nouvellement créé ou null
pour Nullable<T> instances sans valeur.
Exceptions
type
est null
.
type
n’est pas un RuntimeType
.
-ou-
type
est un type générique ouvert (autrement dit, la propriété ContainsGenericParameters retourne true
).
type
ne peut pas être un TypeBuilder.
-ou-
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
L’assembly qui contient type
est un assembly dynamique créé avec Save.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
Le constructeur appelé lève une exception.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
Aucun constructeur correspondant n’a été trouvé.
type
est un objet COM, mais l’identificateur de classe utilisé pour obtenir le type n’est pas valide ou la classe identifiée n’est pas inscrite.
type
n’est pas un type valide.
Remarques
Le constructeur à appeler doit fournir la correspondance la plus spécifique avec la liste d’arguments spécifiée sous les contraintes des attributs de liaison et de classeur spécifiés.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour accéder aux types et membres non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types et membres non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(Type, Object[], Object[])
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- type
- Type
Type d’objet à créer.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. Il s’agit généralement d’un tableau qui contient un seul objet UrlAttribute qui spécifie l’URL requise pour activer un objet distant.
Ce paramètre est lié aux objets activés par le client. L’activation du client est une technologie héritée qui est conservée pour la compatibilité descendante, mais qui n’est pas recommandée pour le nouveau développement. Les applications distribuées doivent plutôt utiliser Windows Communication Foundation.
Retours
Référence à l’objet nouvellement créé ou null
pour Nullable<T> instances sans valeur.
Exceptions
type
est null
.
type
n’est pas un RuntimeType
.
-ou-
type
est un type générique ouvert (autrement dit, la propriété ContainsGenericParameters retourne true
).
type
ne peut pas être un TypeBuilder.
-ou-
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
activationAttributes
n’est pas un tableau vide, et le type créé ne dérive pas de MarshalByRefObject.
-ou-
L’assembly qui contient type
est un assembly dynamique créé avec Save.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
Le constructeur appelé lève une exception.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
Aucun constructeur public correspondant n’a été trouvé.
type
est un objet COM, mais l’identificateur de classe utilisé pour obtenir le type n’est pas valide ou la classe identifiée n’est pas inscrite.
type
n’est pas un type valide.
Remarques
Le constructeur à appeler doit être accessible et doit fournir la correspondance la plus spécifique avec la liste d’arguments spécifiée.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour accéder aux types non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(String, String, Object[])
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur sans paramètre.
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
Paramètres
- assemblyName
- String
Nom de l’assembly dans lequel le type nommé typeName
est recherché. Si assemblyName
est null
, l’assembly en cours d’exécution est recherché.
- typeName
- String
Nom complet du type à créer une instance.
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. Il s’agit généralement d’un tableau qui contient un seul objet UrlAttribute qui spécifie l’URL requise pour activer un objet distant.
Ce paramètre est lié aux objets activés par le client. L’activation du client est une technologie héritée qui est conservée pour la compatibilité descendante, mais qui n’est pas recommandée pour le nouveau développement. Les applications distribuées doivent plutôt utiliser Windows Communication Foundation.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé ou null
pour Nullable<T> instances.
Exceptions
typeName
est null
.
Aucun constructeur public correspondant n’a été trouvé.
typeName
n’a pas été trouvé dans assemblyName
.
assemblyName
n’a pas été trouvé.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
activationAttributes
n’est pas un tableau vide, et le type créé ne dérive pas de MarshalByRefObject.
-ou-
activationAttributes
n’est pas un UrlAttribute
tableau.
assemblyName
n’est pas un assembly valide.
-ou-
Le Common Language Runtime (CLR) version 2.0 ou ultérieure est actuellement chargé et assemblyName
a été compilé pour une version du CLR ultérieure à la version actuellement chargée. Notez que les versions .NET Framework 2.0, 3.0 et 3.5 utilisent toutes clR version 2.0.
Un assembly ou un module a été chargé deux fois avec deux preuves différentes.
-ou-
Le nom de l’assembly ou la base de code n’est pas valide.
Le constructeur appelé lève une exception.
-ou-
Une erreur s’est produite lors de la tentative d’activation à distance dans une cible spécifiée dans activationAttributes
.
Remarques
Utilisez ObjectHandle.Unwrap pour désencapsuler la valeur de retour.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour créer des types non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi des types non publics est limité à l’ensemble d’octrois de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Attention
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.
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- assemblyName
- String
Nom de l’assembly dans lequel le type nommé typeName
est recherché. Si assemblyName
est null
, l’assembly en cours d’exécution est recherché.
- typeName
- String
Nom complet du type à créer une instance.
- ignoreCase
- Boolean
true
spécifier que la recherche de typeName
n’est pas sensible à la casse ; false
pour spécifier que la recherche respecte la casse.
- bindingAttr
- BindingFlags
Combinaison d’indicateurs de bits zéro ou plus qui affectent la recherche du constructeur typeName
. Si bindingAttr
est égal à zéro, une recherche sensible à la casse pour les constructeurs publics est effectuée.
- binder
- Binder
Objet qui utilise bindingAttr
et args
pour rechercher et identifier le constructeur typeName
. Si binder
est null
, le classeur par défaut est utilisé.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
- culture
- CultureInfo
Informations propres à la culture qui régissent la contrainte de args
aux types formels déclarés pour le constructeur typeName
. Si culture
est null
, le CultureInfo du thread actuel est utilisé.
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. Il s’agit généralement d’un tableau qui contient un seul objet UrlAttribute qui spécifie l’URL requise pour activer un objet distant.
Ce paramètre est lié aux objets activés par le client. L’activation du client est une technologie héritée qui est conservée pour la compatibilité descendante, mais qui n’est pas recommandée pour le nouveau développement. Les applications distribuées doivent plutôt utiliser Windows Communication Foundation.
- securityInfo
- Evidence
Informations utilisées pour prendre des décisions de stratégie de sécurité et accorder des autorisations de code.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé, ou null
pour Nullable<T> instances sans valeur.
- Attributs
Exceptions
typeName
est null
.
Aucun constructeur correspondant n’a été trouvé.
typeName
n’a pas été trouvé dans assemblyName
.
assemblyName
n’a pas été trouvé.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le constructeur, qui a été appelé par réflexion, a levé une exception.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
activationAttributes
n’est pas un tableau vide, et le type créé ne dérive pas de MarshalByRefObject.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
assemblyName
n’est pas un assembly valide.
-ou-
Le Common Language Runtime (CLR) version 2.0 ou ultérieure est actuellement chargé et assemblyName
a été compilé pour une version du CLR ultérieure à la version actuellement chargée. Notez que les versions .NET Framework 2.0, 3.0 et 3.5 utilisent toutes clR version 2.0.
Un assembly ou un module a été chargé deux fois avec deux preuves différentes.
-ou-
Le nom de l’assembly ou la base de code n’est pas valide.
Remarques
Utilisez ObjectHandle.Unwrap pour désencapsuler la valeur de retour.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour créer des types et des membres non publics si l’appelant a reçu ReflectionPermission avec l’indicateur ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types et membres non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(Type, Object[])
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
Crée une instance du type spécifié à l’aide du constructeur qui correspond le mieux aux paramètres spécifiés.
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
Paramètres
- type
- Type
Type d’objet à créer.
- args
- Object[]
Tableau d’arguments correspondant au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si args
est un tableau vide ou null
, le constructeur qui ne prend aucun paramètre (le constructeur sans paramètre) est appelé.
Retours
Référence à l’objet nouvellement créé ou null
pour Nullable<T> instances sans valeur.
Exceptions
type
est null
.
type
n’est pas un RuntimeType
.
-ou-
type
est un type générique ouvert (autrement dit, la propriété ContainsGenericParameters retourne true
).
type
ne peut pas être un TypeBuilder.
-ou-
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
L’assembly qui contient type
est un assembly dynamique créé avec Save.
-ou-
Le constructeur qui correspond le mieux à args
a des arguments varargs
.
Le constructeur appelé lève une exception.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Remarque : Dans .NET pour les applications du Windows Store ou la bibliothèque de classes portable , interceptez l’exception de classe de base, MemberAccessException, à la place.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
Aucun constructeur public correspondant n’a été trouvé.
Remarque : Dans .NET pour les applications du Windows Store ou la bibliothèque de classes portable , interceptez l’exception de classe de base, MissingMemberException, à la place.
type
est un objet COM, mais l’identificateur de classe utilisé pour obtenir le type n’est pas valide ou la classe identifiée n’est pas inscrite.
type
n’est pas un type valide.
Exemples
L’exemple suivant appelle la méthode CreateInstance(Type, Object[]) pour créer un objet String. Il appelle le constructeur String.String(Char[], Int32, Int32) pour instancier une chaîne qui contient dix éléments d’un tableau de caractères commençant à la quatorzième position.
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
L’exemple suivant crée un tableau en jaquet dont les éléments sont des arguments à passer à un constructeur String. L’exemple transmet ensuite chaque tableau à la méthode CreateInstance(Type, Object[]) pour appeler le constructeur de chaîne approprié.
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
Remarques
Le constructeur à appeler doit être accessible et doit fournir la correspondance la plus spécifique avec la liste d’arguments spécifiée.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour accéder aux types non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(Type, Boolean)
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type.
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
Paramètres
- type
- Type
Type d’objet à créer.
- nonPublic
- Boolean
true
si un constructeur sans paramètre public ou non public peut correspondre ; false
si seul un constructeur sans paramètre public peut correspondre.
Retours
Référence à l’objet nouvellement créé ou null
pour Nullable<T> instances.
Exceptions
type
est null
.
type
n’est pas un RuntimeType
.
-ou-
type
est un type générique ouvert (autrement dit, la propriété ContainsGenericParameters retourne true
).
type
ne peut pas être un TypeBuilder.
-ou-
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
L’assembly qui contient type
est un assembly dynamique créé avec Save.
Le constructeur appelé lève une exception.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
Aucun constructeur public correspondant n’a été trouvé.
type
est un objet COM, mais l’identificateur de classe utilisé pour obtenir le type n’est pas valide ou la classe identifiée n’est pas inscrite.
type
n’est pas un type valide.
Remarques
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour accéder aux types et membres non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types et membres non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(String, String)
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
Crée une instance du type dont le nom est spécifié, à l’aide de l’assembly nommé et du constructeur sans paramètre.
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
Paramètres
- assemblyName
- String
Nom de l’assembly dans lequel le type nommé typeName
est recherché. Si assemblyName
est null
, l’assembly en cours d’exécution est recherché.
- typeName
- String
Nom complet du type à créer une instance.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé ou null
pour Nullable<T> instances.
Exceptions
typeName
est null
.
Aucun constructeur public correspondant n’a été trouvé.
typeName
n’a pas été trouvé dans assemblyName
.
assemblyName
n’a pas été trouvé.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Vous ne pouvez pas créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le constructeur, qui a été appelé par réflexion, a levé une exception.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
assemblyName
n’est pas un assembly valide.
-ou-
Le Common Language Runtime (CLR) version 2.0 ou ultérieure est actuellement chargé et assemblyName
a été compilé pour une version du CLR ultérieure à la version actuellement chargée. Notez que les versions .NET Framework 2.0, 3.0 et 3.5 utilisent toutes clR version 2.0.
Un assembly ou un module a été chargé deux fois avec deux preuves différentes.
-ou-
Le nom de l’assembly ou la base de code n’est pas valide.
Exemples
L’exemple suivant définit une classe nommée Person
dans un assembly nommé PersonInfo
. Notez que la classe Person
a deux constructeurs, dont l’un est sans paramètre.
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
L’exemple suivant appelle la méthode CreateInstance(String, String) pour instancier la classe Person
. Il nécessite une référence pour PersonInfo.dll être ajoutée au projet. Étant donné que la méthode CreateInstance(String, String) appelle le constructeur sans paramètre de classe Person
, l’exemple affecte une valeur à sa propriété 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
Toutefois, CreateInstance est fréquemment appelée pour instancier un type qui traverse les limites de l’ordinateur ou qui n’est pas connu au moment du design. Dans ce cas, vous ne pouvez pas inclure de référence à l’assembly dans le projet et ne pouvez pas effectuer d’appels à liaison anticipée aux membres du type. Pour contourner cette limitation, l’exemple suivant utilise la méthode CreateInstance ainsi que la réflexion pour affecter une valeur à la propriété Name
de l’objet Person
et afficher sa valeur.
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
Remarques
Utilisez ObjectHandle.Unwrap pour désencapsuler la valeur de retour.
assemblyName
peut être l’une des options suivantes :
Nom simple d’un assembly, sans son chemin d’accès ou son extension de fichier. Par exemple, vous spécifiez
TypeExtensions
pour un assembly dont le chemin et le nom sont .\bin\TypeExtensions.dll.Nom complet d’un assembly signé, qui se compose de son nom simple, version, culture et jeton de clé publique ; par exemple, « TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51 ».
Pour plus d’informations sur la façon dont le Common Language Runtime identifie et charge des assemblys, consultez Comment le runtime localise les assemblys. Pour plus d’informations sur l’utilisation du fichier de configuration de l’application pour définir des emplacements d’assembly, consultez Spécification de l’emplacement d’un assembly. Si assemblyName
est trouvé, il est chargé dans le contexte par défaut.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour créer des types non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(ActivationContext, String[])
Crée une instance du type désigné par l’objet ActivationContext spécifié et activé avec les données d’activation personnalisées spécifiées.
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
Paramètres
- activationContext
- ActivationContext
Objet de contexte d’activation qui spécifie l’objet à créer.
- activationCustomData
- String[]
Tableau de chaînes Unicode qui contiennent des données d’activation personnalisées.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé ou null
pour Nullable<T> instances.
Remarques
Utilisez la méthode ObjectHandle.Unwrap pour annuler la valeur de retour.
Le contexte d’activation est utilisé pendant l’activation basée sur le manifeste pour configurer la stratégie de domaine et fournir un modèle de sécurité basé sur l’application. La classe ActivationContext contient un objet ApplicationIdentity qui fournit l’accès au manifeste de l’application. Pour plus d’informations, consultez la classe ApplicationSecurityManager.
Voir aussi
S’applique à
CreateInstance(Type)
- Source:
- Activator.cs
- Source:
- Activator.cs
- Source:
- Activator.cs
Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type.
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
Paramètres
- type
- Type
Type d’objet à créer.
Retours
Référence à l’objet nouvellement créé ou null
pour Nullable<T> instances.
Exceptions
type
est null
.
type
n’est pas un RuntimeType
.
-ou-
type
est un type générique ouvert (autrement dit, la propriété ContainsGenericParameters retourne true
).
type
ne peut pas être un TypeBuilder.
-ou-
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
-ou-
L’assembly qui contient type
est un assembly dynamique créé avec Save.
Le constructeur appelé lève une exception.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Remarque : Dans .NET pour les applications du Windows Store ou la bibliothèque de classes portable , interceptez l’exception de classe de base, MemberAccessException, à la place.
Impossible de créer une instance d’une classe abstraite, ou ce membre a été appelé avec un mécanisme de liaison tardive.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
Aucun constructeur public correspondant n’a été trouvé.
Remarque : Dans .NET pour les applications du Windows Store ou la bibliothèque de classes portable , interceptez l’exception de classe de base, MissingMemberException, à la place.
type
est un objet COM, mais l’identificateur de classe utilisé pour obtenir le type n’est pas valide ou la classe identifiée n’est pas inscrite.
type
n’est pas un type valide.
Exemples
L’exemple de code suivant montre comment appeler la méthode CreateInstance(Type). Les instances de plusieurs types différents sont créées et leurs valeurs par défaut sont affichées.
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
Remarques
Le constructeur à appeler doit être accessible.
Note
À compter de .NET Framework 2.0, cette méthode peut être utilisée pour accéder aux types non publics si l’appelant a reçu ReflectionPermission avec l’indicateur de ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octroi de l’assembly qui contient les types non publics est limité au jeu d’octroi de l’appelant ou à un sous-ensemble de celui-ci. (Consultez considérations relatives à la sécurité pour la réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.
S’applique à
CreateInstance(ActivationContext)
Crée une instance du type désigné par l’objet ActivationContext spécifié.
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
Paramètres
- activationContext
- ActivationContext
Objet de contexte d’activation qui spécifie l’objet à créer.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé ou null
pour Nullable<T> instances.
Remarques
Utilisez la méthode ObjectHandle.Unwrap pour annuler la valeur de retour.
Le contexte d’activation est utilisé pendant l’activation basée sur le manifeste pour configurer la stratégie de domaine et fournir un modèle de sécurité basé sur l’application. La classe ActivationContext contient un objet ApplicationIdentity qui fournit l’accès au manifeste de l’application. Pour plus d’informations, consultez la classe ApplicationSecurityManager.
Voir aussi
S’applique à
CreateInstance(AppDomain, String, String)
Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, à l’aide de l’assembly nommé et du constructeur sans paramètre.
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
Paramètres
- domain
- AppDomain
Domaine distant où le type nommé typeName
est créé.
- assemblyName
- String
Nom de l’assembly dans lequel le type nommé typeName
est recherché. Si assemblyName
est null
, l’assembly en cours d’exécution est recherché.
- typeName
- String
Nom complet du type à créer une instance.
Retours
Handle qui doit être décompressé pour accéder à l’objet nouvellement créé ou null
pour Nullable<T> instances.
- Attributs
Exceptions
typeName
ou domain
est null
.
Aucun constructeur public correspondant n’a été trouvé.
typeName
n’a pas été trouvé dans assemblyName
.
assemblyName
n’a pas été trouvé.
L’appelant n’a pas l’autorisation d’appeler ce constructeur.
Impossible de créer une instance d’un type abstrait.
-ou-
Ce membre a été appelé avec un mécanisme de liaison tardive.
Le constructeur, qui a été appelé par réflexion, a levé une exception.
Le type COM n’a pas été obtenu via GetTypeFromProgID ou GetTypeFromCLSID.
La création de TypedReference, ArgIterator, Voidet RuntimeArgumentHandle types ou tableaux de ces types n’est pas prise en charge.
assemblyName
n’est pas un assembly valide.
-ou-
Le Common Language Runtime (CLR) version 2.0 ou ultérieure est actuellement chargé et assemblyName
a été compilé pour une version du CLR ultérieure à la version actuellement chargée. Notez que les versions .NET Framework 2.0, 3.0 et 3.5 utilisent toutes clR version 2.0.
Un assembly ou un module a été chargé deux fois avec deux preuves différentes.
-ou-
Le nom de l’assembly ou la base de code n’est pas valide.
Remarques
Utilisez CreateInstance lorsqu’un hôte doit exécuter du code dans un domaine d’application disposant d’autorisations de sécurité restreintes.
Utilisez ObjectHandle.Unwrap pour désencapsuler la valeur de retour.
S’applique à
CreateInstance<T>()
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
- Source:
- Activator.RuntimeType.cs
Crée une instance du type désigné par le paramètre de type générique spécifié, à l’aide du constructeur sans paramètre.
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
Paramètres de type
- T
Type à créer.
Retours
Référence à l’objet nouvellement créé ou null
pour Nullable<T> instances.
Exceptions
Impossible de créer une instance d’une classe abstraite, ou le type spécifié pour T
n’a pas de constructeur sans paramètre.
Remarque : Dans .NET pour les applications du Windows Store ou la bibliothèque de classes portable , interceptez l’exception de classe de base, MissingMemberException, à la place.
Remarques
La méthode générique CreateInstance<T>() est utilisée par les compilateurs pour implémenter l’instanciation des types spécifiés par les paramètres de type. Par exemple, dans la méthode générique suivante, l’implémentation de new T()
(gcnew T()
en C++) utilise la méthode générique 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
En règle générale, il n’existe aucune utilisation pour la méthode générique CreateInstance<T>() dans le code d’application, car le type doit être connu au moment de la compilation. Si le type est connu au moment de la compilation, la syntaxe d’instanciation normale peut être utilisée (opérateurnew
en C#, New
en Visual Basic, gcnew
en C++). Si le type n’est pas connu au moment de la compilation, vous pouvez appeler une surcharge non générique de CreateInstance.
Il n’existe aucune surcharge de la méthode générique CreateInstance<T>() qui accepte des listes d’arguments, car les surcharges non génériques de CreateInstance fournissent déjà une résolution de constructeur à liaison tardive.