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í

Name Description
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 ActivationContext objektem 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 ActivationContext objektem.

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 https://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 https://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 https://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 název typeName typu.

assemblyName
String

Název sestavení, kde je požadován název typeName typu. Je-li assemblyNamenulltomu tak, bude spuštěné sestavení prohledáno.

typeName
String

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

ignoreCase
Boolean

true chcete-li určit, že hledání typeName nerozlišuje malá a velká písmena; false chcete-li určit, že hledání je citlivé na malá a velká písmena.

bindingAttr
BindingFlags

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

binder
Binder

Objekt, který používá bindingAttr a args hledá a identifikuje typeName konstruktor. 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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

culture
CultureInfo

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

activationAttributes
Object[]

Pole jednoho nebo více atributů, které se mohou účastnit aktivace. Obvykle se jedná o pole, které obsahuje jeden UrlAttribute objekt. Určuje UrlAttribute 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 nalezen v assemblyNamesouboru .

assemblyName nebyl nalezen.

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

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

Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.

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

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

-nebo-

activationAttributes není prázdné pole a typ, který je 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 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žívá se CreateInstance , když hostitel potřebuje spustit kód v doméně aplikace s omezenými oprávněními zabezpečení.

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

Platí pro

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

Vytvoří instanci typu, 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 název typeName typu.

assemblyName
String

Název sestavení, kde je požadován název typeName typu. Je-li assemblyNamenulltomu tak, bude spuštěné sestavení prohledáno.

typeName
String

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

ignoreCase
Boolean

true chcete-li určit, že hledání typeName nerozlišuje malá a velká písmena; false chcete-li určit, že hledání je citlivé na malá a velká písmena.

bindingAttr
BindingFlags

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

binder
Binder

Objekt, který používá bindingAttr a args hledá a identifikuje typeName konstruktor. 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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

culture
CultureInfo

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

activationAttributes
Object[]

Pole jednoho nebo více atributů, které se mohou účastnit aktivace. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL potřebnou k aktivaci vzdáleného objektu.

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

Návraty

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

Atributy

Výjimky

domain nebo typeName je null.

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

typeName nebyl nalezen v assemblyNamesouboru .

assemblyName nebyl nalezen.

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

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

Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.

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

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

-nebo-

activationAttributes není prázdné pole a typ, který je 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 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žívá se CreateInstance , když hostitel potřebuje spustit kód v doméně aplikace s omezenými oprávněními zabezpečení.

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

Platí pro

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

Zdroj:
Activator.RuntimeType.cs
Zdroj:
Activator.RuntimeType.cs
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")]
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);
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.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")>]
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle
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 název typeName typu. Je-li assemblyNamenulltomu tak, bude spuštěné sestavení prohledáno.

typeName
String

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

ignoreCase
Boolean

true chcete-li určit, že hledání typeName nerozlišuje malá a velká písmena; false chcete-li určit, že hledání je citlivé na malá a velká písmena.

bindingAttr
BindingFlags

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

binder
Binder

Objekt, který používá bindingAttr a args hledá a identifikuje typeName konstruktor. 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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

culture
CultureInfo

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

activationAttributes
Object[]

Pole jednoho nebo více atributů, které se mohou účastnit aktivace. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL potřebnou 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.

Atributy

Výjimky

typeName je null.

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

typeName nebyl nalezen v assemblyNamesouboru .

assemblyName nebyl nalezen.

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

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

Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.

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

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

-nebo-

activationAttributes není prázdné pole a typ, který je 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 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

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

V .NET Core 3.0 a novějších verzích jsou zatížení sestavení aktivovaná tímto rozhraním API ovlivněna aktuální hodnotou AssemblyLoadContext.CurrentContextualReflectionContext.

Poznámka

Tuto metodu lze použít k vytvoření neveřejných typů a členů, pokud volající byl udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sady sestavení, která obsahuje nepublikované typy a členy je omezena na grant volající sadu nebo podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .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
Zdroj:
Activator.RuntimeType.cs
Zdroj:
Activator.RuntimeType.cs

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

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

Parametry

type
Type

Typ objektu, který chcete vytvořit.

bindingAttr
BindingFlags

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

binder
Binder

Objekt, který používá bindingAttr a args hledá a identifikuje type konstruktor. 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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

culture
CultureInfo

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

activationAttributes
Object[]

Pole jednoho nebo více atributů, které se mohou účastnit aktivace. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL potřebnou 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 instance Nullable<T> bez hodnoty.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

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

typenemůže být .TypeBuilder

-nebo-

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

-nebo-

activationAttributes není prázdné pole a typ, který je vytvořen, není odvozen z MarshalByRefObject.

-nebo-

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

-nebo-

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

Volaný konstruktor vyvolá výjimku.

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

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

Typ 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

Tuto metodu lze použít pro přístup k nepublikovým typům a členům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení typů nepublikovaných a členů omezena na udělení volající sady nebo podmnožiny z ní. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Platí pro

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

Zdroj:
Activator.cs
Zdroj:
Activator.cs
Zdroj:
Activator.cs
Zdroj:
Activator.cs
Zdroj:
Activator.cs

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

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

Parametry

type
Type

Typ objektu, který chcete vytvořit.

bindingAttr
BindingFlags

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

binder
Binder

Objekt, který používá bindingAttr a args hledá a identifikuje type konstruktor. 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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

culture
CultureInfo

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

Návraty

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

Výjimky

type je null.

typenení .RuntimeType

-nebo-

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

typenemůže být .TypeBuilder

-nebo-

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

-nebo-

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

-nebo-

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

Volaný konstruktor vyvolá výjimku.

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

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

Typ 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

Tuto metodu lze použít pro přístup k nepublikovým typům a členům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sady sestavení, která obsahuje nepublikované typy a členy je omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Platí pro

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

Zdroj:
Activator.cs
Zdroj:
Activator.cs
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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

activationAttributes
Object[]

Pole jednoho nebo více atributů, které se mohou účastnit aktivace. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL potřebnou 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 instance Nullable<T> bez hodnoty.

Výjimky

type je null.

typenení .RuntimeType

-nebo-

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

typenemůže být .TypeBuilder

-nebo-

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

-nebo-

activationAttributes není prázdné pole a typ, který je vytvořen, není odvozen z MarshalByRefObject.

-nebo-

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

-nebo-

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

Volaný konstruktor vyvolá výjimku.

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

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

Typ 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

Tuto metodu lze použít pro přístup k nepublikovým typům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje nepublikové typy, omezena na grant volající sady nebo na její podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .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
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")]
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);
public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName, object[] activationAttributes);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")>]
static member CreateInstance : string * string * obj[] -> System.Runtime.Remoting.ObjectHandle
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 název typeName typu. Je-li assemblyNamenulltomu tak, bude spuštěné sestavení prohledáno.

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 obsahující jeden UrlAttribute objekt, který určuje adresu URL potřebnou 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.

Atributy

Výjimky

typeName je null.

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

typeName nebyl nalezen v assemblyNamesouboru .

assemblyName nebyl nalezen.

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

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

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

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

-nebo-

activationAttributes není prázdné pole a typ, který je 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 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 activationAttributessadě .

Poznámky

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

V .NET Core 3.0 a novějších verzích jsou zatížení sestavení aktivovaná tímto rozhraním API ovlivněna aktuální hodnotou AssemblyLoadContext.CurrentContextualReflectionContext.

Poznámka

Tuto metodu lze použít k vytvoření nepublikovaných typů, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení typů nepublikované omezena na sadu grantů volajícího nebo na její podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .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 https://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 https://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 https://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 název typeName typu. Je-li assemblyNamenulltomu tak, bude spuštěné sestavení prohledáno.

typeName
String

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

ignoreCase
Boolean

true chcete-li určit, že hledání typeName nerozlišuje malá a velká písmena; false chcete-li určit, že hledání je citlivé na malá a velká písmena.

bindingAttr
BindingFlags

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

binder
Binder

Objekt, který používá bindingAttr a args hledá a identifikuje typeName konstruktor. 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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

culture
CultureInfo

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

activationAttributes
Object[]

Pole jednoho nebo více atributů, které se mohou účastnit aktivace. Obvykle se jedná o pole obsahující jeden UrlAttribute objekt, který určuje adresu URL potřebnou 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 nalezen v assemblyNamesouboru .

assemblyName nebyl nalezen.

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

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

Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.

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

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

-nebo-

activationAttributes není prázdné pole a typ, který je 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 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

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

Poznámka

Tuto metodu lze použít k vytvoření neveřejných typů a členů, pokud volající byl udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sady sestavení, která obsahuje nepublikované typy a členy je omezena na grant volající sadu nebo podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(Type, Object[])

Zdroj:
Activator.cs
Zdroj:
Activator.cs
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. Je-li args prázdné pole nebo null, konstruktor, který nepřijímá žádné parametry (konstruktor bez parametrů) je vyvolán.

Návraty

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

Výjimky

type je null.

typenení .RuntimeType

-nebo-

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

typenemůže být .TypeBuilder

-nebo-

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

-nebo-

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

-nebo-

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

Volaný konstruktor vyvolá výjimku.

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

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

Typ 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.

Příklady

Následující příklad volá metodu CreateInstance(Type, Object[]) pro vytvoření objektu String . Volá konstruktor, String.String(Char[], Int32, Int32) který vytvoří instanci ř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 array, jehož prvky jsou argumenty, které mají být předány konstruktoru String . Příklad pak předá každé pole metodě CreateInstance(Type, Object[]) vyvolat příslušný řetězcový konstruktor.

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

Tuto metodu lze použít pro přístup k nepublikovým typům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje nepublikové typy, omezena na grant volající sady nebo na její podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(Type, Boolean)

Zdroj:
Activator.RuntimeType.cs
Zdroj:
Activator.RuntimeType.cs
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 instance Nullable<T> .

Výjimky

type je null.

typenení .RuntimeType

-nebo-

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

typenemůže být .TypeBuilder

-nebo-

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

-nebo-

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

Volaný konstruktor vyvolá výjimku.

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

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

Typ 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

Tuto metodu lze použít pro přístup k nepublikovým typům a členům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sady sestavení, která obsahuje nepublikované typy a členy je omezena na sadu grantu volajícího nebo na její podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(String, String)

Zdroj:
Activator.RuntimeType.cs
Zdroj:
Activator.RuntimeType.cs
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")]
public static System.Runtime.Remoting.ObjectHandle? CreateInstance(string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle? CreateInstance(string assemblyName, string typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance(string assemblyName, string typeName);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Type and its constructor could be removed")>]
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
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 název typeName typu. Je-li assemblyNamenulltomu tak, bude spuštěné sestavení prohledáno.

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 je null.

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

typeName nebyl nalezen v assemblyNamesouboru .

assemblyName nebyl nalezen.

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

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

Konstruktor, který byl vyvolán reflexí, vyvolal výjimku.

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

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

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName 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 pojmenovanou Person v sestavení s názvem PersonInfo. Všimněte si, že Person třída 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) pro vytvoření instance Person třídy. Vyžaduje, aby byl do projektu přidán odkaz na PersonInfo.dll. CreateInstance(String, String) Protože metoda volá Person konstruktor bez parametrů třídy, příklad přiřadí hodnotu jeho Name vlastnosti.

using System;
using System.Runtime.Remoting;

public class Example
{
   public static void Main()
   {
      ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
      Person p = (Person) handle.Unwrap();
      p.Name = "Samuel";
      Console.WriteLine(p);
   }
}
// The example displays the following output:
//        Samuel
open System

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

// The example displays the following output:
//        Samuel
Imports System.Runtime.Remoting

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

Často CreateInstance se však volá k vytvoření instance typu, který překračuje hranice počítače nebo který není v době návrhu známý. V tomto případě nelze zahrnout odkaz na sestavení v projektu a nelze provést časná volání členů typu. Chcete-li toto omezení obejít, následující příklad používá metodu CreateInstance spolu s reflexí k přiřazení hodnoty k Person vlastnosti objektu Name 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

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

assemblyName může mít jednu z následujících možností:

  • Jednoduchý název sestavení bez jeho cesty nebo přípony souboru. Například byste zadali TypeExtensions 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í, naleznete v tématu Jak modul runtime vyhledá sestavení. Informace o použití konfiguračního souboru aplikace k definování umístění sestavení naleznete v tématu Určení umístění sestavení. Pokud assemblyName se najde, načte se ve výchozím kontextu.

V .NET Core 3.0 a novějších verzích jsou zatížení sestavení aktivovaná tímto rozhraním API ovlivněna aktuální hodnotou AssemblyLoadContext.CurrentContextualReflectionContext.

Poznámka

Tuto metodu lze použít k vytvoření neveřejných typů, pokud volající byl udělen ReflectionPermission 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í reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(ActivationContext, String[])

Vytvoří instanci typu určeného zadaným ActivationContext objektem 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

Použijte metodu ObjectHandle.Unwrap k rozbalení návratové hodnoty.

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 ApplicationIdentity objekt, který poskytuje přístup k manifestu aplikace. Další informace najdete ve třídě ApplicationSecurityManager.

Viz také

Platí pro

CreateInstance(Type)

Zdroj:
Activator.cs
Zdroj:
Activator.cs
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 instance Nullable<T> .

Výjimky

type je null.

typenení .RuntimeType

-nebo-

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

typenemůže být .TypeBuilder

-nebo-

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

-nebo-

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

Volaný konstruktor vyvolá výjimku.

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

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

Typ 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.

Příklady

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

using 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

Tuto metodu lze použít pro přístup k nepublikovým typům, pokud byl volající udělen ReflectionPermission příznakem ReflectionPermissionFlag.RestrictedMemberAccess a pokud je sada udělení sestavení, která obsahuje nepublikové typy, omezena na grant volající sady nebo na její podmnožinu. (Viz Aspekty zabezpečení reflexe.) Pokud chcete tuto funkci používat, měla by vaše aplikace cílit na .NET Framework 3.5 nebo novější.

Platí pro

CreateInstance(ActivationContext)

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

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

Parametry

activationContext
ActivationContext

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

Návraty

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

Poznámky

Použijte metodu ObjectHandle.Unwrap k rozbalení návratové hodnoty.

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 ApplicationIdentity objekt, který poskytuje přístup k manifestu aplikace. Další informace najdete ve třídě ApplicationSecurityManager.

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 název typeName typu.

assemblyName
String

Název sestavení, kde je požadován název typeName typu. Je-li assemblyNamenulltomu tak, bude spuštěné sestavení prohledáno.

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 nalezen v assemblyNamesouboru .

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 COM nebyl získán prostřednictvím GetTypeFromProgID nebo GetTypeFromCLSID.

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

assemblyName není platné sestavení.

-nebo-

Modul CLR (Common Language Runtime) verze 2.0 nebo novější je aktuálně načten a assemblyName 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žívá se CreateInstance , když hostitel potřebuje spustit kód v doméně aplikace s omezenými oprávněními zabezpečení.

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

Platí pro

CreateInstance<T>()

Zdroj:
Activator.RuntimeType.cs
Zdroj:
Activator.RuntimeType.cs
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>();
public static T CreateInstance<T>() where T : allows ref struct;
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 instance Nullable<T> .

Výjimky

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

Poznámky

Obecná CreateInstance<T>() metoda se používá kompilátory k implementaci instance typů určených parametry typu. Například v následující obecné metodě implementace new T() používá obecnou metodu CreateInstance<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 pro obecnou metodu CreateInstance<T>() v kódu aplikace neexistuje žádné použití, 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). Pokud typ není znám v době kompilace, můžete volat ne generické přetížení CreateInstance.

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

Platí pro