Activator.CreateInstance Methode

Definition

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

Überlädt

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

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen 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 mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen 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 mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt.

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

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

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

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

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

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

CreateInstance(String, String, Object[])

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des parameterlosen Konstruktors.

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

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt.

CreateInstance(Type, Object[])

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

CreateInstance(Type, Boolean)

Erstellt mit dem parameterlosen Konstruktor dieses Typs eine Instanz des angegebenen Typs.

CreateInstance(String, String)

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des parameterlosen Konstruktors.

CreateInstance(ActivationContext, String[])

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

CreateInstance(Type)

Erstellt mit dem parameterlosen Konstruktor dieses Typs eine Instanz des angegebenen Typs.

CreateInstance(ActivationContext)

Erstellt eine Instanz des Typs, der vom angegebenen ActivationContext-Objekt festgelegt wurde.

CreateInstance(AppDomain, String, String)

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assembly und des parameterlosen Konstruktors.

CreateInstance<T>()

Erstellt mit dem parameterlosen Konstruktor eine Instanz des Typs, der vom angegebenen generischen Typparameter festgelegt wurde.

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 mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityAttributes As Evidence) As ObjectHandle

Parameter

domain
AppDomain

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

assemblyName
String

Der Name der Assembly, in der der Typ mit dem Namen typeName gesucht wird. Wenn assemblyNamenull ist, wird die derzeit ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs, von dem eine Instanz erstellt werden soll.

ignoreCase
Boolean

true, wenn bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet werden soll; false, wenn bei der Suche die Groß-/Kleinschreibung beachtet werden soll.

bindingAttr
BindingFlags

Eine Kombination von 0 oder mehr Bitflags, die die Suche nach dem typeName-Konstruktor beeinflussen. Wenn bindingAttr 0 ist, wird eine Suche nach öffentlichen Konstruktoren mit Beachtung der Groß-/Kleinschreibung durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args für die Suche und Bestimmung des typeName-Konstruktors verwendet. Wenn binder den Wert null aufweist, wird der Standardbinder verwendet.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

culture
CultureInfo

Kulturabhängige Informationen, die die Umwandlung von args in die für den typeName-Konstruktor deklarierten formalen Typen bestimmen. Wenn culture den Wert null hat, wird die CultureInfo des aktuellen Threads verwendet.

activationAttributes
Object[]

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

securityAttributes
Evidence

Informationen, die bei Entscheidungen bezüglich Sicherheitsrichtlinien und beim Gewähren von Codeberechtigungen herangezogen werden.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf die neu erstellte Instanz entwrappt werden muss.

Attribute

Ausnahmen

domain oder typeName ist null.

Es wurde kein übereinstimmender Konstruktor gefunden.

typename wurde in assemblyName nicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

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

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObject abgeleitet.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

assemblyName ist keine gültige Assembly.

- oder - Die Common Language Runtime (CLR) Version 2.0 oder höher ist derzeit geladen, und assemblyName wurde für eine höhere CLR-Version als die derzeit geladene kompiliert. 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 unterschiedlichen Beweisen geladen.

- oder -

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Die -Methode null gibt für die Instanzen ohne Wert Nullable<T> zurück.

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

Verwenden ObjectHandle.Unwrap Sie , um den Rückgabewert zu entpacken.

Hinweis

Diese Methode verwendet , SecurityAction.LinkDemand um den unmittelbaren Aufrufer auf volle Vertrauenswürdigkeit zu setzen.

Gilt für

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

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle

Parameter

domain
AppDomain

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

assemblyName
String

Der Name der Assembly, in der der Typ mit dem Namen typeName gesucht wird. Wenn assemblyNamenull ist, wird die derzeit ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs, von dem eine Instanz erstellt werden soll.

ignoreCase
Boolean

true, wenn bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet werden soll; false, wenn bei der Suche die Groß-/Kleinschreibung beachtet werden soll.

bindingAttr
BindingFlags

Eine Kombination von 0 oder mehr Bitflags, die die Suche nach dem typeName-Konstruktor beeinflussen. Wenn bindingAttr 0 ist, wird eine Suche nach öffentlichen Konstruktoren mit Beachtung der Groß-/Kleinschreibung durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args für die Suche und Bestimmung des typeName-Konstruktors verwendet. Wenn binder den Wert null aufweist, wird der Standardbinder verwendet.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

culture
CultureInfo

Kulturabhängige Informationen, die die Umwandlung von args in die für den typeName-Konstruktor deklarierten formalen Typen bestimmen. Wenn culture den Wert null hat, wird die CultureInfo des aktuellen Threads verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung beteiligt sein können. Dies ist üblicherweise ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die zum Aktivieren eines Remoteobjekts erforderliche URL angibt.

Der Parameter ist vom Client aktivierten Objekten zugeordnet. Die Clientaktivierung ist eine veraltete Technologie, die zum Zweck der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten, jedoch nicht für die Neuentwicklung empfohlen wird. Für verteilte Anwendungen sollte stattdessen Windows Communication Foundation verwendet werden.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf die neu erstellte Instanz entwrappt werden muss.

Attribute

Ausnahmen

domain oder typeName ist null.

Es wurde kein übereinstimmender Konstruktor gefunden.

typename wurde in assemblyName nicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

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

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObject abgeleitet.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

assemblyName ist keine gültige Assembly.

- oder - Die Common Language Runtime (CLR) Version 2.0 oder höher ist derzeit geladen, und assemblyName wurde für eine höhere CLR-Version als die derzeit geladene kompiliert. 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 unterschiedlichen Beweisen geladen.

- oder -

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

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

Die -Methode null gibt für die Instanzen ohne Wert Nullable<T> zurück.

Verwenden ObjectHandle.Unwrap Sie , um den Rückgabewert zu entpacken.

Hinweis

Diese Methode verwendet , SecurityAction.LinkDemand um den unmittelbaren Aufrufer auf volle Vertrauenswürdigkeit zu setzen.

Gilt für

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

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As ObjectHandle

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ mit dem Namen typeName gesucht wird. Wenn assemblyNamenull ist, wird die derzeit ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs, von dem eine Instanz erstellt werden soll.

ignoreCase
Boolean

true, wenn bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet werden soll; false, wenn bei der Suche die Groß-/Kleinschreibung beachtet werden soll.

bindingAttr
BindingFlags

Eine Kombination von 0 oder mehr Bitflags, die die Suche nach dem typeName-Konstruktor beeinflussen. Wenn bindingAttr 0 ist, wird eine Suche nach öffentlichen Konstruktoren mit Beachtung der Groß-/Kleinschreibung durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args für die Suche und Bestimmung des typeName-Konstruktors verwendet. Wenn binder den Wert null aufweist, wird der Standardbinder verwendet.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

culture
CultureInfo

Kulturabhängige Informationen, die die Umwandlung von args in die für den typeName-Konstruktor deklarierten formalen Typen bestimmen. Wenn culture den Wert null hat, wird die CultureInfo des aktuellen Threads verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung beteiligt sein können. Dies ist üblicherweise ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die zum Aktivieren eines Remoteobjekts erforderliche URL angibt.

Der Parameter ist vom Client aktivierten Objekten zugeordnet. Die Clientaktivierung ist eine veraltete Technologie, die zum Zweck der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten, jedoch nicht für die Neuentwicklung empfohlen wird. Für verteilte Anwendungen sollte stattdessen Windows Communication Foundation verwendet werden.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf die neu erstellte Instanz entwrappt werden muss.

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmender Konstruktor gefunden.

typename wurde in assemblyName nicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

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

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObject abgeleitet.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

assemblyName ist keine gültige Assembly.

- oder - Die Common Language Runtime (CLR) Version 2.0 oder höher ist derzeit geladen, und assemblyName wurde für eine höhere CLR-Version als die derzeit geladene kompiliert. 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 unterschiedlichen Beweisen geladen.

- oder -

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Verwenden ObjectHandle.Unwrap Sie , um den Rückgabewert zu entpacken.

Die -Methode null gibt für die Instanzen ohne Wert Nullable<T> zurück.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode verwendet werden, um nichtpublic-Typen und Member zu erstellen, wenn dem Aufrufer das -Flag erteilt wurde und der Berechtigungssatz der Assembly, die die nichtublic-Typen und Member enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess ist. (Weitere Informationen finden Sie unter Überlegungen zur Sicherheit bei der Reflektion.)

Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher.

Gilt für

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

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

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture, object?[]? activationAttributes);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object()) As Object

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

bindingAttr
BindingFlags

Eine Kombination von 0 oder mehr Bitflags, die die Suche nach dem type-Konstruktor beeinflussen. Wenn bindingAttr 0 ist, wird eine Suche nach öffentlichen Konstruktoren mit Beachtung der Groß-/Kleinschreibung durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args für die Suche und Bestimmung des type-Konstruktors verwendet. Wenn binder den Wert null aufweist, wird der Standardbinder verwendet.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

culture
CultureInfo

Kulturabhängige Informationen, die die Umwandlung von args in die für den type-Konstruktor deklarierten formalen Typen bestimmen. Wenn culture den Wert null hat, wird die CultureInfo des aktuellen Threads verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung beteiligt sein können. Dies ist üblicherweise ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die zum Aktivieren eines Remoteobjekts erforderliche URL angibt.

Der Parameter ist vom Client aktivierten Objekten zugeordnet. Die Clientaktivierung ist eine veraltete Technologie, die zum Zweck der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten, jedoch nicht für die Neuentwicklung empfohlen wird. Für verteilte Anwendungen sollte stattdessen Windows Communication Foundation verwendet werden.

Gibt zurück

Object

Ein Verweis auf das neu erstellte Objekt.

Ausnahmen

type ist null.

type ist keine RuntimeType.

- oder - type ist ein offener generischer Typ (die ContainsGenericParameters-Eigenschaft gibt folglich true zurück).

type darf nicht TypeBuilder sein.

- oder - Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObject abgeleitet.

- oder - Die Assembly mit type ist eine dynamische Assembly, die mit Save erstellt wurde.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

Das Aufrufen des Konstruktors löst eine Ausnahme aus.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Es wurde kein übereinstimmender Konstruktor gefunden.

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

type ist kein gültiger Typ.

Hinweise

Der aufzurufende Konstruktor muss die spezifischste Übereinstimmung mit der angegebenen Argumentliste unter den Einschränkungen des angegebenen Binder- und Bindungsattributes bereitstellen.

Die -Methode gibt null für die Nullable<T> -Instanzen ohne Wert zurück.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode verwendet werden, um auf nicht öffentliche Typen und Member zuzugreifen, wenn dem Aufrufer das Flag erteilt wurde ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess und der Berechtigungssatz der nicht öffentlichen Typen und Member auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen für Reflektion.)

Um diese Funktion zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für

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

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

public:
 static System::Object ^ CreateInstance(Type ^ type, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture);
public static object? CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, object?[]? args, System.Globalization.CultureInfo? culture);
public static object CreateInstance (Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public Shared Function CreateInstance (type As Type, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo) As Object

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

bindingAttr
BindingFlags

Eine Kombination von 0 oder mehr Bitflags, die die Suche nach dem type-Konstruktor beeinflussen. Wenn bindingAttr 0 ist, wird eine Suche nach öffentlichen Konstruktoren mit Beachtung der Groß-/Kleinschreibung durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args für die Suche und Bestimmung des type-Konstruktors verwendet. Wenn binder den Wert null aufweist, wird der Standardbinder verwendet.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

culture
CultureInfo

Kulturabhängige Informationen, die die Umwandlung von args in die für den type-Konstruktor deklarierten formalen Typen bestimmen. Wenn culture den Wert null hat, wird die CultureInfo des aktuellen Threads verwendet.

Gibt zurück

Object

Ein Verweis auf das neu erstellte Objekt.

Ausnahmen

type ist null.

type ist keine RuntimeType.

- oder - type ist ein offener generischer Typ (die ContainsGenericParameters-Eigenschaft gibt folglich true zurück).

type darf nicht TypeBuilder sein.

- oder - Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - Die Assembly mit type ist eine dynamische Assembly, die mit Save erstellt wurde.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

Das Aufrufen des Konstruktors löst eine Ausnahme aus.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Es wurde kein übereinstimmender Konstruktor gefunden.

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

type ist kein gültiger Typ.

Hinweise

Der aufzurufende Konstruktor muss die spezifischste Übereinstimmung mit der angegebenen Argumentliste unter den Einschränkungen des angegebenen Binder- und Bindungsattributes bereitstellen.

Die -Methode gibt null für die Nullable<T> -Instanzen ohne Wert zurück.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode für den Zugriff auf nicht öffentliche Typen und Member verwendet werden, wenn dem Aufrufer das Flag erteilt wurde ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess und der Berechtigungssatz der Assembly, die die nicht öffentlichen Typen und Member enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen für Reflektion.)

Um diese Funktion zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für

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

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

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args, cli::array <System::Object ^> ^ activationAttributes);
public static object? CreateInstance (Type type, object?[]? args, object?[]? activationAttributes);
public static object CreateInstance (Type type, object[] args, object[] activationAttributes);
static member CreateInstance : Type * obj[] * obj[] -> obj
Public Shared Function CreateInstance (type As Type, args As Object(), activationAttributes As Object()) As Object

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung beteiligt sein können. Dies ist üblicherweise ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die zum Aktivieren eines Remoteobjekts erforderliche URL angibt.

Der Parameter ist vom Client aktivierten Objekten zugeordnet. Die Clientaktivierung ist eine veraltete Technologie, die zum Zweck der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten, jedoch nicht für die Neuentwicklung empfohlen wird. Für verteilte Anwendungen sollte stattdessen Windows Communication Foundation verwendet werden.

Gibt zurück

Object

Ein Verweis auf das neu erstellte Objekt.

Ausnahmen

type ist null.

type ist keine RuntimeType.

- oder - type ist ein offener generischer Typ (die ContainsGenericParameters-Eigenschaft gibt folglich true zurück).

type darf nicht TypeBuilder sein.

- oder - Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObject abgeleitet.

- oder - Die Assembly mit type ist eine dynamische Assembly, die mit Save erstellt wurde.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

Das Aufrufen des Konstruktors löst eine Ausnahme aus.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Es wurde kein übereinstimmender öffentlicher Konstruktor gefunden.

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

type ist kein gültiger Typ.

Hinweise

Der aufzurufende Konstruktor muss zugänglich sein und die spezifischste Übereinstimmung mit der angegebenen Argumentliste bereitstellen.

Die -Methode null gibt für die Instanzen ohne Wert Nullable<T> zurück.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode verwendet werden, um auf nicht-ubische Typen zu zugreifen, wenn dem Aufrufer das -Flag erteilt wurde und der Berechtigungssatz der Assembly, die die nicht-kubischen Typen enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen für Reflektion.)

Um diese Funktion zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für

CreateInstance(String, String, Object[])

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des parameterlosen Konstruktors.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName, object?[]? activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, activationAttributes As Object()) As ObjectHandle

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ mit dem Namen typeName gesucht wird. Wenn assemblyNamenull ist, wird die derzeit ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs, von dem eine Instanz erstellt werden soll.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung beteiligt sein können. Dies ist üblicherweise ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die zum Aktivieren eines Remoteobjekts erforderliche URL angibt.

Der Parameter ist vom Client aktivierten Objekten zugeordnet. Die Clientaktivierung ist eine veraltete Technologie, die zum Zweck der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten, jedoch nicht für die Neuentwicklung empfohlen wird. Für verteilte Anwendungen sollte stattdessen Windows Communication Foundation verwendet werden.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf die neu erstellte Instanz entwrappt werden muss.

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmender öffentlicher Konstruktor gefunden.

typename wurde in assemblyName nicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObject abgeleitet.

- oder - activationAttributes ist kein UrlAttribute-

Array.

assemblyName ist keine gültige Assembly.

- oder - Die Common Language Runtime (CLR) Version 2.0 oder höher ist derzeit geladen, und assemblyName wurde für eine höhere CLR-Version als die derzeit geladene kompiliert. 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 unterschiedlichen Beweisen geladen.

- oder -

Der Assemblyname oder die Codebasis ist ungültig.

Bei dem Versuch einer Remoteaktivierung in einem in activationAttributes angegebenen Ziel ist ein Fehler aufgetreten.

Hinweise

Die -Methode gibt null für die Nullable<T> -Instanzen zurück.

Verwenden ObjectHandle.Unwrap Sie , um den Rückgabewert zu entpacken.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode verwendet werden, um nicht-kubische Typen zu erstellen, wenn dem Aufrufer das -Flag erteilt wurde und der Berechtigungssatz der nicht-ublic-Typen auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess ist. (Weitere Informationen finden Sie unter Überlegungen zur Sicherheit bei der Reflektion.)

Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher.

Gilt für

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 mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, bool ignoreCase, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ args, System::Globalization::CultureInfo ^ culture, cli::array <System::Object ^> ^ activationAttributes, System::Security::Policy::Evidence ^ securityInfo);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
[<System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")>]
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String, ignoreCase As Boolean, bindingAttr As BindingFlags, binder As Binder, args As Object(), culture As CultureInfo, activationAttributes As Object(), securityInfo As Evidence) As ObjectHandle

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ mit dem Namen typeName gesucht wird. Wenn assemblyNamenull ist, wird die derzeit ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs, von dem eine Instanz erstellt werden soll.

ignoreCase
Boolean

true, wenn bei der Suche nach typeName die Groß-/Kleinschreibung nicht beachtet werden soll; false, wenn bei der Suche die Groß-/Kleinschreibung beachtet werden soll.

bindingAttr
BindingFlags

Eine Kombination von 0 oder mehr Bitflags, die die Suche nach dem typeName-Konstruktor beeinflussen. Wenn bindingAttr 0 ist, wird eine Suche nach öffentlichen Konstruktoren mit Beachtung der Groß-/Kleinschreibung durchgeführt.

binder
Binder

Ein Objekt, das bindingAttr und args für die Suche und Bestimmung des typeName-Konstruktors verwendet. Wenn binder den Wert null aufweist, wird der Standardbinder verwendet.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

culture
CultureInfo

Kulturabhängige Informationen, die die Umwandlung von args in die für den typeName-Konstruktor deklarierten formalen Typen bestimmen. Wenn culture den Wert null hat, wird die CultureInfo des aktuellen Threads verwendet.

activationAttributes
Object[]

Ein Array mit einem oder mehreren Attributen, die an der Aktivierung beteiligt sein können. Dies ist üblicherweise ein Array, das ein einzelnes UrlAttribute-Objekt enthält, das die zum Aktivieren eines Remoteobjekts erforderliche URL angibt.

Der Parameter ist vom Client aktivierten Objekten zugeordnet. Die Clientaktivierung ist eine veraltete Technologie, die zum Zweck der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten, jedoch nicht für die Neuentwicklung empfohlen wird. Für verteilte Anwendungen sollte stattdessen Windows Communication Foundation verwendet werden.

securityInfo
Evidence

Informationen, die bei Entscheidungen bezüglich Sicherheitsrichtlinien und beim Gewähren von Codeberechtigungen herangezogen werden.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf die neu erstellte Instanz entwrappt werden muss.

Attribute

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmender Konstruktor gefunden.

typename wurde in assemblyName nicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

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

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - activationAttributes ist kein leeres Array, und der erstellte Typ wird nicht von MarshalByRefObject abgeleitet.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

assemblyName ist keine gültige Assembly.

- oder - Die Common Language Runtime (CLR) Version 2.0 oder höher ist derzeit geladen, und assemblyName wurde für eine höhere CLR-Version als die derzeit geladene kompiliert. 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 unterschiedlichen Beweisen geladen.

- oder -

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Die -Methode null gibt für die Instanzen ohne Wert Nullable<T> zurück.

Verwenden ObjectHandle.Unwrap Sie , um den Rückgabewert zu entpacken.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode verwendet werden, um nichtpublic-Typen und Member zu erstellen, wenn dem Aufrufer das -Flag erteilt wurde und der Berechtigungssatz der Assembly, die die nichtublic-Typen und Member enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess ist. (Weitere Informationen finden Sie unter Überlegungen zur Sicherheit bei der Reflektion.)

Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher.

Gilt für

CreateInstance(Type, Object[])

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

public:
 static System::Object ^ CreateInstance(Type ^ type, ... cli::array <System::Object ^> ^ args);
public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, params object[] args);
public static object? CreateInstance (Type type, params object?[]? args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj
Public Shared Function CreateInstance (type As Type, ParamArray args As Object()) As Object
Public Shared Function CreateInstance (type As Type, args As Object()) As Object

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

args
Object[]

Ein Array von Argumenten, das im Hinblick auf Anzahl, Reihenfolge und Typ mit den Parametern des aufzurufenden Konstruktors übereinstimmt. Wenn args ein leeres Array oder null ist, wird der (parameterlose) Konstruktor aufgerufen, der keine Parameter akzeptiert.

Gibt zurück

Object

Ein Verweis auf das neu erstellte Objekt.

Ausnahmen

type ist null.

type ist keine RuntimeType.

- oder - type ist ein offener generischer Typ (die ContainsGenericParameters-Eigenschaft gibt folglich true zurück).

type darf nicht TypeBuilder sein.

- oder - Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - Die Assembly mit type ist eine dynamische Assembly, die mit Save erstellt wurde.

- oder - Der am besten übereinstimmende Konstruktor args verfügt über varargs-Argumente.

Das Aufrufen des Konstruktors löst eine Ausnahme aus.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Hinweis: Fangen Sie in .NET für Windows Store-Apps oder der portablen Klassenbibliothekstattdessen die Basisklassenausnahme MemberAccessException ab.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Es wurde kein übereinstimmender öffentlicher Konstruktor gefunden.

Hinweis: Fangen Sie in .NET für Windows Store-Apps oder der portablen Klassenbibliothekstattdessen die Basisklassenausnahme MissingMemberException ab.

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

type ist kein gültiger Typ.

Beispiele

Das folgende Beispiel ruft die CreateInstance(Type, Object[]) -Methode auf, um ein -Objekt zu String erstellen. Sie ruft den Konstruktor auf, um eine Zeichenfolge zu instanziieren, die zehn Elemente aus einem String.String(Char[], Int32, Int32) Zeichenarray enthält, beginnend an der 14. 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
Module Example
   Public Sub Main()
      ' Initialize array of characters from a to z.
      Dim chars(25) As Char 
      For ctr As Short = 0 To 25
         chars(ctr) = ChrW(ctr + &h0061)
      Next 
      Dim obj As Object = Activator.CreateInstance(GetType(String),
                                                   { chars, 13, 10 })
      Console.WriteLine(obj)                                          
   End Sub
End Module
' The example displays the following output:
'       nopqrstuvw

Im folgenden Beispiel wird ein verstrichenes Array erstellt, dessen Elemente Argumente sind, die an einen Konstruktor übergeben String werden sollen. Im Beispiel wird dann jedes Array an die -Methode CreateInstance(Type, Object[]) übergeben, 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
Module Example
   Public Sub Main()
      Dim characters() As Char = { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c }
      Dim arguments()() As Object = new Object(2)() { New Object() { characters },
                                                      New Object() { characters, 1, 4 },
                                                      New Object() { characters(1), 20 } }

      For ctr As Integer = 0 To arguments.GetUpperBound(0)
         Dim args() As Object = arguments(ctr)
         Dim result As Object = Activator.CreateInstance(GetType(String), args)
         Console.WriteLine("{0}: {1}", result.GetType().Name, result)
      Next
   End Sub
End Module
' The example displays the following output:
'       String: abcdef
'       String: bcde
'       String: bbbbbbbbbbbbbbbbbbbb

Hinweise

Der aufzurufende Konstruktor muss zugänglich sein und die spezifischste Übereinstimmung mit der angegebenen Argumentliste bereitstellen.

Die -Methode gibt null für die Nullable<T> -Instanzen ohne Wert zurück.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode für den Zugriff auf nicht öffentliche Typen verwendet werden, wenn dem Aufrufer das Flag erteilt wurde ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess und der Berechtigungssatz der Assembly, die die nicht öffentlichen Typen enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen für Reflektion.)

Um diese Funktion zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für

CreateInstance(Type, Boolean)

Erstellt mit dem parameterlosen Konstruktor dieses Typs eine Instanz des angegebenen Typs.

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object? CreateInstance (Type type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj
Public Shared Function CreateInstance (type As Type, nonPublic As Boolean) As Object

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

nonPublic
Boolean

true, wenn ein öffentlicher oder nicht öffentlicher parameterloser Konstruktor als Entsprechung möglich ist; false, wenn nur ein öffentlicher parameterloser Konstruktor als Entsprechung möglich ist.

Gibt zurück

Object

Ein Verweis auf das neu erstellte Objekt.

Ausnahmen

type ist null.

type ist keine RuntimeType.

- oder - type ist ein offener generischer Typ (die ContainsGenericParameters-Eigenschaft gibt folglich true zurück).

type darf nicht TypeBuilder sein.

- oder - Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - Die Assembly mit type ist eine dynamische Assembly, die mit Save erstellt wurde.

Das Aufrufen des Konstruktors löst eine Ausnahme aus.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Es wurde kein übereinstimmender öffentlicher Konstruktor gefunden.

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

type ist kein gültiger Typ.

Hinweise

Die -Methode gibt null für die Nullable<T> -Instanzen zurück.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode für den Zugriff auf nicht öffentliche Typen und Member verwendet werden, wenn dem Aufrufer das Flag erteilt wurde ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess und der Berechtigungssatz der Assembly, die die nicht öffentlichen Typen und Member enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen für Reflektion.)

Um diese Funktion zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für

CreateInstance(String, String)

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des parameterlosen Konstruktors.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance (string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle

Parameter

assemblyName
String

Der Name der Assembly, in der der Typ mit dem Namen typeName gesucht wird. Wenn assemblyNamenull ist, wird die derzeit ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs, von dem eine Instanz erstellt werden soll.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf die neu erstellte Instanz entwrappt werden muss.

Ausnahmen

typeName ist null.

Es wurde kein übereinstimmender öffentlicher Konstruktor gefunden.

typename wurde in assemblyName nicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Sie können keine Instanz einer abstrakten Klasse erstellen, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

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

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von 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 ist derzeit geladen, und assemblyName wurde für eine höhere CLR-Version als die derzeit geladene kompiliert. 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 unterschiedlichen Beweisen geladen.

- oder -

Der Assemblyname oder die Codebasis ist ungültig.

Beispiele

Im folgenden Beispiel wird eine Klasse namens Person in einer Assembly mit dem Namen PersonInfo definiert. Beachten Sie, dass die Person -Klasse über zwei Konstruktoren verfügt, 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;
   }
}
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

Im folgenden Beispiel wird die CreateInstance(String, String) -Methode zum Instanziieren der Person -Klasse aufrufen. Sie erfordert einen Verweis auf PersonInfo.dll, der dem Projekt hinzugefügt werden soll. Da die CreateInstance(String, String) -Methode den Person parameterlosen Konstruktor der Klasse aufruft, weist das Beispiel der -Eigenschaft einen Wert Name 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
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Person = CType(handle.Unwrap(), Person)
      p.Name = "Samuel"
      Console.WriteLine(p)
   End Sub
End Module
' The example displays the following output:
'       Samuel

wird jedoch CreateInstance häufig aufgerufen, um einen Typ zu instanziieren, der Computergrenzen überschreitet oder zur Entwurfszeit nicht bekannt ist. In diesem Fall können Sie keinen Verweis auf die Assembly in das Projekt einschließen 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 der Reflektion, um der -Eigenschaft des Objekts einen Wert zuzuweisen Person und seinen Wert Name 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
Imports System.Reflection
Imports System.Runtime.Remoting

Module Example
   Public Sub Main()
      Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
      Dim p As Object = handle.Unwrap()
      Dim t As Type = p.GetType()
      Dim prop As PropertyInfo = t.GetProperty("Name")
      if Not prop Is Nothing Then
         prop.SetValue(p, "Samuel")
      End If   
      Dim method As MethodInfo = t.GetMethod("ToString")
      Dim retVal As Object = method.Invoke(p, Nothing) 
      If Not retVal Is Nothing Then
         Console.WriteLine(retVal)
      End If
   End Sub
End Module
' The example displays the following output:
'       Samuel

Hinweise

Die -Methode gibt null für die Nullable<T> -Instanzen zurück.

Verwenden Sie , um den Rückgabewert zu ObjectHandle.Unwrap entpacken.

assemblyName kann eine der folgenden Sein:

  • Der einfache Name einer Assembly ohne ihren Pfad oder ihre Dateierweiterung. Beispielsweise würden Sie für eine Assembly angeben, TypeExtensions deren Pfad und Name .\bin\TypeExtensions.dll sind.

  • 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 Suchen von Assemblysdurch die Runtime. Informationen zur Verwendung der Anwendungskonfigurationsdatei zum Definieren von Assemblyspeicherorten finden Sie unter Angeben des Speicherorts einer Assembly. Wenn assemblyName gefunden wird, wird es im Standardkontext geladen.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode verwendet werden, um nicht öffentliche Typen zu erstellen, wenn dem Aufrufer das Flag erteilt wurde ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess und der Berechtigungssatz der Assembly, die die nicht öffentlichen Typen enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ist. (Weitere Informationen finden Sie unter Sicherheitsüberlegungen für Reflektion.)

Um diese Funktion zu verwenden, sollte Ihre Anwendung auf die .NET Framework 3.5 oder höher ausgerichtet sein.

Gilt für

CreateInstance(ActivationContext, String[])

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

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext, cli::array <System::String ^> ^ activationCustomData);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext, string[] activationCustomData);
static member CreateInstance : ActivationContext * string[] -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext, activationCustomData As String()) As ObjectHandle

Parameter

activationContext
ActivationContext

Ein Aktivierungskontextobjekt, das das zu erstellende Objekt angibt.

activationCustomData
String[]

Ein Array von Unicode-Zeichenfolgen mit benutzerdefinierten Aktivierungsdaten.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf das neu erstellte Objekt entwrappt werden muss.

Hinweise

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

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 bereitstellt. Weitere Informationen finden Sie in den Ausführungen zur ApplicationSecurityManager-Klasse.

Siehe auch

Gilt für

CreateInstance(Type)

Erstellt mit dem parameterlosen Konstruktor dieses Typs eine Instanz des angegebenen Typs.

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
public static object? CreateInstance (Type type);
static member CreateInstance : Type -> obj
Public Shared Function CreateInstance (type As Type) As Object

Parameter

type
Type

Der Typ des zu erstellenden Objekts.

Gibt zurück

Object

Ein Verweis auf das neu erstellte Objekt.

Ausnahmen

type ist null.

type ist keine RuntimeType.

- oder - type ist ein offener generischer Typ (die ContainsGenericParameters-Eigenschaft gibt folglich true zurück).

type darf nicht TypeBuilder sein.

- oder - Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von Arrays dieser Typen wird nicht unterstützt.

- oder - Die Assembly mit type ist eine dynamische Assembly, die mit Save erstellt wurde.

Das Aufrufen des Konstruktors löst eine Ausnahme aus.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Hinweis: Fangen Sie in .NET für Windows Store Apps oder die portable Klassenbibliothekstattdessen die Basisklassenausnahme MemberAccessException ab.

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Es wurde kein übereinstimmender öffentlicher Konstruktor gefunden.

Hinweis: Fangen Sie in .NET für Windows Store Apps oder die portable Klassenbibliothekstattdessen die Basisklassenausnahme MissingMemberException ab.

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

type ist kein gültiger Typ.

Beispiele

Im folgenden Codebeispiel wird das Aufrufen der -Methode CreateInstance(Type) veranschaulicht. Instanzen mehrerer verschiedener Typen werden erstellt, und ihre Standardwerte werden angezeigt.

using namespace System;

ref class DynamicInstanceList
{
private:
    static String^ instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

public:
    static void Main()
    {
        array<String^>^ instances = instanceSpec->Split(';');
        Array^ instlist = Array::CreateInstance(Object::typeid, instances->Length);
        Object^ item;

        for (int i = 0; i < instances->Length; i++)
        {
            // create the object from the specification string
            Console::WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator::CreateInstance(Type::GetType(instances[i]));
            instlist->SetValue(item, i);
        }
        Console::WriteLine("\nObjects and their default values:\n");
        for each (Object^ o in instlist)
        {
            Console::WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o->GetType()->FullName, o->ToString(), o->GetHashCode());
        }
    }
};

int main()
{
    DynamicInstanceList::Main();
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
using System;

class DynamicInstanceList
{
    private static string instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

    public static void Main()
    {
        string[] instances = instanceSpec.Split(';');
        Array instlist = Array.CreateInstance(typeof(object), instances.Length);
        object item;
        for (int i = 0; i < instances.Length; i++)
        {
            // create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator.CreateInstance(Type.GetType(instances[i]));
            instlist.SetValue(item, i);
        }
        Console.WriteLine("\nObjects and their default values:\n");
        foreach (object o in instlist)
        {
            Console.WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o.GetType().FullName, o.ToString(), o.GetHashCode());
        }
    }
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
Class DynamicInstanceList
    Private Shared instanceSpec As String = "System.EventArgs;System.Random;" + _
        "System.Exception;System.Object;System.Version"

    Public Shared Sub Main()
        Dim instances() As String = instanceSpec.Split(";")
        Dim instlist As Array = Array.CreateInstance(GetType(Object), instances.Length)
        Dim item As Object

        For i As Integer = 0 To instances.Length -1
            ' create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances(i))
            item = Activator.CreateInstance(Type.GetType(instances(i)))
            instlist.SetValue(item, i)
        Next i
        Console.WriteLine(Environment.NewLine + "Objects and their default values:" + Environment.NewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + Environment.NewLine + "Value:    {1}" + _
                Environment.NewLine + "HashCode: {2}" + Environment.NewLine, _
                o.GetType().FullName, o.ToString(), o.GetHashCode())
        Next o
    End Sub
End Class

' This program will display output similar to the following:
'
' Creating instance of: System.EventArgs
' Creating instance of: System.Random
' Creating instance of: System.Exception
' Creating instance of: System.Object
' Creating instance of: System.Version
'
' Objects and their default values:
'
' Type:     System.EventArgs
' Value:    System.EventArgs
' HashCode: 46104728
'
' Type:     System.Random
' Value:    System.Random
' HashCode: 12289376
'
' Type:     System.Exception
' Value:    System.Exception: Exception of type 'System.Exception' was thrown.
' HashCode: 55530882
'
' Type:     System.Object
' Value:    System.Object
' HashCode: 30015890
'
' Type:     System.Version
' Value:    0.0
' HashCode: 1048575

Hinweise

Auf den aufzurufenden Konstruktor muss zugegriffen werden können.

Die -Methode gibt null für die Nullable<T> -Instanzen zurück.

Hinweis

Ab .NET Framework 2.0 Service Pack 1 kann diese Methode verwendet werden, um auf nicht-ubische Typen zu zugreifen, wenn dem Aufrufer das -Flag erteilt wurde und der Berechtigungssatz der Assembly, die die nicht-kubischen Typen enthält, auf den Berechtigungssatz des Aufrufers oder auf eine Teilmenge davon beschränkt ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess ist. (Weitere Informationen finden Sie unter Überlegungen zur Sicherheit bei der Reflektion.)

Um diese Funktionalität zu verwenden, sollte Ihre Anwendung auf .NET Framework 3.5 oder höher.

Gilt für

CreateInstance(ActivationContext)

Erstellt eine Instanz des Typs, der vom angegebenen ActivationContext-Objekt festgelegt wurde.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(ActivationContext ^ activationContext);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (ActivationContext activationContext);
static member CreateInstance : ActivationContext -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (activationContext As ActivationContext) As ObjectHandle

Parameter

activationContext
ActivationContext

Ein Aktivierungskontextobjekt, das das zu erstellende Objekt angibt.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf das neu erstellte Objekt entwrappt werden muss.

Hinweise

Die -Methode gibt null für die Nullable<T> -Instanzen zurück.

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

Der Aktivierungskontext wird während der manifestbasierten Aktivierung zum Einrichten der Domänenrichtlinie und zum Bereitstellen eines anwendungsbasierten Sicherheitsmodells verwendet. Die ActivationContext -Klasse enthält ein ApplicationIdentity -Objekt, das Zugriff auf das Anwendungsmanifest bietet. Weitere Informationen finden Sie in den Ausführungen zur ApplicationSecurityManager-Klasse.

Siehe auch

Gilt für

CreateInstance(AppDomain, String, String)

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assembly und des parameterlosen Konstruktors.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName);
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
[<System.Security.SecurityCritical>]
static member CreateInstance : AppDomain * string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle

Parameter

domain
AppDomain

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

assemblyName
String

Der Name der Assembly, in der der Typ mit dem Namen typeName gesucht wird. Wenn assemblyNamenull ist, wird die derzeit ausgeführte Assembly durchsucht.

typeName
String

Der vollqualifizierte Name des Typs, von dem eine Instanz erstellt werden soll.

Gibt zurück

ObjectHandle

Ein Handle, das für den Zugriff auf die neu erstellte Instanz entwrappt werden muss.

Attribute

Ausnahmen

typeName oder domain ist null.

Es wurde kein übereinstimmender öffentlicher Konstruktor gefunden.

typename wurde in assemblyName nicht gefunden.

assemblyName wurde nicht gefunden.

Der Aufrufer hat keine Berechtigung zum Aufrufen dieses Konstruktors.

Es kann keine Instanz eines abstrakten Typs erstellt werden.

- oder -

Dieser Member wurde durch einen Mechanismus mit später Bindung aufgerufen.

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

Der COM-Typ wurde nicht über GetTypeFromProgID oder GetTypeFromCLSID abgerufen.

Die Erstellung der Typen TypedReference, ArgIterator, Void und RuntimeArgumentHandle bzw. von 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 ist derzeit geladen, und assemblyName wurde für eine höhere CLR-Version als die derzeit geladene kompiliert. 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 unterschiedlichen Beweisen geladen.

- oder -

Der Assemblyname oder die Codebasis ist ungültig.

Hinweise

Die -Methode gibt null für die Nullable<T> -Instanzen zurück.

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

Verwenden ObjectHandle.Unwrap Sie , um den Rückgabewert zu entpacken.

Hinweis

Diese Methode verwendet , SecurityAction.LinkDemand um den unmittelbaren Aufrufer auf volle Vertrauenswürdigkeit zu setzen.

Gilt für

CreateInstance<T>()

Erstellt mit dem parameterlosen Konstruktor eine Instanz des Typs, der vom angegebenen generischen Typparameter festgelegt wurde.

public:
generic <typename T>
 static T CreateInstance();
public static T CreateInstance<T> ();
static member CreateInstance : unit -> 'T
Public Shared Function CreateInstance(Of T) () As T

Typparameter

T

Der zu erstellende Typ.

Gibt zurück

T

Ein Verweis auf das neu erstellte Objekt.

Ausnahmen

Eine Instanz einer abstrakten Klasse kann nicht erstellt werden, oder der Typ, der für T angegeben ist, besitzt keinen parameterlosen Konstruktor.

Hinweis: Fangen Sie in .NET für Windows Store-Apps oder der portablenKlassenbibliothek stattdessen die Basisklassenausnahme MissingMemberException ab.

Hinweise

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

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

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

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

Gilt für