Auf Englisch lesen

Freigeben über


Activator.CreateInstance Methode

Definition

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

Überlädt

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Veraltet.

Erstellt eine Instanz des Typs, deren Name in der angegebenen Remotedomäne angegeben ist, mithilfe der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des Typs, deren Name in der angegebenen Remotedomäne angegeben ist, mithilfe der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des Typs, deren Name angegeben ist, unter Verwendung der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(Type, Object[], Object[])

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(String, String, Object[])

Erstellt eine Instanz des Typs, deren Name angegeben ist, mithilfe des benannten Assembly- und parameterlosen Konstruktors.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Veraltet.

Erstellt eine Instanz des Typs, deren Name angegeben ist, unter Verwendung der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(Type, Object[])

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

CreateInstance(Type, Boolean)

Erstellt eine Instanz des angegebenen Typs mithilfe des parameterlosen Konstruktors dieses Typs.

CreateInstance(String, String)

Erstellt eine Instanz des Typs, deren Name angegeben ist, mithilfe des benannten Assembly- und parameterlosen Konstruktors.

CreateInstance(ActivationContext, String[])

Erstellt eine Instanz des Typs, der durch das angegebene ActivationContext -Objekt festgelegt und mit den angegebenen benutzerdefinierten Aktivierungsdaten aktiviert wird.

CreateInstance(Type)

Erstellt eine Instanz des angegebenen Typs mithilfe des parameterlosen Konstruktors dieses Typs.

CreateInstance(ActivationContext)

Erstellt eine Instanz des Typs, der durch das angegebene ActivationContext -Objekt festgelegt ist.

CreateInstance(AppDomain, String, String)

Erstellt eine Instanz des Typs, deren Name in der angegebenen Remotedomäne mit dem benannten Assembly- und parameterlosen Konstruktor angegeben ist.

CreateInstance<T>()

Erstellt eine Instanz des Typs, der durch den angegebenen generischen Typparameter mit dem parameterlosen Konstruktor festgelegt wird.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Achtung

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.

Erstellt eine Instanz des Typs, deren Name in der angegebenen Remotedomäne angegeben ist, mithilfe der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

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);

Parameter

domain
AppDomain

Die Domäne, in der der Typ typeName erstellt wird.

assemblyName
String

Der Name der Assembly, in der der Typ namens typeName gesucht wird. Wenn assemblyNamenullist, wird die ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs zum Erstellen einer Instanz von.

ignoreCase
Boolean

true, um anzugeben, dass bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet wird; false, um anzugeben, dass bei der Suche die Groß-/Kleinschreibung beachtet wird.

bindingAttr
BindingFlags

Eine Kombination aus null oder mehr Bit-Flags, die sich auf die Suche nach dem typeName-Konstruktor auswirken. Wenn bindingAttr null ist, wird eine Suche zwischen Groß- und Kleinschreibung für öffentliche Konstruktoren durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args verwendet, um den typeName-Konstruktor zu suchen und zu identifizieren. Wenn bindernullist, wird der Standardordner verwendet.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

culture
CultureInfo

Kulturspezifische Informationen, die die Koersion von args an die für den typeName-Konstruktor deklarierten formalen Typen regeln. Wenn culturenullist, wird die CultureInfo für den aktuellen Thread verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung teilnehmen können. Dies ist in der Regel ein Array, das ein einzelnes UrlAttribute-Objekt enthält. Die UrlAttribute gibt die URL an, die zum Aktivieren eines Remoteobjekts erforderlich ist.

securityAttributes
Evidence

Informationen, die verwendet werden, um Sicherheitsrichtlinienentscheidungen zu treffen und Codeberechtigungen zu erteilen.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen ohne Wert.

Attribute

Ausnahmen

domain oder typeName ist null.

Es wurde kein übereinstimmende Konstruktor gefunden.

typeName wurde in assemblyNamenicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der Konstruktor, der durch Spiegelung aufgerufen wurde, hat eine Ausnahme ausgelöst.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObjectabgeleitet.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

assemblyName ist keine gültige Assembly.

-oder-

Die Common Language Runtime (CLR) Version 2.0 oder höher wird zurzeit geladen, und assemblyName wurde für eine Version der CLR kompiliert, die später als die aktuell geladene Version ist. Beachten Sie, dass die .NET Framework-Versionen 2.0, 3.0 und 3.5 alle CLR-Version 2.0 verwenden.

Eine Assembly oder ein Modul wurde zweimal mit zwei verschiedenen Nachweisen geladen.

-oder-

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Verwenden Sie CreateInstance, wenn ein Host Code in einer Anwendungsdomäne ausführen muss, die eingeschränkte Sicherheitsberechtigungen besitzt.

Verwenden Sie ObjectHandle.Unwrap, um den Rückgabewert aufzuheben.

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen (Veraltet)
.NET Framework 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des Typs, deren Name in der angegebenen Remotedomäne angegeben ist, mithilfe der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

[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);

Parameter

domain
AppDomain

Die Domäne, in der der Typ typeName erstellt wird.

assemblyName
String

Der Name der Assembly, in der der Typ namens typeName gesucht wird. Wenn assemblyNamenullist, wird die ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs zum Erstellen einer Instanz von.

ignoreCase
Boolean

true, um anzugeben, dass bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet wird; false, um anzugeben, dass bei der Suche die Groß-/Kleinschreibung beachtet wird.

bindingAttr
BindingFlags

Eine Kombination aus null oder mehr Bit-Flags, die sich auf die Suche nach dem typeName-Konstruktor auswirken. Wenn bindingAttr null ist, wird eine Suche zwischen Groß- und Kleinschreibung für öffentliche Konstruktoren durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args verwendet, um den typeName-Konstruktor zu suchen und zu identifizieren. Wenn bindernullist, wird der Standardordner verwendet.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

culture
CultureInfo

Kulturspezifische Informationen, die die Koersion von args an die für den typeName-Konstruktor deklarierten formalen Typen regeln. Wenn culturenullist, wird die CultureInfo für den aktuellen Thread verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung teilnehmen können. Dies ist in der Regel ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die URL angibt, die zum Aktivieren eines Remoteobjekts erforderlich ist.

Dieser Parameter bezieht sich auf clientaktive Objekte. Die Clientaktivierung ist eine ältere Technologie, die aus Gründen der Abwärtskompatibilität beibehalten wird, für die neue Entwicklung jedoch nicht empfohlen wird. Verteilte Anwendungen sollten stattdessen Windows Communication Foundation verwenden.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen ohne Wert.

Attribute

Ausnahmen

domain oder typeName ist null.

Es wurde kein übereinstimmende Konstruktor gefunden.

typeName wurde in assemblyNamenicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der Konstruktor, der durch Spiegelung aufgerufen wurde, hat eine Ausnahme ausgelöst.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObjectabgeleitet.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

assemblyName ist keine gültige Assembly.

-oder-

Die Common Language Runtime (CLR) Version 2.0 oder höher wird zurzeit geladen, und assemblyName wurde für eine Version der CLR kompiliert, die später als die aktuell geladene Version ist. Beachten Sie, dass die .NET Framework-Versionen 2.0, 3.0 und 3.5 alle CLR-Version 2.0 verwenden.

Eine Assembly oder ein Modul wurde zweimal mit zwei verschiedenen Nachweisen geladen.

-oder-

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Verwenden Sie CreateInstance, wenn ein Host Code in einer Anwendungsdomäne ausführen muss, die eingeschränkte Sicherheitsberechtigungen besitzt.

Verwenden Sie ObjectHandle.Unwrap, um den Rückgabewert aufzuheben.

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs

Erstellt eine Instanz des Typs, deren Name angegeben ist, unter Verwendung der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

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);

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ namens typeName gesucht wird. Wenn assemblyNamenullist, wird die ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs zum Erstellen einer Instanz von.

ignoreCase
Boolean

true, um anzugeben, dass bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet wird; false, um anzugeben, dass bei der Suche die Groß-/Kleinschreibung beachtet wird.

bindingAttr
BindingFlags

Eine Kombination aus null oder mehr Bit-Flags, die sich auf die Suche nach dem typeName-Konstruktor auswirken. Wenn bindingAttr null ist, wird eine Suche zwischen Groß- und Kleinschreibung für öffentliche Konstruktoren durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args verwendet, um den typeName-Konstruktor zu suchen und zu identifizieren. Wenn bindernullist, wird der Standardordner verwendet.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

culture
CultureInfo

Kulturspezifische Informationen, die die Koersion von args an die für den typeName-Konstruktor deklarierten formalen Typen regeln. Wenn culturenullist, wird die CultureInfo für den aktuellen Thread verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung teilnehmen können. Dies ist in der Regel ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die URL angibt, die zum Aktivieren eines Remoteobjekts erforderlich ist.

Dieser Parameter bezieht sich auf clientaktive Objekte. Die Clientaktivierung ist eine ältere Technologie, die aus Gründen der Abwärtskompatibilität beibehalten wird, für die neue Entwicklung jedoch nicht empfohlen wird. Verteilte Anwendungen sollten stattdessen Windows Communication Foundation verwenden.

Gibt zurück

Ein Handle, das für den Zugriff auf die neu erstellte Instanz aufgehoben werden muss, oder null für Nullable<T> Instanzen ohne Wert.

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmende Konstruktor gefunden.

typeName wurde in assemblyNamenicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der Konstruktor, der durch Spiegelung aufgerufen wurde, hat eine Ausnahme ausgelöst.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObjectabgeleitet.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

assemblyName ist keine gültige Assembly.

-oder-

Die Common Language Runtime (CLR) Version 2.0 oder höher wird zurzeit geladen, und assemblyName wurde für eine Version der CLR kompiliert, die später als die aktuell geladene Version ist. Beachten Sie, dass die .NET Framework-Versionen 2.0, 3.0 und 3.5 alle CLR-Version 2.0 verwenden.

Eine Assembly oder ein Modul wurde zweimal mit zwei verschiedenen Nachweisen geladen.

-oder-

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Verwenden Sie ObjectHandle.Unwrap, um den Rückgabewert aufzuheben.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um nichtublicische Typen und Member zu erstellen, wenn der Aufrufer ReflectionPermission mit dem Flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublicen Typen und Member enthält, auf die Erteilungsmenge des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])

Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

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);

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

bindingAttr
BindingFlags

Eine Kombination aus null oder mehr Bit-Flags, die sich auf die Suche nach dem type-Konstruktor auswirken. Wenn bindingAttr null ist, wird eine Suche zwischen Groß- und Kleinschreibung für öffentliche Konstruktoren durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args verwendet, um den type-Konstruktor zu suchen und zu identifizieren. Wenn bindernullist, wird der Standardordner verwendet.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

culture
CultureInfo

Kulturspezifische Informationen, die die Koersion von args an die für den type-Konstruktor deklarierten formalen Typen regeln. Wenn culturenullist, wird die CultureInfo für den aktuellen Thread verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung teilnehmen können. Dies ist in der Regel ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die URL angibt, die zum Aktivieren eines Remoteobjekts erforderlich ist.

Dieser Parameter bezieht sich auf clientaktive Objekte. Die Clientaktivierung ist eine ältere Technologie, die aus Gründen der Abwärtskompatibilität beibehalten wird, für die neue Entwicklung jedoch nicht empfohlen wird. Verteilte Anwendungen sollten stattdessen Windows Communication Foundation verwenden.

Gibt zurück

Ein Verweis auf das neu erstellte Objekt oder null für Nullable<T> Instanzen ohne Wert.

Ausnahmen

type ist null.

type ist keine RuntimeType.

-oder-

type ist ein offener generischer Typ (d. a. die ContainsGenericParameters-Eigenschaft gibt truezurück).

type kann keine TypeBuildersein.

-oder-

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObjectabgeleitet.

-oder-

Die Assembly, die type enthält, ist eine dynamische Assembly, die mit Saveerstellt wurde.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Es wurde kein übereinstimmende Konstruktor gefunden.

type ist ein COM-Objekt, aber der Klassenbezeichner, der zum Abrufen des Typs verwendet wird, ist ungültig, oder die identifizierte Klasse ist nicht registriert.

type ist kein gültiger Typ.

Hinweise

Der aufgerufene Konstruktor muss die spezifischeste Übereinstimmung mit der angegebenen Argumentliste unter den Einschränkungen der angegebenen Ordner- und Bindungsattribute bereitstellen.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um auf nichtublicische Typen und Member zuzugreifen, wenn der Aufrufer ReflectionPermission mit dem Flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der nichtublic-Typen und -Member auf den Grant-Satz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)

Quelle:
Activator.cs
Quelle:
Activator.cs
Quelle:
Activator.cs

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

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);

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

bindingAttr
BindingFlags

Eine Kombination aus null oder mehr Bit-Flags, die sich auf die Suche nach dem type-Konstruktor auswirken. Wenn bindingAttr null ist, wird eine Suche zwischen Groß- und Kleinschreibung für öffentliche Konstruktoren durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args verwendet, um den type-Konstruktor zu suchen und zu identifizieren. Wenn bindernullist, wird der Standardordner verwendet.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

culture
CultureInfo

Kulturspezifische Informationen, die die Koersion von args an die für den type-Konstruktor deklarierten formalen Typen regeln. Wenn culturenullist, wird die CultureInfo für den aktuellen Thread verwendet.

Gibt zurück

Ein Verweis auf das neu erstellte Objekt oder null für Nullable<T> Instanzen ohne Wert.

Ausnahmen

type ist null.

type ist keine RuntimeType.

-oder-

type ist ein offener generischer Typ (d. a. die ContainsGenericParameters-Eigenschaft gibt truezurück).

type kann keine TypeBuildersein.

-oder-

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

Die Assembly, die type enthält, ist eine dynamische Assembly, die mit Saveerstellt wurde.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Es wurde kein übereinstimmende Konstruktor gefunden.

type ist ein COM-Objekt, aber der Klassenbezeichner, der zum Abrufen des Typs verwendet wird, ist ungültig, oder die identifizierte Klasse ist nicht registriert.

type ist kein gültiger Typ.

Hinweise

Der aufgerufene Konstruktor muss die spezifischeste Übereinstimmung mit der angegebenen Argumentliste unter den Einschränkungen der angegebenen Ordner- und Bindungsattribute bereitstellen.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um auf nichtublicische Typen und Member zuzugreifen, wenn der Aufrufer ReflectionPermission mit dem Flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublicen Typen und Member enthält, auf die Erteilungsmenge des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateInstance(Type, Object[], Object[])

Quelle:
Activator.cs
Quelle:
Activator.cs
Quelle:
Activator.cs

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

public static object? CreateInstance (Type type, object?[]? args, object?[]? activationAttributes);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung teilnehmen können. Dies ist in der Regel ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die URL angibt, die zum Aktivieren eines Remoteobjekts erforderlich ist.

Dieser Parameter bezieht sich auf clientaktive Objekte. Die Clientaktivierung ist eine ältere Technologie, die aus Gründen der Abwärtskompatibilität beibehalten wird, für die neue Entwicklung jedoch nicht empfohlen wird. Verteilte Anwendungen sollten stattdessen Windows Communication Foundation verwenden.

Gibt zurück

Ein Verweis auf das neu erstellte Objekt oder null für Nullable<T> Instanzen ohne Wert.

Ausnahmen

type ist null.

type ist keine RuntimeType.

-oder-

type ist ein offener generischer Typ (d. a. die ContainsGenericParameters-Eigenschaft gibt truezurück).

type kann keine TypeBuildersein.

-oder-

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObjectabgeleitet.

-oder-

Die Assembly, die type enthält, ist eine dynamische Assembly, die mit Saveerstellt wurde.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Es wurde kein übereinstimmener öffentlicher Konstruktor gefunden.

type ist ein COM-Objekt, aber der Klassenbezeichner, der zum Abrufen des Typs verwendet wird, ist ungültig, oder die identifizierte Klasse ist nicht registriert.

type ist kein gültiger Typ.

Hinweise

Auf den aufgerufenen Konstruktor muss zugegriffen werden kann und die spezifischste Übereinstimmung mit der angegebenen Argumentliste bereitstellen.

Hinweis

Ab .NET Framework 2.0 kann diese Methode für den Zugriff auf nichtublic-Typen verwendet werden, wenn der Aufrufer ReflectionPermission mit dem flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublic-Typen enthält, auf den Grant-Satz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateInstance(String, String, Object[])

Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs

Erstellt eine Instanz des Typs, deren Name angegeben ist, mithilfe des benannten Assembly- und parameterlosen Konstruktors.

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);

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ namens typeName gesucht wird. Wenn assemblyNamenullist, wird die ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs zum Erstellen einer Instanz von.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung teilnehmen können. Dies ist in der Regel ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die URL angibt, die zum Aktivieren eines Remoteobjekts erforderlich ist.

Dieser Parameter bezieht sich auf clientaktive Objekte. Die Clientaktivierung ist eine ältere Technologie, die aus Gründen der Abwärtskompatibilität beibehalten wird, für die neue Entwicklung jedoch nicht empfohlen wird. Verteilte Anwendungen sollten stattdessen Windows Communication Foundation verwenden.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen.

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmener öffentlicher Konstruktor gefunden.

typeName wurde in assemblyNamenicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObjectabgeleitet.

-oder-

activationAttributes ist keine UrlAttribute

Anordnung.

assemblyName ist keine gültige Assembly.

-oder-

Die Common Language Runtime (CLR) Version 2.0 oder höher wird zurzeit geladen, und assemblyName wurde für eine Version der CLR kompiliert, die später als die aktuell geladene Version ist. Beachten Sie, dass die .NET Framework-Versionen 2.0, 3.0 und 3.5 alle CLR-Version 2.0 verwenden.

Eine Assembly oder ein Modul wurde zweimal mit zwei verschiedenen Nachweisen geladen.

-oder-

Der Assemblyname oder die Codebasis ist ungültig.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

-oder-

Fehler beim Versuch der Remoteaktivierung in einem in activationAttributesangegebenen Ziel.

Hinweise

Verwenden Sie ObjectHandle.Unwrap, um den Rückgabewert aufzuheben.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um nichtublice Typen zu erstellen, wenn der Aufrufer ReflectionPermission mit dem flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der nichtublic-Typen auf den Grant-Satz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Achtung

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.

Erstellt eine Instanz des Typs, deren Name angegeben ist, unter Verwendung der benannten Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

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);

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ namens typeName gesucht wird. Wenn assemblyNamenullist, wird die ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs zum Erstellen einer Instanz von.

ignoreCase
Boolean

true, um anzugeben, dass bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet wird; false, um anzugeben, dass bei der Suche die Groß-/Kleinschreibung beachtet wird.

bindingAttr
BindingFlags

Eine Kombination aus null oder mehr Bit-Flags, die sich auf die Suche nach dem typeName-Konstruktor auswirken. Wenn bindingAttr null ist, wird eine Suche zwischen Groß- und Kleinschreibung für öffentliche Konstruktoren durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args verwendet, um den typeName-Konstruktor zu suchen und zu identifizieren. Wenn bindernullist, wird der Standardordner verwendet.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

culture
CultureInfo

Kulturspezifische Informationen, die die Koersion von args an die für den typeName-Konstruktor deklarierten formalen Typen regeln. Wenn culturenullist, wird die CultureInfo für den aktuellen Thread verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung teilnehmen können. Dies ist in der Regel ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die URL angibt, die zum Aktivieren eines Remoteobjekts erforderlich ist.

Dieser Parameter bezieht sich auf clientaktive Objekte. Die Clientaktivierung ist eine ältere Technologie, die aus Gründen der Abwärtskompatibilität beibehalten wird, für die neue Entwicklung jedoch nicht empfohlen wird. Verteilte Anwendungen sollten stattdessen Windows Communication Foundation verwenden.

securityInfo
Evidence

Informationen, die verwendet werden, um Sicherheitsrichtlinienentscheidungen zu treffen und Codeberechtigungen zu erteilen.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen ohne Wert.

Attribute

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmende Konstruktor gefunden.

typeName wurde in assemblyNamenicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der Konstruktor, der durch Spiegelung aufgerufen wurde, hat eine Ausnahme ausgelöst.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObjectabgeleitet.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

assemblyName ist keine gültige Assembly.

-oder-

Die Common Language Runtime (CLR) Version 2.0 oder höher wird zurzeit geladen, und assemblyName wurde für eine Version der CLR kompiliert, die später als die aktuell geladene Version ist. Beachten Sie, dass die .NET Framework-Versionen 2.0, 3.0 und 3.5 alle CLR-Version 2.0 verwenden.

Eine Assembly oder ein Modul wurde zweimal mit zwei verschiedenen Nachweisen geladen.

-oder-

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Verwenden Sie ObjectHandle.Unwrap, um den Rückgabewert aufzuheben.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um nichtublicische Typen und Member zu erstellen, wenn der Aufrufer ReflectionPermission mit dem Flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublicen Typen und Member enthält, auf die Erteilungsmenge des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen (Veraltet)
.NET Framework 1.1, 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)

CreateInstance(Type, Object[])

Quelle:
Activator.cs
Quelle:
Activator.cs
Quelle:
Activator.cs

Erstellt eine Instanz des angegebenen Typs mithilfe des Konstruktors, der den angegebenen Parametern am besten entspricht.

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);

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

args
Object[]

Ein Array von Argumenten, die in Zahlen, Reihenfolge und Eingabe der Parameter des aufgerufenen Konstruktors übereinstimmen. Wenn args ein leeres Array oder nullist, wird der Konstruktor aufgerufen, der keine Parameter (den parameterlosen Konstruktor) verwendet.

Gibt zurück

Ein Verweis auf das neu erstellte Objekt oder null für Nullable<T> Instanzen ohne Wert.

Ausnahmen

type ist null.

type ist keine RuntimeType.

-oder-

type ist ein offener generischer Typ (d. a. die ContainsGenericParameters-Eigenschaft gibt truezurück).

type kann keine TypeBuildersein.

-oder-

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

Die Assembly, die type enthält, ist eine dynamische Assembly, die mit Saveerstellt wurde.

-oder-

Der Konstruktor, der am besten mit args übereinstimmt, weist varargs Argumente auf.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Hinweis: In .NET für Windows Store-Apps oder der Portable Class Library, erfassen Sie stattdessen die Basisklassen-Ausnahme, MemberAccessException.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Es wurde kein übereinstimmener öffentlicher Konstruktor gefunden.

Hinweis: In .NET für Windows Store-Apps oder der Portable Class Library, erfassen Sie stattdessen die Basisklassen-Ausnahme, MissingMemberException.

type ist ein COM-Objekt, aber der Klassenbezeichner, der zum Abrufen des Typs verwendet wird, ist ungültig, oder die identifizierte Klasse ist nicht registriert.

type ist kein gültiger Typ.

Beispiele

Im folgenden Beispiel wird die CreateInstance(Type, Object[])-Methode aufgerufen, um ein String-Objekt zu erstellen. Sie ruft den String.String(Char[], Int32, Int32)-Konstruktor auf, um eine Zeichenfolge zu instanziieren, die zehn Elemente aus einem Zeichenarray enthält, beginnend an der vierzehnten 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

Im folgenden Beispiel wird ein gezogenes Array erstellt, dessen Elemente Argumente sind, die an einen String-Konstruktor übergeben werden sollen. Anschließend übergibt das Beispiel jedes Array an die CreateInstance(Type, Object[])-Methode, um den entsprechenden Zeichenfolgenkonstruktor aufzurufen.

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

Hinweise

Auf den aufgerufenen Konstruktor muss zugegriffen werden kann und die spezifischste Übereinstimmung mit der angegebenen Argumentliste bereitstellen.

Hinweis

Ab .NET Framework 2.0 kann diese Methode für den Zugriff auf nichtublic-Typen verwendet werden, wenn der Aufrufer ReflectionPermission mit dem flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublic-Typen enthält, auf den Grant-Satz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(Type, Boolean)

Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs

Erstellt eine Instanz des angegebenen Typs mithilfe des parameterlosen Konstruktors dieses Typs.

public static object? CreateInstance (Type type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

nonPublic
Boolean

true, wenn ein öffentlicher oder nicht öffentlicher parameterloser Konstruktor übereinstimmen kann; false, wenn nur ein öffentlicher parameterloser Konstruktor übereinstimmen kann.

Gibt zurück

Ein Verweis auf das neu erstellte Objekt oder null für Nullable<T> Instanzen.

Ausnahmen

type ist null.

type ist keine RuntimeType.

-oder-

type ist ein offener generischer Typ (d. a. die ContainsGenericParameters-Eigenschaft gibt truezurück).

type kann keine TypeBuildersein.

-oder-

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

Die Assembly, die type enthält, ist eine dynamische Assembly, die mit Saveerstellt wurde.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Es wurde kein übereinstimmener öffentlicher Konstruktor gefunden.

type ist ein COM-Objekt, aber der Klassenbezeichner, der zum Abrufen des Typs verwendet wird, ist ungültig, oder die identifizierte Klasse ist nicht registriert.

type ist kein gültiger Typ.

Hinweise

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um auf nichtublicische Typen und Member zuzugreifen, wenn der Aufrufer ReflectionPermission mit dem Flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublicen Typen und Member enthält, auf die Erteilungsmenge des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.5, 1.6, 2.0, 2.1

CreateInstance(String, String)

Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs

Erstellt eine Instanz des Typs, deren Name angegeben ist, mithilfe des benannten Assembly- und parameterlosen Konstruktors.

public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ namens typeName gesucht wird. Wenn assemblyNamenullist, wird die ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs zum Erstellen einer Instanz von.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen.

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmener öffentlicher Konstruktor gefunden.

typeName wurde in assemblyNamenicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Sie können keine Instanz einer abstrakten Klasse erstellen, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der Konstruktor, der durch Spiegelung aufgerufen wurde, hat eine Ausnahme ausgelöst.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

assemblyName ist keine gültige Assembly.

-oder-

Die Common Language Runtime (CLR) Version 2.0 oder höher wird zurzeit geladen, und assemblyName wurde für eine Version der CLR kompiliert, die später als die aktuell geladene Version ist. Beachten Sie, dass die .NET Framework-Versionen 2.0, 3.0 und 3.5 alle CLR-Version 2.0 verwenden.

Eine Assembly oder ein Modul wurde zweimal mit zwei verschiedenen Nachweisen geladen.

-oder-

Der Assemblyname oder die Codebasis ist ungültig.

Beispiele

Im folgenden Beispiel wird eine Klasse namens Person in einer Assembly namens PersonInfodefiniert. Beachten Sie, dass die Person-Klasse zwei Konstruktoren hat, von denen einer parameterlos ist.

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;
   }
}

Im folgenden Beispiel wird die CreateInstance(String, String)-Methode aufgerufen, um die Person Klasse zu instanziieren. Zum Projekt muss ein Verweis auf PersonInfo.dll hinzugefügt werden. Da die CreateInstance(String, String)-Methode den Person Klassenparameterlosen Konstruktor aufruft, weist das Beispiel dem Name-Eigenschaft einen Wert zu.

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

CreateInstance wird jedoch häufig aufgerufen, um einen Typ zu instanziieren, der Computergrenzen überschreitet oder die zur Entwurfszeit nicht bekannt ist. In diesem Fall können Sie keinen Verweis auf die Assembly in das Projekt aufnehmen und keine früh gebundenen Aufrufe an die Member des Typs vornehmen. Um diese Einschränkung zu umgehen, verwendet das folgende Beispiel die CreateInstance-Methode zusammen mit Spiegelung, um der Person-Eigenschaft des Name Objekts einen Wert zuzuweisen und seinen Wert anzuzeigen.

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

Hinweise

Verwenden Sie ObjectHandle.Unwrap, um den Rückgabewert aufzuheben.

assemblyName kann eine der folgenden Sein:

  • Der einfache Name einer Assembly ohne Pfad oder Dateierweiterung. Sie würden z. B. TypeExtensions für eine Assembly angeben, deren Pfad und Name lautet.\bin\TypeExtensions.dll.

  • Der vollständige Name einer signierten Assembly, die aus dem einfachen Namen, der Version, der Kultur und dem öffentlichen Schlüsseltoken besteht; Beispiel: "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".

Weitere Informationen dazu, wie die Common Language Runtime Assemblys identifiziert und lädt, finden Sie unter How the Runtime Locates Assemblies. Informationen zur Verwendung der Anwendungskonfigurationsdatei zum Definieren von Assemblyspeicherorten finden Sie unter Angeben des Speicherorts einer Assembly. Wenn assemblyName gefunden wird, wird sie im Standardkontext geladen.

Hinweis

Ab .NET Framework 2.0 kann diese Methode verwendet werden, um nichtublicische Typen zu erstellen, wenn der Aufrufer ReflectionPermission mit dem flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublic-Typen enthält, auf den Grant-Satz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

CreateInstance(ActivationContext, String[])

Erstellt eine Instanz des Typs, der durch das angegebene ActivationContext -Objekt festgelegt und mit den angegebenen benutzerdefinierten Aktivierungsdaten aktiviert wird.

public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData);

Parameter

activationContext
ActivationContext

Ein Aktivierungskontextobjekt, das das zu erstellende Objekt angibt.

activationCustomData
String[]

Ein Array von Unicode-Zeichenfolgen, die benutzerdefinierte Aktivierungsdaten enthalten.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen.

Hinweise

Verwenden Sie die ObjectHandle.Unwrap-Methode, um den Rückgabewert aufzuheben.

Der Aktivierungskontext wird während der manifestbasierten Aktivierung verwendet, um die Domänenrichtlinie einzurichten und ein anwendungsbasiertes Sicherheitsmodell bereitzustellen. Die ActivationContext-Klasse enthält ein ApplicationIdentity-Objekt, das Zugriff auf das Anwendungsmanifest ermöglicht. Weitere Informationen finden Sie in der ApplicationSecurityManager Klasse.

Weitere Informationen

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

CreateInstance(Type)

Quelle:
Activator.cs
Quelle:
Activator.cs
Quelle:
Activator.cs

Erstellt eine Instanz des angegebenen Typs mithilfe des parameterlosen Konstruktors dieses Typs.

public static object CreateInstance (Type type);
public static object? CreateInstance (Type type);

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

Gibt zurück

Ein Verweis auf das neu erstellte Objekt oder null für Nullable<T> Instanzen.

Ausnahmen

type ist null.

type ist keine RuntimeType.

-oder-

type ist ein offener generischer Typ (d. a. die ContainsGenericParameters-Eigenschaft gibt truezurück).

type kann keine TypeBuildersein.

-oder-

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

-oder-

Die Assembly, die type enthält, ist eine dynamische Assembly, die mit Saveerstellt wurde.

Der aufgerufene Konstruktor löst eine Ausnahme aus.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Hinweis: In .NET für Windows Store-Apps oder der Portable Class Library, erfassen Sie stattdessen die Basisklassen-Ausnahme, MemberAccessException.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieses Element wurde mit einem spät gebundenen Mechanismus aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Es wurde kein übereinstimmener öffentlicher Konstruktor gefunden.

Hinweis: In .NET für Windows Store-Apps oder der Portable Class Library, erfassen Sie stattdessen die Basisklassen-Ausnahme, MissingMemberException.

type ist ein COM-Objekt, aber der Klassenbezeichner, der zum Abrufen des Typs verwendet wird, ist ungültig, oder die identifizierte Klasse ist nicht registriert.

type ist kein gültiger Typ.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die CreateInstance(Type)-Methode aufgerufen wird. Instanzen verschiedener Typen werden erstellt, und deren Standardwerte werden angezeigt.

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

Hinweise

Auf den aufgerufenen Konstruktor muss zugegriffen werden kann.

Hinweis

Ab .NET Framework 2.0 kann diese Methode für den Zugriff auf nichtublic-Typen verwendet werden, wenn der Aufrufer ReflectionPermission mit dem flag ReflectionPermissionFlag.RestrictedMemberAccess erteilt wurde und wenn der Grant-Satz der Assembly, die die nichtublic-Typen enthält, auf den Grant-Satz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Siehe Sicherheitsüberlegungen für Reflection.) Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher abzielen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CreateInstance(ActivationContext)

Erstellt eine Instanz des Typs, der durch das angegebene ActivationContext -Objekt festgelegt ist.

public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext);

Parameter

activationContext
ActivationContext

Ein Aktivierungskontextobjekt, das das zu erstellende Objekt angibt.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen.

Hinweise

Verwenden Sie die ObjectHandle.Unwrap-Methode, um den Rückgabewert aufzuheben.

Der Aktivierungskontext wird während der manifestbasierten Aktivierung verwendet, um die Domänenrichtlinie einzurichten und ein anwendungsbasiertes Sicherheitsmodell bereitzustellen. Die ActivationContext-Klasse enthält ein ApplicationIdentity-Objekt, das Zugriff auf das Anwendungsmanifest ermöglicht. Weitere Informationen finden Sie in der ApplicationSecurityManager Klasse.

Weitere Informationen

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

CreateInstance(AppDomain, String, String)

Erstellt eine Instanz des Typs, deren Name in der angegebenen Remotedomäne mit dem benannten Assembly- und parameterlosen Konstruktor angegeben ist.

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);

Parameter

domain
AppDomain

Die Remotedomäne, in der der Typ typeName erstellt wird.

assemblyName
String

Der Name der Assembly, in der der Typ namens typeName gesucht wird. Wenn assemblyNamenullist, wird die ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs zum Erstellen einer Instanz von.

Gibt zurück

Ein Handle, das für den Zugriff auf das neu erstellte Objekt aufgehoben werden muss, oder null für Nullable<T> Instanzen.

Attribute

Ausnahmen

typeName oder domain ist null.

Es wurde kein übereinstimmener öffentlicher Konstruktor gefunden.

typeName wurde in assemblyNamenicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer verfügt nicht über die Berechtigung, diesen Konstruktor aufzurufen.

Eine Instanz eines abstrakten Typs kann nicht erstellt werden.

-oder-

Dieses Element wurde mit einem Spätbindungsmechanismus aufgerufen.

Der Konstruktor, der durch Spiegelung aufgerufen wurde, hat eine Ausnahme ausgelöst.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSIDabgerufen.

Das Erstellen von TypedReference, ArgIterator, Voidund RuntimeArgumentHandle Typen oder Arrays dieser Typen wird nicht unterstützt.

assemblyName ist keine gültige Assembly.

-oder-

Die Common Language Runtime (CLR) Version 2.0 oder höher wird zurzeit geladen, und assemblyName wurde für eine Version der CLR kompiliert, die später als die aktuell geladene Version ist. Beachten Sie, dass die .NET Framework-Versionen 2.0, 3.0 und 3.5 alle CLR-Version 2.0 verwenden.

Eine Assembly oder ein Modul wurde zweimal mit zwei verschiedenen Nachweisen geladen.

-oder-

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Verwenden Sie CreateInstance, wenn ein Host Code in einer Anwendungsdomäne ausführen muss, die eingeschränkte Sicherheitsberechtigungen besitzt.

Verwenden Sie ObjectHandle.Unwrap, um den Rückgabewert aufzuheben.

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

CreateInstance<T>()

Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs
Quelle:
Activator.RuntimeType.cs

Erstellt eine Instanz des Typs, der durch den angegebenen generischen Typparameter mit dem parameterlosen Konstruktor festgelegt wird.

public static T CreateInstance<T> ();

Typparameter

T

Der zu erstellende Typ.

Gibt zurück

T

Ein Verweis auf das neu erstellte Objekt oder null für Nullable<T> Instanzen.

Ausnahmen

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder der für T angegebene Typ verfügt nicht über einen parameterlosen Konstruktor.

Hinweis: In .NET für Windows Store-Apps oder der Portable Class Library, erfassen Sie stattdessen die Basisklassen-Ausnahme, MissingMemberException.

Hinweise

Die CreateInstance<T>() generische Methode wird von Compilern verwendet, um die Instanziierung von Typen zu implementieren, die durch Typparameter angegeben werden. In der folgenden generischen Methode verwendet beispielsweise die Implementierung von new T() (gcnew T() in C++) die CreateInstance<T>() generische Methode.

public static T Factory<T>() where T : new()
{
    return new T();
}

Im Allgemeinen gibt es keine Verwendung für die CreateInstance<T>() generische Methode im Anwendungscode, da der Typ zur Kompilierungszeit bekannt sein muss. Wenn der Typ zur Kompilierungszeit bekannt ist, kann die normale Instanziierungssyntax verwendet werden (new Operator in C#, New in Visual Basic, gcnew in C++). Wenn der Typ zur Kompilierungszeit nicht bekannt ist, können Sie eine nicht generische Überladung von CreateInstanceaufrufen.

Es gibt keine Überladungen der CreateInstance<T>() generischen Methode, die Argumentlisten verwendet, da die nicht generischen Überladungen von CreateInstance bereits spät gebundene Konstruktorauflösung bieten.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0