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, jehož 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, jehož 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, jehož 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, jehož 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 určeného zadaným objektem ActivationContext a aktivuje 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 objektem ActivationContext. |
CreateInstance(AppDomain, String, String) |
Vytvoří instanci typu, jehož 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, jehož 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 vytvořen typ s názvem typeName
.
- assemblyName
- String
Název sestavení, kde je požadován typ pojmenovaný typeName
. Pokud je assemblyName
null
, bude prohledána spuštěná sestavení.
- typeName
- String
Plně kvalifikovaný název typu pro vytvoření instance.
- ignoreCase
- Boolean
true
určit, že hledání typeName
nerozlišuje malá a velká písmena; false
určit, že 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 je bindingAttr
nula, provede se vyhledávání veřejných konstruktorů s rozlišováním malých a velkých písmen.
- binder
- Binder
Objekt, který používá bindingAttr
a args
k vyhledání a identifikaci konstruktoru typeName
. Pokud je binder
null
, použije se výchozí pořadač.
- args
- Object[]
Pole argumentů, které se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
- culture
- CultureInfo
Informace specifické pro jazykovou verzi, které řídí převod args
na formální typy deklarované pro konstruktor typeName
. Pokud je culture
null
, použije se CultureInfo pro aktuální vlákno.
- activationAttributes
- Object[]
Pole jednoho nebo více atributů, které se mohou účastnit aktivace. Obvykle se jedná o pole, které obsahuje jeden objekt UrlAttribute. UrlAttribute určuje adresu URL, která se vyžaduje 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 v assemblyName
nalezen .
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 pomocí mechanismu pozdní vazby.
Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
activationAttributes
není prázdné pole a typ vytvořený není odvozen 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 pozdější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 všechny používají CLR verze 2.0.
Sestavení nebo modul byl načten dvakrát se dvěma různými důkazy.
-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í.
Pomocí ObjectHandle.Unwrap rozbalte vrácenou hodnotu.
Platí pro
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
Vytvoří instanci typu, jehož 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 vytvořen typ s názvem typeName
.
- assemblyName
- String
Název sestavení, kde je požadován typ pojmenovaný typeName
. Pokud je assemblyName
null
, bude prohledána spuštěná sestavení.
- typeName
- String
Plně kvalifikovaný název typu pro vytvoření instance.
- ignoreCase
- Boolean
true
určit, že hledání typeName
nerozlišuje malá a velká písmena; false
určit, že 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 je bindingAttr
nula, provede se vyhledávání veřejných konstruktorů s rozlišováním malých a velkých písmen.
- binder
- Binder
Objekt, který používá bindingAttr
a args
k vyhledání a identifikaci konstruktoru typeName
. Pokud je binder
null
, použije se výchozí pořadač.
- args
- Object[]
Pole argumentů, které se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
- culture
- CultureInfo
Informace specifické pro jazykovou verzi, které řídí převod args
na formální typy deklarované pro konstruktor typeName
. Pokud je culture
null
, použije se CultureInfo pro aktuální vlákno.
- activationAttributes
- Object[]
Pole jednoho nebo více atributů, které se mohou účastnit aktivace. 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
nebyl v assemblyName
nalezen .
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 pomocí mechanismu pozdní vazby.
Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
activationAttributes
není prázdné pole a typ vytvořený není odvozen 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 pozdější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 všechny používají CLR verze 2.0.
Sestavení nebo modul byl načten dvakrát se dvěma různými důkazy.
-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í.
Pomocí ObjectHandle.Unwrap rozbalte vrácenou hodnotu.
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, jehož 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í, kde je požadován typ pojmenovaný typeName
. Pokud je assemblyName
null
, bude prohledána spuštěná sestavení.
- typeName
- String
Plně kvalifikovaný název typu pro vytvoření instance.
- ignoreCase
- Boolean
true
určit, že hledání typeName
nerozlišuje malá a velká písmena; false
určit, že 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 je bindingAttr
nula, provede se vyhledávání veřejných konstruktorů s rozlišováním malých a velkých písmen.
- binder
- Binder
Objekt, který používá bindingAttr
a args
k vyhledání a identifikaci konstruktoru typeName
. Pokud je binder
null
, použije se výchozí pořadač.
- args
- Object[]
Pole argumentů, které se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
- culture
- CultureInfo
Informace specifické pro jazykovou verzi, které řídí převod args
na formální typy deklarované pro konstruktor typeName
. Pokud je culture
null
, použije se CultureInfo pro aktuální vlákno.
- activationAttributes
- Object[]
Pole jednoho nebo více atributů, které se mohou účastnit aktivace. 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 v assemblyName
nalezen .
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 pomocí mechanismu pozdní vazby.
Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
activationAttributes
není prázdné pole a typ vytvořený není odvozen 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 pozdější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 všechny používají CLR verze 2.0.
Sestavení nebo modul byl načten dvakrát se dvěma různými důkazy.
-nebo-
Název sestavení nebo základ kódu je neplatný.
Poznámky
Pomocí ObjectHandle.Unwrap rozbalte vrácenou hodnotu.
Poznámka
Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít k vytvoření nepublikovaných typů a členů, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení obsahující typy nepublikovaných a členů omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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 je bindingAttr
nula, provede se vyhledávání veřejných konstruktorů s rozlišováním malých a velkých písmen.
- binder
- Binder
Objekt, který používá bindingAttr
a args
k vyhledání a identifikaci konstruktoru type
. Pokud je binder
null
, použije se výchozí pořadač.
- args
- Object[]
Pole argumentů, které se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
- culture
- CultureInfo
Informace specifické pro jazykovou verzi, které řídí převod args
na formální typy deklarované pro konstruktor type
. Pokud je culture
null
, použije se CultureInfo pro aktuální vlákno.
- activationAttributes
- Object[]
Pole jednoho nebo více atributů, které se mohou účastnit aktivace. 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 instance Nullable<T> bez hodnoty.
Výjimky
type
je null
.
type
není RuntimeType
.
-nebo-
type
je otevřený obecný typ (to znamená ContainsGenericParameters vlastnost vrací true
).
type
nemůže být TypeBuilder.
-nebo-
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
activationAttributes
není prázdné pole a typ vytvořený není odvozen z MarshalByRefObject.
-nebo-
Sestavení obsahující type
je dynamické sestavení vytvořené 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 pomocí mechanismu pozdní vazby.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
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í registrována.
type
není platný typ.
Poznámky
Konstruktor, který má být vyvolán, musí poskytovat nejpřesně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 nepublikovým typům a členům, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada typů nepublikovaných a členů omezena na sadu grantů volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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 je bindingAttr
nula, provede se vyhledávání veřejných konstruktorů s rozlišováním malých a velkých písmen.
- binder
- Binder
Objekt, který používá bindingAttr
a args
k vyhledání a identifikaci konstruktoru type
. Pokud je binder
null
, použije se výchozí pořadač.
- args
- Object[]
Pole argumentů, které se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
- culture
- CultureInfo
Informace specifické pro jazykovou verzi, které řídí převod args
na formální typy deklarované pro konstruktor type
. Pokud je culture
null
, použije se CultureInfo pro aktuální vlákno.
Návraty
Odkaz na nově vytvořený objekt nebo null
pro instance Nullable<T> bez hodnoty.
Výjimky
type
je null
.
type
není RuntimeType
.
-nebo-
type
je otevřený obecný typ (to znamená ContainsGenericParameters vlastnost vrací true
).
type
nemůže být TypeBuilder.
-nebo-
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
Sestavení obsahující type
je dynamické sestavení vytvořené 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 pomocí mechanismu pozdní vazby.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
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í registrována.
type
není platný typ.
Poznámky
Konstruktor, který má být vyvolán, musí poskytovat nejpřesně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 nepublikovým typům a členům, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje nepublikované typy a členy, omezena na grant volající sadu nebo podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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é se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
- activationAttributes
- Object[]
Pole jednoho nebo více atributů, které se mohou účastnit aktivace. 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 instance Nullable<T> bez hodnoty.
Výjimky
type
je null
.
type
není RuntimeType
.
-nebo-
type
je otevřený obecný typ (to znamená ContainsGenericParameters vlastnost vrací true
).
type
nemůže být TypeBuilder.
-nebo-
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
activationAttributes
není prázdné pole a typ vytvořený není odvozen z MarshalByRefObject.
-nebo-
Sestavení obsahující type
je dynamické sestavení vytvořené 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 pomocí mechanismu pozdní vazby.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
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í registrována.
type
není platný typ.
Poznámky
Konstruktor, který má být vyvolán, musí být přístupný a musí poskytovat nejvýkonně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 nepublikovým typům, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje typy nepublikovaných, omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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í, kde je požadován typ pojmenovaný typeName
. Pokud je assemblyName
null
, bude prohledána spuštěná sestavení.
- typeName
- String
Plně kvalifikovaný název typu pro vytvoření instance.
- activationAttributes
- Object[]
Pole jednoho nebo více atributů, které se mohou účastnit aktivace. 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.
Výjimky
typeName
je null
.
Nebyl nalezen žádný odpovídající veřejný konstruktor.
typeName
nebyl v assemblyName
nalezen .
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 pomocí mechanismu pozdní vazby.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
activationAttributes
není prázdné pole a typ vytvořený není odvozen 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 pozdější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 všechny používají CLR verze 2.0.
Sestavení nebo modul byl načten dvakrát se dvěma různými důkazy.
-nebo-
Název sestavení nebo základ kódu je 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
Pomocí ObjectHandle.Unwrap rozbalte vrácenou hodnotu.
Poznámka
Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít k vytvoření nepublikovaných typů, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení nepublikovaných typů omezena na sadu grantů volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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, jehož 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í, kde je požadován typ pojmenovaný typeName
. Pokud je assemblyName
null
, bude prohledána spuštěná sestavení.
- typeName
- String
Plně kvalifikovaný název typu pro vytvoření instance.
- ignoreCase
- Boolean
true
určit, že hledání typeName
nerozlišuje malá a velká písmena; false
určit, že 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 je bindingAttr
nula, provede se vyhledávání veřejných konstruktorů s rozlišováním malých a velkých písmen.
- binder
- Binder
Objekt, který používá bindingAttr
a args
k vyhledání a identifikaci konstruktoru typeName
. Pokud je binder
null
, použije se výchozí pořadač.
- args
- Object[]
Pole argumentů, které se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
- culture
- CultureInfo
Informace specifické pro jazykovou verzi, které řídí převod args
na formální typy deklarované pro konstruktor typeName
. Pokud je culture
null
, použije se CultureInfo pro aktuální vlákno.
- activationAttributes
- Object[]
Pole jednoho nebo více atributů, které se mohou účastnit aktivace. 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.
- securityInfo
- 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
typeName
je null
.
Nebyl nalezen žádný odpovídající konstruktor.
typeName
nebyl v assemblyName
nalezen .
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 pomocí mechanismu pozdní vazby.
Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
activationAttributes
není prázdné pole a typ vytvořený není odvozen 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 pozdější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 všechny používají CLR verze 2.0.
Sestavení nebo modul byl načten dvakrát se dvěma různými důkazy.
-nebo-
Název sestavení nebo základ kódu je neplatný.
Poznámky
Pomocí ObjectHandle.Unwrap rozbalte vrácenou hodnotu.
Poznámka
Počínaje rozhraním .NET Framework 2.0 lze tuto metodu použít k vytvoření nepublikovaných typů a členů, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení obsahující typy nepublikovaných a členů omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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é se shodují s číslem, pořadím a zadáním parametrů konstruktoru, které se mají vyvolat. Pokud args
je prázdné pole nebo null
, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) se vyvolá.
Návraty
Odkaz na nově vytvořený objekt nebo null
pro instance Nullable<T> bez hodnoty.
Výjimky
type
je null
.
type
není RuntimeType
.
-nebo-
type
je otevřený obecný typ (to znamená ContainsGenericParameters vlastnost vrací true
).
type
nemůže být TypeBuilder.
-nebo-
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
Sestavení obsahující type
je dynamické sestavení vytvořené 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 přenosné knihovny tříd, zachyťte výjimku základní třídy, MemberAccessException, místo toho.
Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán pomocí mechanismu pozdní vazby.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Nebyl nalezen žádný odpovídající veřejný konstruktor.
Poznámka: V .NET pro aplikace pro Windows Store nebo přenosné knihovny tříd, zachyťte výjimku základní třídy, MissingMemberException, místo toho.
type
je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není registrována.
type
není platný typ.
Příklady
Následující příklad volá CreateInstance(Type, Object[]) metodu pro vytvoření String objektu. Volá String.String(Char[], Int32, Int32) konstruktor pro 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ří jagged pole, jehož prvky jsou argumenty, které mají být předány String konstruktoru. Příklad pak předá každé pole CreateInstance(Type, Object[]) metodu vyvolá příslušný konstruktor ř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 nejvýkonně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 nepublikovým typům, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje typy nepublikovaných, omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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 se veřejný nebo nepublikový konstruktor bez parametrů 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 instance Nullable<T>.
Výjimky
type
je null
.
type
není RuntimeType
.
-nebo-
type
je otevřený obecný typ (to znamená ContainsGenericParameters vlastnost vrací true
).
type
nemůže být TypeBuilder.
-nebo-
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
Sestavení obsahující type
je dynamické sestavení vytvořené 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 pomocí mechanismu pozdní vazby.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
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í registrová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 nepublikovým typům a členům, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje nepublikované typy a členy, omezena na grant volající sadu nebo podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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í, kde je požadován typ pojmenovaný typeName
. Pokud je assemblyName
null
, bude prohledána spuš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
nebyl v assemblyName
nalezen .
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 pomocí mechanismu pozdní vazby.
Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
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 pozdější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 všechny používají CLR verze 2.0.
Sestavení nebo modul byl načten dvakrát se dvěma různými důkazy.
-nebo-
Název sestavení nebo základ kódu je 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, že třída Person
má dva konstruktory, z nichž jedna 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í instance Person
třídy. Vyžaduje, aby byl do projektu přidán odkaz na PersonInfo.dll. Protože CreateInstance(String, String) metoda volá konstruktor bez parametrů třídy Person
, příklad přiřadí hodnotu Name
vlastnost.
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
CreateInstance se však často volá k vytvoření instance typu, který překračuje hranice stroje nebo který není v době návrhu známý. V tomto případě nelze zahrnout odkaz na sestavení v projektu a nelze provést časná volání členů typu. Pokud chcete toto omezení obejít, následující příklad používá metodu CreateInstance spolu s reflexí k přiřazení hodnoty Person
objektu Name
vlastnost a k zobrazení jeho 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
Pomocí ObjectHandle.Unwrap rozbalte vrácenou hodnotu.
assemblyName
může být následující:
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čte sestavení, najdete 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 tématu Určení umístění sestavení. Pokud se assemblyName
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í nepublikovaných typů, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení obsahující typy neveřejných dat omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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 určeného zadaným objektem ActivationContext a aktivuje 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é hodnoty použijte metodu ObjectHandle.Unwrap.
Kontext aktivace se používá při aktivaci na základě manifestu k nastavení zásad domény a k poskytnutí modelu zabezpečení založeného na aplikaci. Třída ActivationContext obsahuje objekt ApplicationIdentity, který poskytuje přístup k manifestu aplikace. Další informace najdete v 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 instance Nullable<T>.
Výjimky
type
je null
.
type
není RuntimeType
.
-nebo-
type
je otevřený obecný typ (to znamená ContainsGenericParameters vlastnost vrací true
).
type
nemůže být TypeBuilder.
-nebo-
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
-nebo-
Sestavení obsahující type
je dynamické sestavení vytvořené 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 přenosné knihovny tříd, zachyťte výjimku základní třídy, MemberAccessException, místo toho.
Nelze vytvořit instanci abstraktní třídy nebo byl tento člen vyvolán pomocí mechanismu pozdní vazby.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Nebyl nalezen žádný odpovídající veřejný konstruktor.
Poznámka: V .NET pro aplikace pro Windows Store nebo přenosné knihovny tříd, zachyťte výjimku základní třídy, MissingMemberException, místo toho.
type
je objekt COM, ale identifikátor třídy použitý k získání typu je neplatný nebo identifikovaná třída není registrována.
type
není platný typ.
Příklady
Následující příklad kódu ukazuje, jak volat CreateInstance(Type) metoda. 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 nepublikovým typům, pokud byl volající udělen ReflectionPermission s příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje typy nepublikovaných, omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz aspekty zabezpečení pro reflexi.) Pokud chcete tuto funkci použít, 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 objektem ActivationContext.
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é hodnoty použijte metodu ObjectHandle.Unwrap.
Kontext aktivace se používá při aktivaci na základě manifestu k nastavení zásad domény a k poskytnutí modelu zabezpečení založeného na aplikaci. Třída ActivationContext obsahuje objekt ApplicationIdentity, který poskytuje přístup k manifestu aplikace. Další informace najdete v ApplicationSecurityManager třídě.
Viz také
Platí pro
CreateInstance(AppDomain, String, String)
Vytvoří instanci typu, jehož 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í, kde je požadován typ pojmenovaný typeName
. Pokud je assemblyName
null
, bude prohledána spuš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
nebyl v assemblyName
nalezen .
assemblyName
nebyl nalezen.
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 reflexí, vyvolal výjimku.
Typ MODELU COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.
Vytváření typů TypedReference, ArgIterator, Voida RuntimeArgumentHandle nebo polí těchto typů se nepodporuje.
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 pozdější než aktuálně načtená verze. Všimněte si, že rozhraní .NET Framework verze 2.0, 3.0 a 3.5 všechny používají CLR verze 2.0.
Sestavení nebo modul byl načten dvakrát se dvěma různými důkazy.
-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í.
Pomocí ObjectHandle.Unwrap rozbalte vrácenou hodnotu.
Platí pro
CreateInstance<T>()
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
- Zdroj:
- Activator.RuntimeType.cs
Vytvoří instanci typu určeného zadaným parametrem 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 instance Nullable<T>.
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 přenosné knihovny tříd, zachyťte výjimku základní třídy, MissingMemberException, místo toho.
Poznámky
CreateInstance<T>() obecná metoda se používá kompilátory k implementaci instance typů určených parametry typu. Například v následující obecné metodě používá implementace new T()
(gcnew T()
v jazyce C++) CreateInstance<T>() obecnou metodu.
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ě platí, že neexistuje použití pro CreateInstance<T>() obecnou metodu v kódu aplikace, protože typ musí být znám v době kompilace. Pokud je typ známý v době kompilace, lze 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í znám v době kompilace, můžete volat ne generické přetížení CreateInstance.
Neexistují žádné přetížení CreateInstance<T>() obecné metody, které přebírají seznamy argumentů, protože ne generické přetížení CreateInstance již poskytují překlad konstruktoru s pozdní vazbou.