Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Assembly.CreateInstance (String)

 

Individua il tipo specificato in questo assembly e ne crea un'istanza usando l'attivatore di sistema e consentendo la ricerca con distinzione tra maiuscole e minuscole.

Spazio dei nomi:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public object CreateInstance(
	string typeName
)

Parametri

typeName
Type: System.String

Type.FullName del tipo da individuare.

Valore restituito

Type: System.Object

Istanza del tipo specificato creata con il costruttore predefinito oppure null se typeName non viene trovato. Il tipo viene risolto usando il binder predefinito, senza specificare attributi delle impostazioni cultura o dell'attivazione e con BindingFlags impostato su Public o Instance.

Exception Condition
ArgumentException

typeName è una stringa vuota ("") o una stringa che inizia con un carattere Null.

-oppure-

L'assembly corrente è stato caricato nel contesto di sola reflection.

ArgumentNullException

typeName è null.

MissingMethodException

Non è stato trovato alcun costruttore corrispondente.

FileNotFoundException

typeName richiede un assembly dipendente che non è stato trovato.

FileLoadException

typeName richiede un assembly dipendente che è stato trovato ma che non è stato possibile caricare.

-oppure-

L'assembly corrente è stato caricato nel contesto di sola reflection e typeName richiede un assembly dipendente che non è stato precaricato.

BadImageFormatException

typeName richiede un assembly dipendente, ma il file non è un assembly valido.

-oppure-

typeName richiede un assembly dipendente che è stato compilato per una versione del runtime successiva a quella attualmente caricata.

Se il runtime è riuscito a trovare typeName nel Assembly istanza, viene restituito null anziché generare un'eccezione. Questa situazione può verificarsi perché:

  • Non sono stati specificati il nome completo del tipo.

  • È stato specificato il nome completo del tipo, ma il non minuscoli corrispondono a quelli del tipo Type.FullName proprietà. Per un confronto senza distinzione di typeName con il nome del tipo completo, chiamare il CreateInstance(String, Boolean) overload e specificare true per il ignoreCase argomento.

  • Il tipo non esiste nell'oggetto Assembly istanza.

L'esempio seguente definisce un Person classe e viene chiamato il CreateInstance(String) metodo un'istanza.

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'

ReflectionPermission

when invoked late-bound through mechanisms such as M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]). Associated enumeration: F:System.Security.Permissions.ReflectionPermissionFlag.MemberAccess

.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: