Activator.CreateInstance Metod

Definition

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

Överlagringar

Name Description
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Föråldrad.

Skapar en instans av den typ vars namn anges i den angivna fjärrdomänen med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

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

Skapar en instans av den typ vars namn anges i den angivna fjärrdomänen med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

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

Skapar en instans av den typ vars namn anges med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

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

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

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

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

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

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

CreateInstance(String, String, Object[])

Skapar en instans av den typ vars namn har angetts, med hjälp av den namngivna sammansättningen och den parameterlösa konstruktorn.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Föråldrad.

Skapar en instans av den typ vars namn anges med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

CreateInstance(Type, Object[])

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

CreateInstance(Type, Boolean)

Skapar en instans av den angivna typen med hjälp av den typens parameterlösa konstruktor.

CreateInstance(String, String)

Skapar en instans av den typ vars namn har angetts, med hjälp av den namngivna sammansättningen och den parameterlösa konstruktorn.

CreateInstance(ActivationContext, String[])

Skapar en instans av den typ som anges av det angivna ActivationContext objektet och aktiveras med angivna anpassade aktiveringsdata.

CreateInstance(Type)

Skapar en instans av den angivna typen med hjälp av den typens parameterlösa konstruktor.

CreateInstance(ActivationContext)

Skapar en instans av den typ som anges av det angivna ActivationContext objektet.

CreateInstance(AppDomain, String, String)

Skapar en instans av den typ vars namn anges i den angivna fjärrdomänen med hjälp av den namngivna sammansättningen och den parameterlösa konstruktorn.

CreateInstance<T>()

Skapar en instans av den typ som anges av den angivna generiska typparametern med hjälp av den parameterlösa konstruktorn.

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

Varning

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.

Skapar en instans av den typ vars namn anges i den angivna fjärrdomänen med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

domain
AppDomain

Domänen där typen med namnet typeName skapas.

assemblyName
String

Namnet på sammansättningen där den namngivna typeName typen söks. Om assemblyName är nullgenomsöks den körande sammansättningen.

typeName
String

Det fullständigt kvalificerade namnet på den typ som du vill skapa en instans av.

ignoreCase
Boolean

trueför att ange att sökningen inte är skiftlägeskänslig, typeName för false att ange att sökningen är skiftlägeskänslig.

bindingAttr
BindingFlags

En kombination av noll eller fler bitflaggor som påverkar sökningen typeName efter konstruktorn. Om bindingAttr är noll utförs en skiftlägeskänslig sökning efter offentliga konstruktorer.

binder
Binder

Ett objekt som använder bindingAttr och args för att söka efter och identifiera typeName konstruktorn. Om binder är nullanvänds standardbindningen.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

culture
CultureInfo

Kulturspecifik information som styr tvånget av args till de formella typer som deklarerats för typeName konstruktorn. Om culture är nullCultureInfo används för den aktuella tråden.

activationAttributes
Object[]

En matris med ett eller flera attribut som kan delta i aktiveringen. Det här är vanligtvis en matris som innehåller ett enda UrlAttribute objekt. UrlAttribute Anger den URL som krävs för att aktivera ett fjärrobjekt.

securityAttributes
Evidence

Information som används för att fatta beslut om säkerhetsprinciper och bevilja kodbehörigheter.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser utan värde.

Attribut

Undantag

domain eller typeName är null.

Ingen matchande konstruktor hittades.

typeName hittades inte i assemblyName.

assemblyName hittades inte.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

Konstruktorn, som anropades genom reflektion, utlöste ett undantag.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

activationAttributes är inte en tom matris och typen som skapas härleds inte från MarshalByRefObject.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

assemblyName är inte en giltig sammansättning.

-eller-

CLR-version 2.0 eller senare är för närvarande inläst och assemblyName kompilerades för en version av CLR som är senare än den för närvarande inlästa versionen. Observera att alla .NET Framework-versionerna 2.0, 3.0 och 3.5 använder CLR version 2.0.

En sammansättning eller modul lästes in två gånger med två olika bevis.

-eller-

Sammansättningsnamnet eller kodbasen är ogiltig.

Kommentarer

Använd CreateInstance när en värd behöver köra kod i en programdomän som har begränsade säkerhetsbehörigheter.

Använd ObjectHandle.Unwrap för att packa upp returvärdet.

Gäller för

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

Skapar en instans av den typ vars namn anges i den angivna fjärrdomänen med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

domain
AppDomain

Domänen där typen med namnet typeName skapas.

assemblyName
String

Namnet på sammansättningen där den namngivna typeName typen söks. Om assemblyName är nullgenomsöks den körande sammansättningen.

typeName
String

Det fullständigt kvalificerade namnet på den typ som du vill skapa en instans av.

ignoreCase
Boolean

trueför att ange att sökningen inte är skiftlägeskänslig, typeName för false att ange att sökningen är skiftlägeskänslig.

bindingAttr
BindingFlags

En kombination av noll eller fler bitflaggor som påverkar sökningen typeName efter konstruktorn. Om bindingAttr är noll utförs en skiftlägeskänslig sökning efter offentliga konstruktorer.

binder
Binder

Ett objekt som använder bindingAttr och args för att söka efter och identifiera typeName konstruktorn. Om binder är nullanvänds standardbindningen.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

culture
CultureInfo

Kulturspecifik information som styr tvånget av args till de formella typer som deklarerats för typeName konstruktorn. Om culture är nullCultureInfo används för den aktuella tråden.

activationAttributes
Object[]

En matris med ett eller flera attribut som kan delta i aktiveringen. Det här är vanligtvis en matris som innehåller ett enda UrlAttribute objekt som anger den URL som krävs för att aktivera ett fjärrobjekt.

Den här parametern är relaterad till klientaktiverade objekt. Klientaktivering är en äldre teknik som behålls för bakåtkompatibilitet men rekommenderas inte för ny utveckling. Distribuerade program bör i stället använda Windows Communication Foundation.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser utan värde.

Attribut

Undantag

domain eller typeName är null.

Ingen matchande konstruktor hittades.

typeName hittades inte i assemblyName.

assemblyName hittades inte.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

Konstruktorn, som anropades genom reflektion, utlöste ett undantag.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

activationAttributes är inte en tom matris och typen som skapas härleds inte från MarshalByRefObject.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

assemblyName är inte en giltig sammansättning.

-eller-

CLR-version 2.0 eller senare är för närvarande inläst och assemblyName kompilerades för en version av CLR som är senare än den för närvarande inlästa versionen. Observera att alla .NET Framework-versionerna 2.0, 3.0 och 3.5 använder CLR version 2.0.

En sammansättning eller modul lästes in två gånger med två olika bevis.

-eller-

Sammansättningsnamnet eller kodbasen är ogiltig.

Kommentarer

Använd CreateInstance när en värd behöver köra kod i en programdomän som har begränsade säkerhetsbehörigheter.

Använd ObjectHandle.Unwrap för att packa upp returvärdet.

Gäller för

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

Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs

Skapar en instans av den typ vars namn anges med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

assemblyName
String

Namnet på sammansättningen där den namngivna typeName typen söks. Om assemblyName är nullgenomsöks den körande sammansättningen.

typeName
String

Det fullständigt kvalificerade namnet på den typ som du vill skapa en instans av.

ignoreCase
Boolean

trueför att ange att sökningen inte är skiftlägeskänslig, typeName för false att ange att sökningen är skiftlägeskänslig.

bindingAttr
BindingFlags

En kombination av noll eller fler bitflaggor som påverkar sökningen typeName efter konstruktorn. Om bindingAttr är noll utförs en skiftlägeskänslig sökning efter offentliga konstruktorer.

binder
Binder

Ett objekt som använder bindingAttr och args för att söka efter och identifiera typeName konstruktorn. Om binder är nullanvänds standardbindningen.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

culture
CultureInfo

Kulturspecifik information som styr tvånget av args till de formella typer som deklarerats för typeName konstruktorn. Om culture är nullCultureInfo används för den aktuella tråden.

activationAttributes
Object[]

En matris med ett eller flera attribut som kan delta i aktiveringen. Det här är vanligtvis en matris som innehåller ett enda UrlAttribute objekt som anger den URL som krävs för att aktivera ett fjärrobjekt.

Den här parametern är relaterad till klientaktiverade objekt. Klientaktivering är en äldre teknik som behålls för bakåtkompatibilitet men rekommenderas inte för ny utveckling. Distribuerade program bör i stället använda Windows Communication Foundation.

Returer

Ett handtag som måste packas upp för att få åtkomst till den nyligen skapade instansen, eller null för Nullable<T> instanser utan värde.

Attribut

Undantag

typeName är null.

Ingen matchande konstruktor hittades.

typeName hittades inte i assemblyName.

assemblyName hittades inte.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

Konstruktorn, som anropades genom reflektion, utlöste ett undantag.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

activationAttributes är inte en tom matris och typen som skapas härleds inte från MarshalByRefObject.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

assemblyName är inte en giltig sammansättning.

-eller-

CLR-version 2.0 eller senare är för närvarande inläst och assemblyName kompilerades för en version av CLR som är senare än den för närvarande inlästa versionen. Observera att alla .NET Framework-versionerna 2.0, 3.0 och 3.5 använder CLR version 2.0.

En sammansättning eller modul lästes in två gånger med två olika bevis.

-eller-

Sammansättningsnamnet eller kodbasen är ogiltig.

Kommentarer

Använd ObjectHandle.Unwrap för att packa upp returvärdet.

I .NET Core 3.0 och senare versioner påverkas sammansättningsbelastningar som utlöses av det här API:et av det aktuella värdet för AssemblyLoadContext.CurrentContextualReflectionContext.

Note

Den här metoden kan användas för att skapa icke-offentliga typer och medlemmar om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om bidragsuppsättningen för den sammansättning som innehåller icke-offentliga typer och medlemmar är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

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

Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

type
Type

Vilken typ av objekt som ska skapas.

bindingAttr
BindingFlags

En kombination av noll eller fler bitflaggor som påverkar sökningen type efter konstruktorn. Om bindingAttr är noll utförs en skiftlägeskänslig sökning efter offentliga konstruktorer.

binder
Binder

Ett objekt som använder bindingAttr och args för att söka efter och identifiera type konstruktorn. Om binder är nullanvänds standardbindningen.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

culture
CultureInfo

Kulturspecifik information som styr tvånget av args till de formella typer som deklarerats för type konstruktorn. Om culture är nullCultureInfo används för den aktuella tråden.

activationAttributes
Object[]

En matris med ett eller flera attribut som kan delta i aktiveringen. Det här är vanligtvis en matris som innehåller ett enda UrlAttribute objekt som anger den URL som krävs för att aktivera ett fjärrobjekt.

Den här parametern är relaterad till klientaktiverade objekt. Klientaktivering är en äldre teknik som behålls för bakåtkompatibilitet men rekommenderas inte för ny utveckling. Distribuerade program bör i stället använda Windows Communication Foundation.

Returer

En referens till det nyligen skapade objektet eller null för Nullable<T> instanser utan värde.

Undantag

type är null.

type är inte en RuntimeType.

-eller-

type är en öppen allmän typ (det vill: egenskapen ContainsGenericParameters returnerar true).

type kan inte vara en TypeBuilder.

-eller-

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

activationAttributes är inte en tom matris och typen som skapas härleds inte från MarshalByRefObject.

-eller-

Sammansättningen som innehåller type är en dynamisk sammansättning som skapades med Save.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

Konstruktorn som kallas utlöser ett undantag.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

Ingen matchande konstruktor hittades.

type är ett COM-objekt men klassidentifieraren som används för att hämta typen är ogiltig eller så är den identifierade klassen inte registrerad.

type är inte en giltig typ.

Kommentarer

Konstruktorn som ska anropas måste ange den mest specifika matchningen med den angivna argumentlistan under begränsningarna för de angivna bindningsattributen.

Note

Den här metoden kan användas för att komma åt icke-offentliga typer och medlemmar om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om bidragsuppsättningen för icke-offentliga typer och medlemmar är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

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

Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

type
Type

Vilken typ av objekt som ska skapas.

bindingAttr
BindingFlags

En kombination av noll eller fler bitflaggor som påverkar sökningen type efter konstruktorn. Om bindingAttr är noll utförs en skiftlägeskänslig sökning efter offentliga konstruktorer.

binder
Binder

Ett objekt som använder bindingAttr och args för att söka efter och identifiera type konstruktorn. Om binder är nullanvänds standardbindningen.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

culture
CultureInfo

Kulturspecifik information som styr tvånget av args till de formella typer som deklarerats för type konstruktorn. Om culture är nullCultureInfo används för den aktuella tråden.

Returer

En referens till det nyligen skapade objektet eller null för Nullable<T> instanser utan värde.

Undantag

type är null.

type är inte en RuntimeType.

-eller-

type är en öppen allmän typ (det vill: egenskapen ContainsGenericParameters returnerar true).

type kan inte vara en TypeBuilder.

-eller-

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

Sammansättningen som innehåller type är en dynamisk sammansättning som skapades med Save.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

Konstruktorn som kallas utlöser ett undantag.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

Ingen matchande konstruktor hittades.

type är ett COM-objekt men klassidentifieraren som används för att hämta typen är ogiltig eller så är den identifierade klassen inte registrerad.

type är inte en giltig typ.

Kommentarer

Konstruktorn som ska anropas måste ange den mest specifika matchningen med den angivna argumentlistan under begränsningarna för de angivna bindningsattributen.

Note

Den här metoden kan användas för åtkomst till icke-offentliga typer och medlemmar om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om bidragsuppsättningen för den sammansättning som innehåller icke-offentliga typer och medlemmar är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

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

Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

type
Type

Vilken typ av objekt som ska skapas.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

activationAttributes
Object[]

En matris med ett eller flera attribut som kan delta i aktiveringen. Det här är vanligtvis en matris som innehåller ett enda UrlAttribute objekt som anger den URL som krävs för att aktivera ett fjärrobjekt.

Den här parametern är relaterad till klientaktiverade objekt. Klientaktivering är en äldre teknik som behålls för bakåtkompatibilitet men rekommenderas inte för ny utveckling. Distribuerade program bör i stället använda Windows Communication Foundation.

Returer

En referens till det nyligen skapade objektet eller null för Nullable<T> instanser utan värde.

Undantag

type är null.

type är inte en RuntimeType.

-eller-

type är en öppen allmän typ (det vill: egenskapen ContainsGenericParameters returnerar true).

type kan inte vara en TypeBuilder.

-eller-

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

activationAttributes är inte en tom matris och typen som skapas härleds inte från MarshalByRefObject.

-eller-

Sammansättningen som innehåller type är en dynamisk sammansättning som skapades med Save.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

Konstruktorn som kallas utlöser ett undantag.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

Ingen matchande offentlig konstruktor hittades.

type är ett COM-objekt men klassidentifieraren som används för att hämta typen är ogiltig eller så är den identifierade klassen inte registrerad.

type är inte en giltig typ.

Kommentarer

Konstruktorn som ska anropas måste vara tillgänglig och måste tillhandahålla den mest specifika matchningen med den angivna argumentlistan.

Note

Den här metoden kan användas för att komma åt icke-offentliga typer om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om beviljandeuppsättningen för sammansättningen som innehåller icke-offentliga typer är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

CreateInstance(String, String, Object[])

Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs

Skapar en instans av den typ vars namn har angetts, med hjälp av den namngivna sammansättningen och den parameterlösa konstruktorn.

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

Parametrar

assemblyName
String

Namnet på sammansättningen där den namngivna typeName typen söks. Om assemblyName är nullgenomsöks den körande sammansättningen.

typeName
String

Det fullständigt kvalificerade namnet på den typ som du vill skapa en instans av.

activationAttributes
Object[]

En matris med ett eller flera attribut som kan delta i aktiveringen. Det här är vanligtvis en matris som innehåller ett enda UrlAttribute objekt som anger den URL som krävs för att aktivera ett fjärrobjekt.

Den här parametern är relaterad till klientaktiverade objekt. Klientaktivering är en äldre teknik som behålls för bakåtkompatibilitet men rekommenderas inte för ny utveckling. Distribuerade program bör i stället använda Windows Communication Foundation.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser.

Attribut

Undantag

typeName är null.

Ingen matchande offentlig konstruktor hittades.

typeName hittades inte i assemblyName.

assemblyName hittades inte.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

activationAttributes är inte en tom matris och typen som skapas härleds inte från MarshalByRefObject.

-eller-

activationAttributes är inte en UrlAttribute

samling.

assemblyName är inte en giltig sammansättning.

-eller-

CLR-version 2.0 eller senare är för närvarande inläst och assemblyName kompilerades för en version av CLR som är senare än den för närvarande inlästa versionen. Observera att alla .NET Framework-versionerna 2.0, 3.0 och 3.5 använder CLR version 2.0.

En sammansättning eller modul lästes in två gånger med två olika bevis.

-eller-

Sammansättningsnamnet eller kodbasen är ogiltig.

Den anropade konstruktorn utlöser ett undantag.

-eller-

Ett fel uppstod vid försök till fjärraktivering i ett mål som anges i activationAttributes.

Kommentarer

Använd ObjectHandle.Unwrap för att packa upp returvärdet.

I .NET Core 3.0 och senare versioner påverkas sammansättningsbelastningar som utlöses av det här API:et av det aktuella värdet för AssemblyLoadContext.CurrentContextualReflectionContext.

Note

Den här metoden kan användas för att skapa icke-offentliga typer om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om bidragsuppsättningen för icke-offentliga typer är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

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

Varning

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.

Skapar en instans av den typ vars namn anges med hjälp av den namngivna sammansättningen och konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

assemblyName
String

Namnet på sammansättningen där den namngivna typeName typen söks. Om assemblyName är nullgenomsöks den körande sammansättningen.

typeName
String

Det fullständigt kvalificerade namnet på den typ som du vill skapa en instans av.

ignoreCase
Boolean

trueför att ange att sökningen inte är skiftlägeskänslig, typeName för false att ange att sökningen är skiftlägeskänslig.

bindingAttr
BindingFlags

En kombination av noll eller fler bitflaggor som påverkar sökningen typeName efter konstruktorn. Om bindingAttr är noll utförs en skiftlägeskänslig sökning efter offentliga konstruktorer.

binder
Binder

Ett objekt som använder bindingAttr och args för att söka efter och identifiera typeName konstruktorn. Om binder är nullanvänds standardbindningen.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

culture
CultureInfo

Kulturspecifik information som styr tvånget av args till de formella typer som deklarerats för typeName konstruktorn. Om culture är nullCultureInfo används för den aktuella tråden.

activationAttributes
Object[]

En matris med ett eller flera attribut som kan delta i aktiveringen. Det här är vanligtvis en matris som innehåller ett enda UrlAttribute objekt som anger den URL som krävs för att aktivera ett fjärrobjekt.

Den här parametern är relaterad till klientaktiverade objekt. Klientaktivering är en äldre teknik som behålls för bakåtkompatibilitet men rekommenderas inte för ny utveckling. Distribuerade program bör i stället använda Windows Communication Foundation.

securityInfo
Evidence

Information som används för att fatta beslut om säkerhetsprinciper och bevilja kodbehörigheter.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser utan värde.

Attribut

Undantag

typeName är null.

Ingen matchande konstruktor hittades.

typeName hittades inte i assemblyName.

assemblyName hittades inte.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

Konstruktorn, som anropades genom reflektion, utlöste ett undantag.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

activationAttributes är inte en tom matris och typen som skapas härleds inte från MarshalByRefObject.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

assemblyName är inte en giltig sammansättning.

-eller-

CLR-version 2.0 eller senare är för närvarande inläst och assemblyName kompilerades för en version av CLR som är senare än den för närvarande inlästa versionen. Observera att alla .NET Framework-versionerna 2.0, 3.0 och 3.5 använder CLR version 2.0.

En sammansättning eller modul lästes in två gånger med två olika bevis.

-eller-

Sammansättningsnamnet eller kodbasen är ogiltig.

Kommentarer

Använd ObjectHandle.Unwrap för att packa upp returvärdet.

Note

Den här metoden kan användas för att skapa icke-offentliga typer och medlemmar om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om bidragsuppsättningen för den sammansättning som innehåller icke-offentliga typer och medlemmar är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

CreateInstance(Type, Object[])

Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs

Skapar en instans av den angivna typen med konstruktorn som bäst matchar de angivna parametrarna.

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

Parametrar

type
Type

Vilken typ av objekt som ska skapas.

args
Object[]

En matris med argument som matchar i tal, ordning och ange parametrarna för konstruktorn som ska anropas. Om args är en tom matris eller nullanropas konstruktorn som inte tar några parametrar (den parameterlösa konstruktorn).

Returer

En referens till det nyligen skapade objektet eller null för Nullable<T> instanser utan värde.

Undantag

type är null.

type är inte en RuntimeType.

-eller-

type är en öppen allmän typ (det vill: egenskapen ContainsGenericParameters returnerar true).

type kan inte vara en TypeBuilder.

-eller-

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

Sammansättningen som innehåller type är en dynamisk sammansättning som skapades med Save.

-eller-

Konstruktorn som bäst matchar args har varargs argument.

Konstruktorn som kallas utlöser ett undantag.

Anroparen har inte behörighet att anropa konstruktorn.

Obs! I .NET för Windows Store-appar eller Portable Class Library fångar du i stället basklassfelet MemberAccessException.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

Ingen matchande offentlig konstruktor hittades.

Obs! I .NET för Windows Store-appar eller Portable Class Library fångar du i stället basklassfelet MissingMemberException.

type är ett COM-objekt men klassidentifieraren som används för att hämta typen är ogiltig eller så är den identifierade klassen inte registrerad.

type är inte en giltig typ.

Exempel

I följande exempel anropas CreateInstance(Type, Object[]) metoden för att skapa ett String objekt. Den anropar String.String(Char[], Int32, Int32) konstruktorn för att instansiera en sträng som innehåller tio element från en teckenmatris som börjar på den fjortonde positionen.

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

I följande exempel skapas en ojämn matris vars element är argument som ska skickas till en String konstruktor. Exemplet skickar sedan varje matris till CreateInstance(Type, Object[]) metoden för att anropa lämplig strängkonstruktor.

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

Kommentarer

Konstruktorn som ska anropas måste vara tillgänglig och måste tillhandahålla den mest specifika matchningen med den angivna argumentlistan.

Note

Den här metoden kan användas för att komma åt icke-offentliga typer om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om beviljandeuppsättningen för sammansättningen som innehåller icke-offentliga typer är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

CreateInstance(Type, Boolean)

Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs

Skapar en instans av den angivna typen med hjälp av den typens parameterlösa konstruktor.

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

Parametrar

type
Type

Vilken typ av objekt som ska skapas.

nonPublic
Boolean

true om en offentlig eller icke-offentlig parameterlös konstruktor kan matcha; false om endast en offentlig parameterlös konstruktor kan matcha.

Returer

En referens till det nyligen skapade objektet eller null för Nullable<T> instanser.

Undantag

type är null.

type är inte en RuntimeType.

-eller-

type är en öppen allmän typ (det vill: egenskapen ContainsGenericParameters returnerar true).

type kan inte vara en TypeBuilder.

-eller-

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

Sammansättningen som innehåller type är en dynamisk sammansättning som skapades med Save.

Konstruktorn som kallas utlöser ett undantag.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

Ingen matchande offentlig konstruktor hittades.

type är ett COM-objekt men klassidentifieraren som används för att hämta typen är ogiltig eller så är den identifierade klassen inte registrerad.

type är inte en giltig typ.

Kommentarer

Note

Den här metoden kan användas för åtkomst till icke-offentliga typer och medlemmar om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om bidragsuppsättningen för den sammansättning som innehåller icke-offentliga typer och medlemmar är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

CreateInstance(String, String)

Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs

Skapar en instans av den typ vars namn har angetts, med hjälp av den namngivna sammansättningen och den parameterlösa konstruktorn.

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

Parametrar

assemblyName
String

Namnet på sammansättningen där den namngivna typeName typen söks. Om assemblyName är nullgenomsöks den körande sammansättningen.

typeName
String

Det fullständigt kvalificerade namnet på den typ som du vill skapa en instans av.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser.

Attribut

Undantag

typeName är null.

Ingen matchande offentlig konstruktor hittades.

typeName hittades inte i assemblyName.

assemblyName hittades inte.

Anroparen har inte behörighet att anropa konstruktorn.

Du kan inte skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

Konstruktorn, som anropades genom reflektion, utlöste ett undantag.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

assemblyName är inte en giltig sammansättning.

-eller-

CLR-version 2.0 eller senare är för närvarande inläst och assemblyName kompilerades för en version av CLR som är senare än den för närvarande inlästa versionen. Observera att alla .NET Framework-versionerna 2.0, 3.0 och 3.5 använder CLR version 2.0.

En sammansättning eller modul lästes in två gånger med två olika bevis.

-eller-

Sammansättningsnamnet eller kodbasen är ogiltig.

Exempel

I följande exempel definieras en klass med namnet Person i en sammansättning med namnet PersonInfo. Observera att Person klassen har två konstruktorer, varav en är parameterlös.

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

I följande exempel anropas CreateInstance(String, String) metoden för att instansiera Person klassen. Det kräver en referens till PersonInfo.dll som ska läggas till i projektet. CreateInstance(String, String) Eftersom metoden anropar den Person klassparameterlösa konstruktorn tilldelar exemplet ett värde till dess Name egenskap.

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

Anropas dock CreateInstance ofta för att instansiera en typ som korsar datorgränser eller som inte är känd vid designtillfället. I det här fallet kan du inte inkludera en referens till sammansättningen i projektet och kan inte göra tidiga anrop till typens medlemmar. För att kringgå den här begränsningen CreateInstance använder följande exempel metoden tillsammans med reflektion för att tilldela ett värde till Person objektets Name egenskap och för att visa dess värde.

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

Kommentarer

Använd ObjectHandle.Unwrap för att packa upp returvärdet.

assemblyName kan vara något av följande:

  • Det enkla namnet på en sammansättning, utan dess sökväg eller filnamnstillägg. Du kan till exempel ange TypeExtensions för en sammansättning vars sökväg och namn är .\bin\TypeExtensions.dll.

  • Det fullständiga namnet på en signerad sammansättning, som består av dess enkla namn, version, kultur och offentliga nyckeltoken. till exempel "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".

Mer information om hur den vanliga språkkörningen identifierar och läser in sammansättningar finns i How the Runtime Locates Assemblies (Så här letar Runtime upp sammansättningar). Information om hur du använder programkonfigurationsfilen för att definiera sammansättningsplatser finns i Ange en sammansättnings plats. Om assemblyName hittas läses den in i standardkontexten.

I .NET Core 3.0 och senare versioner påverkas sammansättningsbelastningar som utlöses av det här API:et av det aktuella värdet för AssemblyLoadContext.CurrentContextualReflectionContext.

Note

Den här metoden kan användas för att skapa icke-offentliga typer om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om tilldelningsuppsättningen för sammansättningen som innehåller icke-offentliga typer är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

CreateInstance(ActivationContext, String[])

Skapar en instans av den typ som anges av det angivna ActivationContext objektet och aktiveras med angivna anpassade aktiveringsdata.

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

Parametrar

activationContext
ActivationContext

Ett aktiveringskontextobjekt som anger objektet som ska skapas.

activationCustomData
String[]

En matris med Unicode-strängar som innehåller anpassade aktiveringsdata.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser.

Kommentarer

ObjectHandle.Unwrap Använd metoden för att packa upp returvärdet.

Aktiveringskontexten används under manifestbaserad aktivering för att konfigurera domänprincipen och för att tillhandahålla en programbaserad säkerhetsmodell. Klassen ActivationContext innehåller ett ApplicationIdentity objekt som ger åtkomst till programmanifestet. Mer information finns i ApplicationSecurityManager klassen .

Se även

Gäller för

CreateInstance(Type)

Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs
Källa:
Activator.cs

Skapar en instans av den angivna typen med hjälp av den typens parameterlösa konstruktor.

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

Parametrar

type
Type

Vilken typ av objekt som ska skapas.

Returer

En referens till det nyligen skapade objektet eller null för Nullable<T> instanser.

Undantag

type är null.

type är inte en RuntimeType.

-eller-

type är en öppen allmän typ (det vill: egenskapen ContainsGenericParameters returnerar true).

type kan inte vara en TypeBuilder.

-eller-

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

-eller-

Sammansättningen som innehåller type är en dynamisk sammansättning som skapades med Save.

Konstruktorn som kallas utlöser ett undantag.

Anroparen har inte behörighet att anropa konstruktorn.

Obs! I .NET för Windows Store-appar eller Portable Class Library fångar du i stället basklassfelet MemberAccessException.

Det går inte att skapa en instans av en abstrakt klass, eller så anropades den här medlemmen med en mekanism för sen bindning.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

Ingen matchande offentlig konstruktor hittades.

Obs! I .NET för Windows Store-appar eller Portable Class Library fångar du i stället basklassfelet MissingMemberException.

type är ett COM-objekt men klassidentifieraren som används för att hämta typen är ogiltig eller så är den identifierade klassen inte registrerad.

type är inte en giltig typ.

Exempel

I följande kodexempel visas hur du anropar CreateInstance(Type) metoden. Instanser av flera olika typer skapas och deras standardvärden visas.

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

Kommentarer

Konstruktorn som ska anropas måste vara tillgänglig.

Note

Den här metoden kan användas för att komma åt icke-offentliga typer om anroparen har beviljats ReflectionPermission med ReflectionPermissionFlag.RestrictedMemberAccess flaggan och om beviljandeuppsättningen för sammansättningen som innehåller icke-offentliga typer är begränsad till anroparens bidragsuppsättning eller till en delmängd av den. (Se Säkerhetsöverväganden för reflektion.) Om du vill använda den här funktionen bör ditt program rikta in sig på .NET Framework 3.5 eller senare.

Gäller för

CreateInstance(ActivationContext)

Skapar en instans av den typ som anges av det angivna ActivationContext objektet.

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

Parametrar

activationContext
ActivationContext

Ett aktiveringskontextobjekt som anger objektet som ska skapas.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser.

Kommentarer

ObjectHandle.Unwrap Använd metoden för att packa upp returvärdet.

Aktiveringskontexten används under manifestbaserad aktivering för att konfigurera domänprincipen och för att tillhandahålla en programbaserad säkerhetsmodell. Klassen ActivationContext innehåller ett ApplicationIdentity objekt som ger åtkomst till programmanifestet. Mer information finns i ApplicationSecurityManager klassen .

Se även

Gäller för

CreateInstance(AppDomain, String, String)

Skapar en instans av den typ vars namn anges i den angivna fjärrdomänen med hjälp av den namngivna sammansättningen och den parameterlösa konstruktorn.

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

Parametrar

domain
AppDomain

Fjärrdomänen där typen med namnet typeName skapas.

assemblyName
String

Namnet på sammansättningen där den namngivna typeName typen söks. Om assemblyName är nullgenomsöks den körande sammansättningen.

typeName
String

Det fullständigt kvalificerade namnet på den typ som du vill skapa en instans av.

Returer

Ett handtag som måste packas upp för att få åtkomst till det nyligen skapade objektet eller null för Nullable<T> instanser.

Attribut

Undantag

typeName eller domain är null.

Ingen matchande offentlig konstruktor hittades.

typeName hittades inte i assemblyName.

assemblyName hittades inte.

Anroparen har inte behörighet att anropa konstruktorn.

Det går inte att skapa en instans av en abstrakt typ.

-eller-

Den här medlemmen anropades med en mekanism för sen bindning.

Konstruktorn, som anropades genom reflektion, utlöste ett undantag.

COM-typen hämtades inte via GetTypeFromProgID eller GetTypeFromCLSID.

TypedReferenceDet går inte att skapa , ArgIterator, Voidoch RuntimeArgumentHandle typer eller matriser av dessa typer.

assemblyName är inte en giltig sammansättning.

-eller-

CLR-version 2.0 eller senare är för närvarande inläst och assemblyName kompilerades för en version av CLR som är senare än den för närvarande inlästa versionen. Observera att alla .NET Framework-versionerna 2.0, 3.0 och 3.5 använder CLR version 2.0.

En sammansättning eller modul lästes in två gånger med två olika bevis.

-eller-

Sammansättningsnamnet eller kodbasen är ogiltig.

Kommentarer

Använd CreateInstance när en värd behöver köra kod i en programdomän som har begränsade säkerhetsbehörigheter.

Använd ObjectHandle.Unwrap för att packa upp returvärdet.

Gäller för

CreateInstance<T>()

Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs
Källa:
Activator.RuntimeType.cs

Skapar en instans av den typ som anges av den angivna generiska typparametern med hjälp av den parameterlösa konstruktorn.

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

Typparametrar

T

Den typ som ska skapas.

Returer

T

En referens till det nyligen skapade objektet eller null för Nullable<T> instanser.

Undantag

Det går inte att skapa en instans av en abstrakt klass, eller så har den typ som anges för T inte en parameterlös konstruktor.

Obs! I .NET för Windows Store-appar eller Portable Class Library fångar du i stället basklassfelet MissingMemberException.

Kommentarer

Den CreateInstance<T>() generiska metoden används av kompilatorer för att implementera instansiering av typer som anges av typparametrar. I följande generiska metod använder till exempel implementeringen av new T() den CreateInstance<T>() generiska metoden.

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

I allmänhet används inte den CreateInstance<T>() generiska metoden i programkoden eftersom typen måste vara känd vid kompileringstillfället. Om typen är känd vid kompileringstillfället kan normal instansieringssyntax användas (new operator i C#, New i Visual Basic). Om typen inte är känd vid kompileringstillfället kan du anropa en icke-allmän överlagring av CreateInstance.

Det finns inga överlagringar av den CreateInstance<T>() generiska metoden som tar argumentlistor, eftersom de icke-generiska överlagringarna av CreateInstance redan ger sen bindningskonstruktormatchning.

Gäller för