Sdílet prostřednictvím


Activator.CreateInstance Metoda

Definice

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

Přetížení

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

Vytvoří instanci typu, 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 assemblyNamenull, 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 bindernull, 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 culturenull, 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 assemblyNamenalezen .

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 assemblyNamenull, 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 bindernull, 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 culturenull, 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 assemblyNamenalezen .

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 assemblyNamenull, 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 bindernull, 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 culturenull, 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 assemblyNamenalezen .

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 bindernull, 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 culturenull, 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 bindernull, 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 culturenull, 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 assemblyNamenull, 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 assemblyNamenalezen .

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 activationAttributesdoš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 assemblyNamenull, 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 bindernull, 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 culturenull, 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 assemblyNamenalezen .

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 assemblyNamenull, 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 assemblyNamenalezen .

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 assemblyNamenull, 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 assemblyNamenalezen .

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

T

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.

Platí pro