Assembly.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.
Recherche un type à partir de cet assembly et crée une instance de celui-ci à l’aide de l’activateur système.
Surcharges
| Nom | Description |
|---|---|
| CreateInstance(String) |
Localise le type spécifié à partir de cet assembly et crée une instance de celui-ci à l’aide de l’activateur système, à l’aide de la recherche sensible à la casse. |
| CreateInstance(String, Boolean) |
Recherche le type spécifié à partir de cet assembly et crée une instance de celui-ci à l’aide de l’activateur système, avec une recherche facultative sensible à la casse. |
| CreateInstance(String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Recherche le type spécifié à partir de cet assembly et crée une instance de celui-ci à l’aide de l’activateur système, avec recherche facultative sensible à la casse et ayant la culture, les arguments et les attributs d’activation et de liaison spécifiés. |
CreateInstance(String)
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
Localise le type spécifié à partir de cet assembly et crée une instance de celui-ci à l’aide de l’activateur système, à l’aide de la recherche sensible à la casse.
public:
System::Object ^ CreateInstance(System::String ^ typeName);
public:
virtual System::Object ^ CreateInstance(System::String ^ typeName);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead.")]
public object? CreateInstance(string typeName);
public object CreateInstance(string typeName);
public object? CreateInstance(string typeName);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead.")>]
member this.CreateInstance : string -> obj
member this.CreateInstance : string -> obj
abstract member CreateInstance : string -> obj
override this.CreateInstance : string -> obj
Public Function CreateInstance (typeName As String) As Object
Paramètres
Retours
Instance du type spécifié créé avec le constructeur sans paramètre ; ou null s’il typeName est introuvable. Le type est résolu à l’aide du classeur par défaut, sans spécifier les attributs de culture ou d’activation, et avec BindingFlags la valeur Public définie sur ou Instance.
Implémente
- Attributs
Exceptions
typeName est une chaîne vide (« ») ou une chaîne commençant par un caractère Null.
- ou -
L’assembly actuel a été chargé dans le contexte de réflexion uniquement.
typeName a la valeur null.
Aucun constructeur correspondant n’a été trouvé.
typeName nécessite un assembly dépendant qui n’a pas pu être trouvé.
typeName nécessite un assembly dépendant qui a été trouvé, mais qui n’a pas pu être chargé.
- ou -
L’assembly actuel a été chargé dans le contexte de réflexion uniquement et typeName nécessite un assembly dépendant qui n’a pas été préchargé.
typeName nécessite un assembly dépendant, mais le fichier n’est pas un assembly valide pour le runtime actuellement chargé.
Exemples
L’exemple suivant définit une Person classe et appelle la CreateInstance(String) méthode pour l’instancier.
using System;
using System.Reflection;
using Contoso.Libraries;
namespace Contoso.Libraries
{
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;
}
}
}
public class Example
{
public static void Main()
{
Assembly assem = typeof(Person).Assembly;
Person p = (Person) assem.CreateInstance("Contoso.Libraries.Person");
if (!(p == null)) {
p.Name = "John";
Console.WriteLine("Instantiated a {0} object whose value is '{1}'",
p.GetType().Name, p);
}
else {
Console.WriteLine("Unable to instantiate a Person object.");
}
}
}
// The example displays the following output:
// Instantiated a Person object whose value is 'John'
Imports System.Reflection
Imports Contoso.Libraries
Namespace Contoso.Libraries
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
End Namespace
Module Example
Public Sub Main()
Dim assem As Assembly = GetType(Person).Assembly
Dim p As Person = CType(assem.CreateInstance("Contoso.Libraries.Person"),
Person)
If p IsNot Nothing Then
p.Name = "John"
Console.WriteLine("Instantiated a {0} object whose value is '{1}'",
p.GetType().Name, p)
Else
Console.WriteLine("Unable to instantiate a Person object.")
End If
End Sub
End Module
' The example displays the following output:
' Instantiated a Person object whose value is 'John'
Remarques
Si le runtime n’est pas en mesure de trouver typeName dans l’instance Assembly , il retourne null au lieu de lever une exception. Cela peut se produire pour les raisons suivantes :
Vous n’avez pas spécifié le nom complet du type.
Vous avez spécifié le nom de type complet, mais son cas ne correspond pas à la casse de la propriété du Type.FullName type. Pour une comparaison sans respect de la casse du
typeNamenom complet du type, appelez la CreateInstance(String, Boolean) surcharge et spécifieztruel’argumentignoreCase.Le type n’existe pas dans l’instance actuelle Assembly .
S’applique à
CreateInstance(String, Boolean)
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
Recherche le type spécifié à partir de cet assembly et crée une instance de celui-ci à l’aide de l’activateur système, avec une recherche facultative sensible à la casse.
public:
System::Object ^ CreateInstance(System::String ^ typeName, bool ignoreCase);
public:
virtual System::Object ^ CreateInstance(System::String ^ typeName, bool ignoreCase);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead.")]
public object? CreateInstance(string typeName, bool ignoreCase);
public object CreateInstance(string typeName, bool ignoreCase);
public object? CreateInstance(string typeName, bool ignoreCase);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead.")>]
member this.CreateInstance : string * bool -> obj
member this.CreateInstance : string * bool -> obj
abstract member CreateInstance : string * bool -> obj
override this.CreateInstance : string * bool -> obj
Public Function CreateInstance (typeName As String, ignoreCase As Boolean) As Object
Paramètres
- ignoreCase
- Boolean
true pour ignorer le cas du nom du type ; sinon, false.
Retours
Instance du type spécifié créé avec le constructeur sans paramètre ; ou null s’il typeName est introuvable. Le type est résolu à l’aide du classeur par défaut, sans spécifier les attributs de culture ou d’activation, et avec BindingFlags la valeur Public définie sur ou Instance.
Implémente
- Attributs
Exceptions
typeName est une chaîne vide (« ») ou une chaîne commençant par un caractère Null.
- ou -
L’assembly actuel a été chargé dans le contexte de réflexion uniquement.
Aucun constructeur correspondant n’a été trouvé.
typeName a la valeur null.
typeName nécessite un assembly dépendant qui n’a pas pu être trouvé.
typeName nécessite un assembly dépendant qui a été trouvé, mais qui n’a pas pu être chargé.
- ou -
L’assembly actuel a été chargé dans le contexte de réflexion uniquement et typeName nécessite un assembly dépendant qui n’a pas été préchargé.
typeName nécessite un assembly dépendant, mais le fichier n’est pas un assembly valide pour le runtime actuellement chargé.
Exemples
L’exemple suivant définit une Person classe. Il appelle ensuite la CreateInstance(String) méthode pour l’instancier, mais parce que la casse de l’argument typeName ne correspond pas à celle de la propriété du FullName type, la méthode retourne null. Lorsque l’exemple transmet la même chaîne à la CreateInstance(String, Boolean) surcharge et spécifie que la comparaison doit être insensible à la casse, la Person classe est trouvée et un Person objet est instancié avec succès.
using System;
using System.Reflection;
using Contoso.Libraries;
namespace Contoso.Libraries
{
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;
}
}
}
public class Example
{
public static void Main()
{
String fullName = "contoso.libraries.person";
Assembly assem = typeof(Person).Assembly;
Person p = (Person) assem.CreateInstance(fullName);
if (!(p == null)) {
p.Name = "John";
Console.WriteLine("Instantiated a {0} object whose value is '{1}'",
p.GetType().Name, p);
}
else {
Console.WriteLine("Unable to instantiate a Person object " +
"with Assembly.CreateInstance(String)");
// Try case-insensitive type name comparison.
p = (Person) assem.CreateInstance(fullName, true);
if (!(p == null)) {
p.Name = "John";
Console.WriteLine("Instantiated a {0} object whose value is '{1}'",
p.GetType().Name, p);
}
else {
Console.WriteLine("Unable to instantiate a {0} object.",
fullName);
}
}
}
}
// The example displays the following output:
// Unable to instantiate a Person object with Assembly.CreateInstance(String)
// Instantiated a Person object whose value is 'John'
Imports System.Reflection
Imports Contoso.Libraries
Namespace Contoso.Libraries
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
End Namespace
Module Example
Public Sub Main()
Dim fullName As String = "contoso.libraries.person"
Dim assem As Assembly = GetType(Person).Assembly
Dim p As Person = CType(assem.CreateInstance(fullName),
Person)
If p IsNot Nothing Then
p.Name = "John"
Console.WriteLine("Instantiated a {0} object whose value is '{1}'",
p.GetType().Name, p)
Else
Console.WriteLine("Unable to instantiate a Person object" +
"with Assembly.CreateInstance(String)")
' Try case-insensitive type name comparison.
p = CType(assem.CreateInstance(fullName, true), Person)
If p IsNot Nothing Then
p.Name = "John"
Console.WriteLine("Instantiated a {0} object whose value is '{1}'",
p.GetType().Name, p)
Else
Console.WriteLine("Unable to instantiate a {0} object.",
fullName)
End If
End If
End Sub
End Module
' The example displays the following output:
' Unable to instantiate a Person object with Assembly.CreateInstance(String)
' Instantiated a Person object whose value is 'John'
Remarques
Si le runtime n’est pas en mesure de trouver typeName dans l’instance Assembly , il retourne null au lieu de lever une exception. Cela peut se produire pour les raisons suivantes :
Vous n’avez pas spécifié le nom complet du type.
Le type n’existe pas dans l’instance actuelle Assembly .
S’applique à
CreateInstance(String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
- Source:
- Assembly.cs
Recherche le type spécifié à partir de cet assembly et crée une instance de celui-ci à l’aide de l’activateur système, avec recherche facultative sensible à la casse et ayant la culture, les arguments et les attributs d’activation et de liaison spécifiés.
public:
virtual System::Object ^ CreateInstance(System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead.")]
public virtual object? CreateInstance(string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object[]? args, System.Globalization.CultureInfo? culture, object[]? activationAttributes);
public virtual object CreateInstance(string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
public virtual object? CreateInstance(string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object[]? args, System.Globalization.CultureInfo? culture, object[]? activationAttributes);
public object CreateInstance(string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Assembly.CreateInstance is not supported with trimming. Use Type.GetType instead.")>]
abstract member CreateInstance : string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
override this.CreateInstance : string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
abstract member CreateInstance : string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
override this.CreateInstance : string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
Public Overridable Function CreateInstance (typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As Object
Public Function CreateInstance (typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As Object
Paramètres
- ignoreCase
- Boolean
true pour ignorer le cas du nom du type ; sinon, false.
- bindingAttr
- BindingFlags
Masque de bits qui affecte la façon dont la recherche est effectuée. La valeur est une combinaison d’indicateurs de bits de BindingFlags.
- binder
- Binder
Objet qui permet la liaison, la contrainte des types d’arguments, l’appel de membres et la récupération d’objets via la MemberInfo réflexion. Si binder c’est nullle cas, le classeur par défaut est utilisé.
- args
- Object[]
Tableau qui contient les arguments à passer au constructeur. Ce tableau d’arguments doit correspondre au nombre, à l’ordre et au type des paramètres du constructeur à appeler. Si le constructeur sans paramètre est souhaité, args doit être un tableau vide ou null.
- culture
- CultureInfo
Instance utilisée CultureInfo pour régir la contrainte des types. Si c’est nullle cas, le CultureInfo thread actuel est utilisé. (Il est nécessaire de convertir une chaîne qui représente 1000 en valeur Double , par exemple, car 1000 est représentée différemment par différentes cultures.)
- activationAttributes
- Object[]
Tableau d’un ou plusieurs attributs pouvant participer à l’activation. En règle générale, un tableau qui contient un seul UrlAttribute objet 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
Instance du type spécifié, ou null si typeName elle est introuvable. Les arguments fournis sont utilisés pour résoudre le type et lier le constructeur utilisé pour créer l’instance.
Implémente
- Attributs
Exceptions
typeName est une chaîne vide (« ») ou une chaîne commençant par un caractère Null.
- ou -
L’assembly actuel a été chargé dans le contexte de réflexion uniquement.
typeName a la valeur null.
Aucun constructeur correspondant n’a été trouvé.
Un tableau d’attributs d’activation non vide est passé à un type qui n’hérite pas de MarshalByRefObject.
typeName nécessite un assembly dépendant qui n’a pas pu être trouvé.
typeName nécessite un assembly dépendant qui a été trouvé, mais qui n’a pas pu être chargé.
- ou -
L’assembly actuel a été chargé dans le contexte de réflexion uniquement et typeName nécessite un assembly dépendant qui n’a pas été préchargé.
typeName nécessite un assembly dépendant, mais le fichier n’est pas un assembly valide pour le runtime actuellement chargé.