Activator.CreateInstance Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
TypeExtensionsfö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
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.