Activator.CreateInstance Metoda

Definice

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

Přetížení

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

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

CreateInstance(String, String, Object[])

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru bez parametrů.

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

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

CreateInstance(Type, Object[])

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

CreateInstance(Type, Boolean)

Vytvoří instanci zadaného typu pomocí konstruktoru bez parametrů tohoto typu.

CreateInstance(String, String)

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru bez parametrů.

CreateInstance(ActivationContext, String[])

Vytvoří instanci typu, která je určena zadaným ActivationContext objektem a aktivována se zadanými vlastními aktivačními daty.

CreateInstance(Type)

Vytvoří instanci zadaného typu pomocí konstruktoru bez parametrů tohoto typu.

CreateInstance(ActivationContext)

Vytvoří instanci typu určeného zadaným ActivationContext objektem.

CreateInstance(AppDomain, String, String)

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně pomocí pojmenovaného sestavení a konstruktoru bez parametrů.

CreateInstance<T>()

Vytvoří instanci typu určeného parametrem zadaného obecného typu pomocí konstruktoru bez parametrů.

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

Upozornění

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.

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

domain
AppDomain

Doména, ve které je typ s názvem typeName vytvořen.

assemblyName
String

Název sestavení, ve kterém je typ s názvem typeName hledán. Pokud assemblyName je null, bude prohledáno spouštěné sestavení.

typeName
String

Plně kvalifikovaný název typu pro vytvoření instance.

ignoreCase
Boolean

true zadejte, že se při typeName hledání nerozlišují malá a velká písmena. false Chcete-li určit, že se při hledání rozlišují malá a velká písmena.

bindingAttr
BindingFlags

Kombinace nulových nebo více bitových příznaků, které ovlivňují hledání konstruktoru typeName . Pokud bindingAttr je hodnota nula, provede se vyhledávání veřejných konstruktorů s rozlišováním velkých a malých písmen.

binder
Binder

Objekt, který používá bindingAttr a args k vyhledání a identifikaci konstruktoru typeName . Pokud binder je null, použije se výchozí pořadač.

args
Object[]

Pole argumentů, které odpovídají číslu, pořadí a typu parametry konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

culture
CultureInfo

Informace specifické pro jazykovou verzi, které řídí převod args na formální typy deklarované pro typeName konstruktor. Pokud culture je null, použije se CultureInfo pro aktuální vlákno .

activationAttributes
Object[]

Pole jednoho nebo několika atributů, které se mohou podílet na aktivaci. Obvykle se jedná o pole, které obsahuje jeden UrlAttribute objekt. Určuje UrlAttribute adresu URL, která je nutná k aktivaci vzdáleného objektu.

securityAttributes
Evidence

Informace používané k rozhodování o zásadách zabezpečení a udělování oprávnění kódu

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance bez hodnoty.

Atributy

Výjimky

domain nebo typeName je null.

Nebyl nalezen žádný odpovídající konstruktor.

typename nebyla nalezena v assemblyName.

assemblyName nebyla nalezena.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Konstruktor, který byl vyvolán prostřednictvím reflexe, vyvolal výjimku.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

activationAttributes není prázdné pole a vytvářený typ se neodvozuje z MarshalByRefObject.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName byl zkompilován pro verzi MODULU CLR, která je novější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 používají clr verze 2.0.

Sestavení nebo modul byly zavedeny dvakrát se dvěma různými legitimacemi.

-nebo-

Název sestavení nebo základ kódu jsou neplatné.

Poznámky

Používá CreateInstance se, když hostitel potřebuje spustit kód v doméně aplikace, která má omezená oprávnění zabezpečení.

Slouží ObjectHandle.Unwrap k rozbalení návratové hodnoty.

Platí pro

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

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

domain
AppDomain

Doména, ve které je typ s názvem typeName vytvořen.

assemblyName
String

Název sestavení, ve kterém se hledá typ s názvem typeName . Pokud assemblyName je null, je prohledáno spouštění sestavení.

typeName
String

Plně kvalifikovaný název typu pro vytvoření instance.

ignoreCase
Boolean

true a určete, že se při hledání typeName nerozlišují malá a malá písmena. false Tím určíte, že se při hledání rozlišují malá a malá písmena.

bindingAttr
BindingFlags

Kombinace nulových nebo více bitových příznaků, které ovlivňují hledání konstruktoru typeName . Pokud bindingAttr je hodnota nula, provede se vyhledávání veřejných konstruktorů s rozlišováním velkých a malých písmen.

binder
Binder

Objekt, který používá bindingAttr a args k vyhledání a identifikaci konstruktoru typeName . Pokud binder je null, použije se výchozí pořadač.

args
Object[]

Pole argumentů, které odpovídají číslům, pořadí a typu parametrů konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

culture
CultureInfo

Informace specifické pro jazykovou verzi, které řídí donucování k formálním args typům deklarovaným typeName pro konstruktor. Pokud culture je null, použije se CultureInfo pro aktuální vlákno.

activationAttributes
Object[]

Pole jednoho nebo několika atributů, které se mohou podílet na aktivaci. Obvykle se jedná o pole, které obsahuje jeden UrlAttribute objekt, který určuje adresu URL, která je nutná k aktivaci vzdáleného objektu.

Tento parametr souvisí s objekty aktivovanými klientem. Aktivace klienta je starší technologie, která se zachovává kvůli zpětné kompatibilitě, ale nedoporučuje se pro nový vývoj. Distribuované aplikace by místo toho měly používat Windows Communication Foundation.

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance bez hodnoty.

Atributy

Výjimky

domain nebo typeName je null.

Nebyl nalezen žádný odpovídající konstruktor.

typename nebyla nalezena v assemblyName.

assemblyName nebyla nalezena.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Konstruktor, který byl vyvolán prostřednictvím reflexe, vyvolal výjimku.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

activationAttributes není prázdné pole a vytvářený typ se neodvozuje z MarshalByRefObject.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName byl zkompilován pro verzi MODULU CLR, která je novější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 používají clr verze 2.0.

Sestavení nebo modul byly zavedeny dvakrát se dvěma různými legitimacemi.

-nebo-

Název sestavení nebo základ kódu jsou neplatné.

Poznámky

Použijte CreateInstance , když hostitel potřebuje spustit kód v doméně aplikace s omezenými oprávněními zabezpečení.

Slouží ObjectHandle.Unwrap k rozbalení návratové hodnoty.

Platí pro

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

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

Vytvoří instanci typu, jejíž název je zadaný, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

assemblyName
String

Název sestavení, ve kterém se hledá typ s názvem typeName . Pokud assemblyName je null, je prohledáno spouštění sestavení.

typeName
String

Plně kvalifikovaný název typu pro vytvoření instance.

ignoreCase
Boolean

true a určete, že se při hledání typeName nerozlišují malá a malá písmena. false Tím určíte, že se při hledání rozlišují malá a malá písmena.

bindingAttr
BindingFlags

Kombinace nulových nebo více bitových příznaků, které ovlivňují hledání konstruktoru typeName . Pokud bindingAttr je hodnota nula, provede se vyhledávání veřejných konstruktorů s rozlišováním velkých a malých písmen.

binder
Binder

Objekt, který používá bindingAttr a args k vyhledání a identifikaci konstruktoru typeName . Pokud binder je null, použije se výchozí pořadač.

args
Object[]

Pole argumentů, které odpovídají číslům, pořadí a typu parametrů konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

culture
CultureInfo

Informace specifické pro jazykovou verzi, které řídí donucování k formálním args typům deklarovaným typeName pro konstruktor. Pokud culture je null, použije se CultureInfo pro aktuální vlákno.

activationAttributes
Object[]

Pole jednoho nebo několika atributů, které se mohou podílet na aktivaci. Obvykle se jedná o pole, které obsahuje jeden UrlAttribute objekt, který určuje adresu URL, která je nutná k aktivaci vzdáleného objektu.

Tento parametr souvisí s objekty aktivovanými klientem. Aktivace klienta je starší technologie, která se zachovává kvůli zpětné kompatibilitě, ale nedoporučuje se pro nový vývoj. Distribuované aplikace by místo toho měly používat Windows Communication Foundation.

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořené instanci nebo null pro Nullable<T> instance bez hodnoty.

Výjimky

typeName je null.

Nebyl nalezen žádný odpovídající konstruktor.

typename nebyl nalezen v assemblyNamesouboru .

assemblyName nebyl nalezen.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán s mechanismem pozdní vazby.

Konstruktor, který byl vyvolán prostřednictvím reflexe, vyvolal výjimku.

Typ modelu COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

activationAttributes není prázdné pole a vytvářený typ není odvozen od MarshalByRefObject.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načtený a assemblyName byl zkompilován pro verzi MODULUR, která je novější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 používají CLR verze 2.0.

Sestavení nebo modul byly zavedeny dvakrát se dvěma různými legitimacemi.

-nebo-

Název sestavení nebo základ kódu je neplatný.

Poznámky

Slouží ObjectHandle.Unwrap k rozbalení návratové hodnoty.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít k vytvoření neveřejných typů a členů, pokud byl volajícímu udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení, která obsahuje neveřejné typy a členy, omezena na sadu udělení volajícího nebo na její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

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

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

type
Type

Typ objektu, který se má vytvořit.

bindingAttr
BindingFlags

Kombinace nulových nebo více bitových příznaků, které ovlivňují hledání konstruktoru type . Pokud bindingAttr je hodnota nula, provede se vyhledávání veřejných konstruktorů s rozlišováním velkých a malých písmen.

binder
Binder

Objekt, který používá bindingAttr a args k vyhledání a identifikaci konstruktoru type . Pokud binder je null, použije se výchozí pořadač.

args
Object[]

Pole argumentů, které odpovídají číslům, pořadí a typu parametrů konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

culture
CultureInfo

Informace specifické pro jazykovou verzi, které řídí donucování k formálním args typům deklarovaným type pro konstruktor. Pokud culture je null, použije se CultureInfo pro aktuální vlákno.

activationAttributes
Object[]

Pole jednoho nebo několika atributů, které se mohou podílet na aktivaci. Obvykle se jedná o pole, které obsahuje jeden UrlAttribute objekt, který určuje adresu URL, která je nutná k aktivaci vzdáleného objektu.

Tento parametr souvisí s objekty aktivovanými klientem. Aktivace klienta je starší technologie, která se zachovává kvůli zpětné kompatibilitě, ale nedoporučuje se pro nový vývoj. Distribuované aplikace by místo toho měly používat Windows Communication Foundation.

Návraty

Odkaz na nově vytvořený objekt nebo null pro Nullable<T> instance bez hodnoty.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

type je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrátí true).

typenemůže být .TypeBuilder

-nebo-

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

activationAttributes není prázdné pole a vytvářený typ není odvozen od MarshalByRefObject.

-nebo-

Sestavení, které obsahuje type , je dynamické sestavení, které bylo vytvořeno pomocí Save.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

Volaný konstruktor vyvolá výjimku.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán s mechanismem pozdní vazby.

Typ modelu COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

Nebyl nalezen žádný odpovídající konstruktor.

type je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není zaregistrována.

type není platný typ.

Poznámky

Konstruktor, který má být vyvolán, musí poskytnout nejkonvlastnější shodu se zadaným seznamem argumentů pod omezeními zadaného pořadače a vazeb atributů.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným typům a členům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení neveřejných typů a členů omezena na sadu grantů volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

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

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

type
Type

Typ objektu, který chcete vytvořit.

bindingAttr
BindingFlags

Kombinace nulových nebo více bitových příznaků, které ovlivňují hledání konstruktoru type . Pokud bindingAttr je hodnota nula, provede se vyhledávání veřejných konstruktorů s rozlišováním velkých a malých písmen.

binder
Binder

Objekt, který používá bindingAttr a args k vyhledání a identifikaci konstruktoru type . Pokud binder je null, použije se výchozí pořadač.

args
Object[]

Pole argumentů, které odpovídají číslu, pořadí a typu parametry konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

culture
CultureInfo

Informace specifické pro jazykovou verzi, které řídí převod args na formální typy deklarované pro type konstruktor. Pokud culture je null, použije se CultureInfo pro aktuální vlákno .

Návraty

Odkaz na nově vytvořený objekt nebo null pro Nullable<T> instance bez hodnoty.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

type je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true).

typenemůže být .TypeBuilder

-nebo-

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

Sestavení, které obsahuje type , je dynamické sestavení, které bylo vytvořeno pomocí Save.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

Volaný konstruktor vyvolá výjimku.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

Nebyl nalezen žádný odpovídající konstruktor.

type je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není zaregistrována.

type není platný typ.

Poznámky

Konstruktor, který má být vyvolán, musí poskytovat nejkonsifičnější shodu se zadaným seznamem argumentů v rámci omezení zadaných vazeb a vazeb atributů.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným typům a členům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení obsahující neveřejné typy a členy omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

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

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

type
Type

Typ objektu, který chcete vytvořit.

args
Object[]

Pole argumentů, které odpovídají číslu, pořadí a typu parametry konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

activationAttributes
Object[]

Pole jednoho nebo několika atributů, které se mohou podílet na aktivaci. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL, která je nutná k aktivaci vzdáleného objektu.

Tento parametr souvisí s objekty aktivovanými klientem. Aktivace klienta je starší technologie, která se zachovává kvůli zpětné kompatibilitě, ale nedoporučuje se pro nový vývoj. Distribuované aplikace by místo toho měly používat Windows Communication Foundation.

Návraty

Odkaz na nově vytvořený objekt nebo null pro Nullable<T> instance bez hodnoty.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

type je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true).

typenemůže být .TypeBuilder

-nebo-

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

activationAttributes není prázdné pole a vytvářený typ se neodvozuje z MarshalByRefObject.

-nebo-

Sestavení, které obsahuje type , je dynamické sestavení, které bylo vytvořeno pomocí Save.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

Volaný konstruktor vyvolá výjimku.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

Nebyl nalezen žádný odpovídající veřejný konstruktor.

type je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není zaregistrována.

type není platný typ.

Poznámky

Konstruktor, který má být vyvolán, musí být přístupný a musí poskytovat nejkonktornější shodu se zadaným seznamem argumentů.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným typům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení obsahující neveřejné typy omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(String, String, Object[])

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru bez parametrů.

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

Parametry

assemblyName
String

Název sestavení, ve kterém je typ s názvem typeName hledán. Pokud assemblyName je null, bude prohledáno spouštěné sestavení.

typeName
String

Plně kvalifikovaný název typu pro vytvoření instance.

activationAttributes
Object[]

Pole jednoho nebo několika atributů, které se mohou podílet na aktivaci. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL, která je nutná k aktivaci vzdáleného objektu.

Tento parametr souvisí s objekty aktivovanými klientem. Aktivace klienta je starší technologie, která se zachovává kvůli zpětné kompatibilitě, ale nedoporučuje se pro nový vývoj. Distribuované aplikace by místo toho měly používat Windows Communication Foundation.

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance.

Výjimky

typeName je null.

Nebyl nalezen žádný odpovídající veřejný konstruktor.

typename nebyla nalezena v assemblyName.

assemblyName nebyla nalezena.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

activationAttributes není prázdné pole a vytvářený typ se neodvozuje z MarshalByRefObject.

-nebo-

activationAttributes není UrlAttribute

Pole.

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName byl zkompilován pro verzi MODULU CLR, která je novější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 používají clr verze 2.0.

Sestavení nebo modul byly zavedeny dvakrát se dvěma různými legitimacemi.

-nebo-

Název sestavení nebo základ kódu jsou neplatné.

Vyvolaný konstruktor vyvolá výjimku.

-nebo-

Při pokusu o vzdálenou aktivaci v cíli zadaném v activationAttributesdošlo k chybě.

Poznámky

Slouží ObjectHandle.Unwrap k rozbalení návratové hodnoty.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít k vytvoření neveřejných typů, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení neveřejných typů omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

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

Upozornění

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.

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

assemblyName
String

Název sestavení, ve kterém je typ s názvem typeName hledán. Pokud assemblyName je null, bude prohledáno spouštěné sestavení.

typeName
String

Plně kvalifikovaný název typu pro vytvoření instance.

ignoreCase
Boolean

true zadejte, že se při typeName hledání nerozlišují malá a velká písmena. false Chcete-li určit, že se při hledání rozlišují malá a velká písmena.

bindingAttr
BindingFlags

Kombinace nulových nebo více bitových příznaků, které ovlivňují hledání konstruktoru typeName . Pokud bindingAttr je hodnota nula, provede se vyhledávání veřejných konstruktorů s rozlišováním velkých a malých písmen.

binder
Binder

Objekt, který používá bindingAttr a args k vyhledání a identifikaci konstruktoru typeName . Pokud binder je null, použije se výchozí pořadač.

args
Object[]

Pole argumentů, které odpovídají číslu, pořadí a typu parametry konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

culture
CultureInfo

Informace specifické pro jazykovou verzi, které řídí převod args na formální typy deklarované pro typeName konstruktor. Pokud culture je null, použije se CultureInfo pro aktuální vlákno .

activationAttributes
Object[]

Pole jednoho nebo několika atributů, které se mohou podílet na aktivaci. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL, která je nutná k aktivaci vzdáleného objektu.

Tento parametr souvisí s objekty aktivovanými klientem. Aktivace klienta je starší technologie, která se zachovává kvůli zpětné kompatibilitě, ale nedoporučuje se pro nový vývoj. Distribuované aplikace by místo toho měly používat Windows Communication Foundation.

securityInfo
Evidence

Informace používané k rozhodování o zásadách zabezpečení a udělování oprávnění kódu

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance bez hodnoty.

Atributy

Výjimky

typeName je null.

Nebyl nalezen žádný odpovídající konstruktor.

typename nebyla nalezena v assemblyName.

assemblyName nebyla nalezena.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Konstruktor, který byl vyvolán prostřednictvím reflexe, vyvolal výjimku.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

activationAttributes není prázdné pole a vytvářený typ se neodvozuje z MarshalByRefObject.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName byl zkompilován pro verzi MODULU CLR, která je novější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 používají clr verze 2.0.

Sestavení nebo modul byly zavedeny dvakrát se dvěma různými legitimacemi.

-nebo-

Název sestavení nebo základ kódu jsou neplatné.

Poznámky

Slouží ObjectHandle.Unwrap k rozbalení návratové hodnoty.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít k vytvoření neveřejných typů a členů, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení obsahující neveřejné typy a členy omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(Type, Object[])

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.

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

Parametry

type
Type

Typ objektu, který chcete vytvořit.

args
Object[]

Pole argumentů, které odpovídají číslu, pořadí a typu parametry konstruktoru, který se má vyvolat. Pokud args je prázdné pole nebo null, je vyvolán konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů).

Návraty

Odkaz na nově vytvořený objekt nebo null pro Nullable<T> instance bez hodnoty.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

type je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true).

typenemůže být .TypeBuilder

-nebo-

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

Sestavení, které obsahuje type , je dynamické sestavení, které bylo vytvořeno pomocí Save.

-nebo-

Konstruktor, který nejlépe odpovídá args , má varargs argumenty.

Volaný konstruktor vyvolá výjimku.

Volající nemá oprávnění k volání tohoto konstruktoru.

Poznámka: V .NET pro aplikace pro Windows Store nebo v knihovně přenosných tříd místo toho zachyťte výjimku MemberAccessExceptionzákladní třídy .

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

Nebyl nalezen žádný odpovídající veřejný konstruktor.

Poznámka: V .NET pro aplikace pro Windows Store nebo v knihovně přenosných tříd místo toho zachyťte výjimku MissingMemberExceptionzákladní třídy .

type je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není zaregistrována.

type není platný typ.

Příklady

Následující příklad volá metodu CreateInstance(Type, Object[]) k vytvoření objektu String . Volá String.String(Char[], Int32, Int32) konstruktor k vytvoření instance řetězce, který obsahuje deset prvků z pole znaků počínaje čtrnáctou pozicí.

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
open System

// Initialize array of characters from a to z.
let chars = [| 'a' .. 'z' |]

let obj = Activator.CreateInstance(typeof<string>, chars[13..22])

printfn $"{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

Následující příklad vytvoří zubaté pole, jehož prvky jsou argumenty, které mají být předány konstruktoru String . Příklad pak předá každé pole metodě CreateInstance(Type, Object[]) k vyvolání příslušného konstruktoru řetězce.

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
open System

let chars = [| 'a' .. 'f' |]

let arguments =
    [| chars
       chars[1..4]
       Array.create 20 chars[1] |]

for args in arguments do
    let result =
        Activator.CreateInstance(typeof<string>, args)

    printfn $"{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

Poznámky

Konstruktor, který má být vyvolán, musí být přístupný a musí poskytovat nejkonktornější shodu se zadaným seznamem argumentů.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným typům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení obsahující neveřejné typy omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(Type, Boolean)

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

Vytvoří instanci zadaného typu pomocí konstruktoru bez parametrů tohoto typu.

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

Parametry

type
Type

Typ objektu, který chcete vytvořit.

nonPublic
Boolean

true Pokud veřejný nebo neveřejný konstruktor bez parametrů se může shodovat; false pokud se může shodovat pouze veřejný konstruktor bez parametrů.

Návraty

Odkaz na nově vytvořený objekt nebo null pro Nullable<T> instance.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

type je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true).

typenemůže být .TypeBuilder

-nebo-

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

Sestavení, které obsahuje type , je dynamické sestavení, které bylo vytvořeno pomocí Save.

Volaný konstruktor vyvolá výjimku.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

Nebyl nalezen žádný odpovídající veřejný konstruktor.

type je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není zaregistrována.

type není platný typ.

Poznámky

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným typům a členům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení obsahující neveřejné typy a členy omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(String, String)

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru bez parametrů.

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

Parametry

assemblyName
String

Název sestavení, ve kterém je typ s názvem typeName hledán. Pokud assemblyName je null, bude prohledáno spouštěné sestavení.

typeName
String

Plně kvalifikovaný název typu pro vytvoření instance.

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance.

Výjimky

typeName je null.

Nebyl nalezen žádný odpovídající veřejný konstruktor.

typename nebyla nalezena v assemblyName.

assemblyName nebyla nalezena.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Konstruktor, který byl vyvolán prostřednictvím reflexe, vyvolal výjimku.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName byl zkompilován pro verzi MODULU CLR, která je novější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 používají clr verze 2.0.

Sestavení nebo modul byly zavedeny dvakrát se dvěma různými legitimacemi.

-nebo-

Název sestavení nebo základ kódu jsou neplatné.

Příklady

Následující příklad definuje třídu s názvem Person v sestavení s názvem PersonInfo. Všimněte si Person , že třída má dva konstruktory, z nichž jeden je bez parametrů.

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;
   }
}
type Person(name) =
    member val Name = name with get, set

    override this.ToString() = this.Name

    new () = Person Unchecked.defaultof<string>
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

Následující příklad volá metodu CreateInstance(String, String) k vytvoření Person instance třídy . Vyžaduje přidání odkazu na PersonInfo.dll do projektu. Vzhledem k tomu, že CreateInstance(String, String) metoda volá Person konstruktor třídy bez parametrů, přiřadí příklad hodnotu k jeho Name vlastnosti.

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
open System

let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{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

Často se ale volá k vytvoření instance typu, CreateInstance který překračuje hranice počítače nebo který není v době návrhu známý. V tomto případě nelze zahrnout odkaz na sestavení v projektu a nelze provádět časná volání členů typu. Chcete-li toto omezení obejít, následující příklad používá metodu CreateInstance spolu s reflexí k přiřazení hodnoty k vlastnosti objektu PersonName a k zobrazení její hodnoty.

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
open System

let handle =
    Activator.CreateInstance("PersonInfo", "Person")

let p = handle.Unwrap()
let t = p.GetType()
let prop = t.GetProperty "Name"

if not (isNull prop) then
    prop.SetValue(p, "Samuel")

let method = t.GetMethod "ToString"
let retVal = method.Invoke(p, null)

if not (isNull retVal) then
    printfn $"{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

Poznámky

Slouží ObjectHandle.Unwrap k rozbalení návratové hodnoty.

assemblyName může být některý z následujících:

  • Jednoduchý název sestavení bez jeho cesty nebo přípony souboru. Například byste zadali TypeExtensions pro sestavení, jehož cesta a název jsou .\bin\TypeExtensions.dll.

  • Úplný název podepsaného sestavení, který se skládá z jeho jednoduchého názvu, verze, jazykové verze a tokenu veřejného klíče; Například "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".

Další informace o tom, jak modul CLR (Common Language Runtime) identifikuje a načítá sestavení, naleznete v tématu Jak modul runtime vyhledá sestavení. Informace o použití konfiguračního souboru aplikace k definování umístění sestavení naleznete v části Určení umístění sestavení. Pokud assemblyName se najde, načte se ve výchozím kontextu.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít k vytvoření neveřejných typů, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení obsahující neveřejné typy omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(ActivationContext, String[])

Vytvoří instanci typu, která je určena zadaným ActivationContext objektem a aktivována se zadanými vlastními aktivačními daty.

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

Parametry

activationContext
ActivationContext

Kontextový objekt aktivace, který určuje objekt, který se má vytvořit.

activationCustomData
String[]

Pole řetězců Unicode, které obsahují vlastní aktivační data.

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance.

Poznámky

K rozbalení návratové ObjectHandle.Unwrap hodnoty použijte metodu .

Kontext aktivace se používá při aktivaci na základě manifestu k nastavení zásad domény a k poskytování modelu zabezpečení založeného na aplikaci. Třída ActivationContext obsahuje ApplicationIdentity objekt, který poskytuje přístup k manifestu aplikace. Další informace najdete ve ApplicationSecurityManager třídě .

Viz také

Platí pro

CreateInstance(Type)

Source:
Activator.cs
Source:
Activator.cs
Source:
Activator.cs

Vytvoří instanci zadaného typu pomocí konstruktoru bez parametrů tohoto typu.

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

Parametry

type
Type

Typ objektu, který chcete vytvořit.

Návraty

Odkaz na nově vytvořený objekt nebo null pro Nullable<T> instance.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

type je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true).

typenemůže být .TypeBuilder

-nebo-

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

-nebo-

Sestavení, které obsahuje type , je dynamické sestavení, které bylo vytvořeno pomocí Save.

Volaný konstruktor vyvolá výjimku.

Volající nemá oprávnění k volání tohoto konstruktoru.

Poznámka: V .NET pro aplikace pro Windows Store nebo v knihovně přenosných tříd místo toho zachyťte výjimku MemberAccessExceptionzákladní třídy .

Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán mechanismem pozdní vazby.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

Nebyl nalezen žádný odpovídající veřejný konstruktor.

Poznámka: V .NET pro aplikace pro Windows Store nebo v knihovně přenosných tříd místo toho zachyťte výjimku MissingMemberExceptionzákladní třídy .

type je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není zaregistrována.

type není platný typ.

Příklady

Následující příklad kódu ukazuje, jak volat metodu CreateInstance(Type) . Vytvoří se instance několika různých typů a zobrazí se jejich výchozí hodnoty.

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
open System

let instanceSpec =
    "System.EventArgs;System.Random;System.Exception;System.Object;System.Version"

let instances = instanceSpec.Split ';'
let instlist = Array.zeroCreate instances.Length
let mutable item = obj ()

for i = 0 to instances.Length - 1 do
    // create the object from the specification string
    printfn $"Creating instance of: {instances.[i]}"
    item <- Activator.CreateInstance(Type.GetType instances.[i])
    instlist.[i] <- item

printfn "\nObjects and their default values:\n"

for o in instlist do
    printfn $"Type:     {o.GetType().FullName}\nValue:    {o}\nHashCode: {o.GetHashCode()}\n"


// 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

Poznámky

Konstruktor, který má být vyvolán, musí být přístupný.

Poznámka

Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít pro přístup k neveřejným typům, pokud volajícímu byl udělen ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess příznak a pokud je sada udělení sestavení obsahující neveřejné typy omezena na sadu udělení volajícího nebo její podmnožinu. (Viz Aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(ActivationContext)

Vytvoří instanci typu určeného zadaným ActivationContext objektem.

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

Parametry

activationContext
ActivationContext

Kontextový objekt aktivace, který určuje objekt, který se má vytvořit.

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance.

Poznámky

K rozbalení návratové ObjectHandle.Unwrap hodnoty použijte metodu .

Kontext aktivace se používá při aktivaci na základě manifestu k nastavení zásad domény a k poskytování modelu zabezpečení založeného na aplikaci. Třída ActivationContext obsahuje ApplicationIdentity objekt, který poskytuje přístup k manifestu aplikace. Další informace najdete ve ApplicationSecurityManager třídě .

Viz také

Platí pro

CreateInstance(AppDomain, String, String)

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně pomocí pojmenovaného sestavení a konstruktoru bez parametrů.

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

Parametry

domain
AppDomain

Vzdálená doména, ve které je vytvořen typ s názvem typeName .

assemblyName
String

Název sestavení, ve kterém je typ s názvem typeName hledán. Pokud assemblyName je null, bude prohledáno spouštěné sestavení.

typeName
String

Plně kvalifikovaný název typu pro vytvoření instance.

Návraty

Popisovač, který musí být rozbalený pro přístup k nově vytvořenému objektu nebo null pro Nullable<T> instance.

Atributy

Výjimky

typeName nebo domain je null.

Nebyl nalezen žádný odpovídající veřejný konstruktor.

typename nebyla nalezena v assemblyName.

assemblyName nebyla nalezena.

Volající nemá oprávnění k volání tohoto konstruktoru.

Nelze vytvořit instanci abstraktního typu.

-nebo-

Tento člen byl vyvolán pomocí mechanismu pozdní vazby.

Konstruktor, který byl vyvolán prostřednictvím reflexe, vyvolal výjimku.

Typ COM nebyl získán prostřednictvím nebo GetTypeFromProgIDGetTypeFromCLSID.

TypedReferenceVytváření typů , ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů není podporováno.

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName byl zkompilován pro verzi MODULU CLR, která je novější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 používají clr verze 2.0.

Sestavení nebo modul byly zavedeny dvakrát se dvěma různými legitimacemi.

-nebo-

Název sestavení nebo základ kódu jsou neplatné.

Poznámky

Používá CreateInstance se, když hostitel potřebuje spustit kód v doméně aplikace, která má omezená oprávnění zabezpečení.

Slouží ObjectHandle.Unwrap k rozbalení návratové hodnoty.

Platí pro

CreateInstance<T>()

Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs
Source:
Activator.RuntimeType.cs

Vytvoří instanci typu určeného parametrem zadaného obecného typu pomocí konstruktoru bez parametrů.

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

Parametry typu

T

Typ, který chcete vytvořit.

Návraty

T

Odkaz na nově vytvořený objekt nebo null pro Nullable<T> instance.

Výjimky

Nelze vytvořit instanci abstraktní třídy nebo typ zadaný pro T nemá konstruktor bez parametrů.

Poznámka: V .NET pro aplikace pro Windows Store nebo v knihovně přenosných tříd místo toho zachyťte výjimku MissingMemberExceptionzákladní třídy .

Poznámky

Obecnou CreateInstance<T>() metodu používají kompilátory k implementaci instance typů určených parametry typu. Například v následující obecné metodě implementace new T() (gcnew T() v jazyce C++) používá obecnou metodu CreateInstance<T>() .

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
let factory<'T when 'T : (new: unit -> 'T)> =
    new 'T()
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

Obecně neexistuje použití CreateInstance<T>() obecné metody v kódu aplikace, protože typ musí být znám v době kompilace. Pokud je typ známý v době kompilace, můžete použít normální syntaxi vytváření instancí (new operátor v jazyce C#, New v jazyce Visual Basic, gcnew v jazyce C++). Pokud typ není v době kompilace známý, můžete volat negenerické přetížení CreateInstance.

Neexistují žádné přetížení CreateInstance<T>() obecné metody, které přebírají seznamy argumentů, protože negenerické přetížení již poskytují překlad konstruktoru CreateInstance s pozdní vazbou.

Platí pro