Activator.CreateInstance Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 zadaný, 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 zadaný, 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 pomocí zadaných vlastních aktivačních dat. |
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 zadaným parametrem 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é se typ s názvem typeName
vytvoří.
- 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. Určuje UrlAttribute adresu URL, která je potřebná k aktivaci vzdáleného objektu.
- securityAttributes
- Evidence
Informace používané k rozhodování o zásadách zabezpečení a udělení oprávnění ke 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
nebyl nalezen v assemblyName
souboru .
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
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(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é se typ s názvem typeName
vytvoří.
- 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.
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
nebyl nalezen v assemblyName
souboru .
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
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(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
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);
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 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.
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
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, BindingFlags, Binder, Object[], CultureInfo, Object[])
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- 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ý 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 .
- 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
.
type
není .RuntimeType
-nebo-
type
je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true
).
type
nemůž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í 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í 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)
- Zdroj:
- Activator.cs
- Zdroj:
- Activator.cs
- Zdroj:
- 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
.
type
není .RuntimeType
-nebo-
type
je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true
).
type
nemůž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[])
- Zdroj:
- Activator.cs
- Zdroj:
- Activator.cs
- Zdroj:
- 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
.
type
není .RuntimeType
-nebo-
type
je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true
).
type
nemůž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[])
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- 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 activationAttributes
doš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[])
- Zdroj:
- Activator.cs
- Zdroj:
- Activator.cs
- Zdroj:
- 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
.
type
není .RuntimeType
-nebo-
type
je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true
).
type
nemůž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)
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- 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
.
type
není .RuntimeType
-nebo-
type
je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true
).
type
nemůž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)
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- 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 Person
Name
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)
- Zdroj:
- Activator.cs
- Zdroj:
- Activator.cs
- Zdroj:
- 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
.
type
není .RuntimeType
-nebo-
type
je otevřený obecný typ (to znamená, ContainsGenericParameters že vlastnost vrací true
).
type
nemůž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>()
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- 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
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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro