Partager via


Assembly.CreateInstance Méthode

Définition

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

typeName
String

Type FullName à localiser.

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 typeName nom complet du type, appelez la CreateInstance(String, Boolean) surcharge et spécifiez true l’argument ignoreCase .

  • 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

typeName
String

Type FullName à localiser.

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

typeName
String

Type FullName à localiser.

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é.

S’applique à