Activator.CreateInstance Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters.
Overloads
| Name | Description |
|---|---|
| CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Verouderd.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, Object[], Object[]) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(String, String, Object[]) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven met behulp van de benoemde assembly en parameterloze constructor. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Verouderd.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, Object[]) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters. |
| CreateInstance(Type, Boolean) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de parameterloze constructor van dat type. |
| CreateInstance(String, String) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven met behulp van de benoemde assembly en parameterloze constructor. |
| CreateInstance(ActivationContext, String[]) |
Hiermee maakt u een exemplaar van het type dat wordt aangewezen door het opgegeven ActivationContext object en wordt geactiveerd met de opgegeven aangepaste activeringsgegevens. |
| CreateInstance(Type) |
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de parameterloze constructor van dat type. |
| CreateInstance(ActivationContext) |
Hiermee maakt u een exemplaar van het type dat is aangewezen door het opgegeven ActivationContext object. |
| CreateInstance(AppDomain, String, String) |
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en parameterloze constructor. |
| CreateInstance<T>() |
Hiermee maakt u een exemplaar van het type dat is aangewezen door de opgegeven algemene typeparameter, met behulp van de parameterloze constructor. |
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Let op
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.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- domain
- AppDomain
Het domein waarin het type met de naam typeName is gemaakt.
- assemblyName
- String
De naam van de assembly waar het type met de naam typeName wordt gezocht. Als assemblyName dat het is null, wordt de uitgevoerde assembly doorzocht.
- typeName
- String
De volledig gekwalificeerde naam van het type om een exemplaar van te maken.
- ignoreCase
- Boolean
true om op te geven dat de zoekopdracht typeName niet hoofdlettergevoelig is; false om op te geven dat de zoekopdracht hoofdlettergevoelig is.
- bindingAttr
- BindingFlags
Een combinatie van nul of meer bitvlagmen die van invloed zijn op de zoekopdracht naar de typeName constructor. Als bindingAttr nul is, wordt een hoofdlettergevoelige zoekopdracht uitgevoerd naar openbare constructors.
- binder
- Binder
Een object dat de constructor gebruikt bindingAttr en args identificeert typeName . Als binder dat het is null, wordt de standaardbinding gebruikt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
- culture
- CultureInfo
Cultuurspecifieke informatie die de dwang van args de formele typen regelt die voor de typeName constructor zijn gedeclareerd. Als culture dat het is null, wordt de CultureInfo voor de huidige thread gebruikt.
- activationAttributes
- Object[]
Een matrix van een of meer kenmerken die kunnen deelnemen aan de activering. Dit is doorgaans een matrix die één UrlAttribute object bevat. Hiermee UrlAttribute geeft u de URL op die is vereist voor het activeren van een extern object.
- securityAttributes
- Evidence
Informatie die wordt gebruikt om beslissingen te nemen over het beveiligingsbeleid en codemachtigingen te verlenen.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren zonder waarde.
- Kenmerken
Uitzonderingen
domain of typeName is null.
Er is geen overeenkomende constructor gevonden.
typeName is niet gevonden in assemblyName.
assemblyName is niet gevonden.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
De constructor, die is aangeroepen via weerspiegeling, heeft een uitzondering veroorzaakt.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
activationAttributes is geen lege matrix en het type dat wordt gemaakt, is niet afgeleid van MarshalByRefObject.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
assemblyName is geen geldige assembly.
– of –
De common Language Runtime (CLR) versie 2.0 of hoger is momenteel geladen en assemblyName is gecompileerd voor een versie van de CLR die later is dan de momenteel geladen versie. Houd er rekening mee dat de .NET Framework-versies 2.0, 3.0 en 3.5 allemaal CLR-versie 2.0 gebruiken.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
De assemblynaam of codebasis is ongeldig.
Opmerkingen
Gebruik CreateInstance deze opdracht wanneer een host code moet uitvoeren in een toepassingsdomein met beperkte beveiligingsmachtigingen.
Gebruik ObjectHandle.Unwrap dit om de retourwaarde uit te pakken.
Van toepassing op
CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- domain
- AppDomain
Het domein waarin het type met de naam typeName is gemaakt.
- assemblyName
- String
De naam van de assembly waar het type met de naam typeName wordt gezocht. Als assemblyName dat het is null, wordt de uitgevoerde assembly doorzocht.
- typeName
- String
De volledig gekwalificeerde naam van het type om een exemplaar van te maken.
- ignoreCase
- Boolean
true om op te geven dat de zoekopdracht typeName niet hoofdlettergevoelig is; false om op te geven dat de zoekopdracht hoofdlettergevoelig is.
- bindingAttr
- BindingFlags
Een combinatie van nul of meer bitvlagmen die van invloed zijn op de zoekopdracht naar de typeName constructor. Als bindingAttr nul is, wordt een hoofdlettergevoelige zoekopdracht uitgevoerd naar openbare constructors.
- binder
- Binder
Een object dat de constructor gebruikt bindingAttr en args identificeert typeName . Als binder dat het is null, wordt de standaardbinding gebruikt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
- culture
- CultureInfo
Cultuurspecifieke informatie die de dwang van args de formele typen regelt die voor de typeName constructor zijn gedeclareerd. Als culture dat het is null, wordt de CultureInfo voor de huidige thread gebruikt.
- activationAttributes
- Object[]
Een matrix van een of meer kenmerken die kunnen deelnemen aan de activering. Dit is doorgaans een matrix die één UrlAttribute object bevat dat de URL aangeeft die nodig is om een extern object te activeren.
Deze parameter is gerelateerd aan door de client geactiveerde objecten. Clientactivering is een verouderde technologie die behouden blijft voor achterwaartse compatibiliteit, maar wordt niet aanbevolen voor nieuwe ontwikkeling. Gedistribueerde toepassingen moeten in plaats daarvan Windows Communication Foundation gebruiken.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren zonder waarde.
- Kenmerken
Uitzonderingen
domain of typeName is null.
Er is geen overeenkomende constructor gevonden.
typeName is niet gevonden in assemblyName.
assemblyName is niet gevonden.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
De constructor, die is aangeroepen via weerspiegeling, heeft een uitzondering veroorzaakt.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
activationAttributes is geen lege matrix en het type dat wordt gemaakt, is niet afgeleid van MarshalByRefObject.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
assemblyName is geen geldige assembly.
– of –
De common Language Runtime (CLR) versie 2.0 of hoger is momenteel geladen en assemblyName is gecompileerd voor een versie van de CLR die later is dan de momenteel geladen versie. Houd er rekening mee dat de .NET Framework-versies 2.0, 3.0 en 3.5 allemaal CLR-versie 2.0 gebruiken.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
De assemblynaam of codebasis is ongeldig.
Opmerkingen
Gebruik CreateInstance deze opdracht wanneer een host code moet uitvoeren in een toepassingsdomein met beperkte beveiligingsmachtigingen.
Gebruik ObjectHandle.Unwrap dit om de retourwaarde uit te pakken.
Van toepassing op
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- assemblyName
- String
De naam van de assembly waar het type met de naam typeName wordt gezocht. Als assemblyName dat het is null, wordt de uitgevoerde assembly doorzocht.
- typeName
- String
De volledig gekwalificeerde naam van het type om een exemplaar van te maken.
- ignoreCase
- Boolean
true om op te geven dat de zoekopdracht typeName niet hoofdlettergevoelig is; false om op te geven dat de zoekopdracht hoofdlettergevoelig is.
- bindingAttr
- BindingFlags
Een combinatie van nul of meer bitvlagmen die van invloed zijn op de zoekopdracht naar de typeName constructor. Als bindingAttr nul is, wordt een hoofdlettergevoelige zoekopdracht uitgevoerd naar openbare constructors.
- binder
- Binder
Een object dat de constructor gebruikt bindingAttr en args identificeert typeName . Als binder dat het is null, wordt de standaardbinding gebruikt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
- culture
- CultureInfo
Cultuurspecifieke informatie die de dwang van args de formele typen regelt die voor de typeName constructor zijn gedeclareerd. Als culture dat het is null, wordt de CultureInfo voor de huidige thread gebruikt.
- activationAttributes
- Object[]
Een matrix van een of meer kenmerken die kunnen deelnemen aan de activering. Dit is doorgaans een matrix die één UrlAttribute object bevat dat de URL aangeeft die nodig is om een extern object te activeren.
Deze parameter is gerelateerd aan door de client geactiveerde objecten. Clientactivering is een verouderde technologie die behouden blijft voor achterwaartse compatibiliteit, maar wordt niet aanbevolen voor nieuwe ontwikkeling. Gedistribueerde toepassingen moeten in plaats daarvan Windows Communication Foundation gebruiken.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte exemplaar of null voor Nullable<T> exemplaren zonder waarde.
- Kenmerken
Uitzonderingen
typeName is null.
Er is geen overeenkomende constructor gevonden.
typeName is niet gevonden in assemblyName.
assemblyName is niet gevonden.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
De constructor, die is aangeroepen via weerspiegeling, heeft een uitzondering veroorzaakt.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
activationAttributes is geen lege matrix en het type dat wordt gemaakt, is niet afgeleid van MarshalByRefObject.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
assemblyName is geen geldige assembly.
– of –
De common Language Runtime (CLR) versie 2.0 of hoger is momenteel geladen en assemblyName is gecompileerd voor een versie van de CLR die later is dan de momenteel geladen versie. Houd er rekening mee dat de .NET Framework-versies 2.0, 3.0 en 3.5 allemaal CLR-versie 2.0 gebruiken.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
De assemblynaam of codebasis is ongeldig.
Opmerkingen
Gebruik ObjectHandle.Unwrap dit om de retourwaarde uit te pakken.
In .NET Core 3.0 en hoger worden assemblybelastingen die door deze API worden geactiveerd, beïnvloed door de huidige waarde van AssemblyLoadContext.CurrentContextualReflectionContext.
Note
Deze methode kan worden gebruikt om niet-openbare typen en leden te maken als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly met de niet-openbare typen en leden is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo, Object[])
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- type
- Type
Het type object dat moet worden gemaakt.
- bindingAttr
- BindingFlags
Een combinatie van nul of meer bitvlagmen die van invloed zijn op de zoekopdracht naar de type constructor. Als bindingAttr nul is, wordt een hoofdlettergevoelige zoekopdracht uitgevoerd naar openbare constructors.
- binder
- Binder
Een object dat de constructor gebruikt bindingAttr en args identificeert type . Als binder dat het is null, wordt de standaardbinding gebruikt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
- culture
- CultureInfo
Cultuurspecifieke informatie die de dwang van args de formele typen regelt die voor de type constructor zijn gedeclareerd. Als culture dat het is null, wordt de CultureInfo voor de huidige thread gebruikt.
- activationAttributes
- Object[]
Een matrix van een of meer kenmerken die kunnen deelnemen aan de activering. Dit is doorgaans een matrix die één UrlAttribute object bevat dat de URL aangeeft die nodig is om een extern object te activeren.
Deze parameter is gerelateerd aan door de client geactiveerde objecten. Clientactivering is een verouderde technologie die behouden blijft voor achterwaartse compatibiliteit, maar wordt niet aanbevolen voor nieuwe ontwikkeling. Gedistribueerde toepassingen moeten in plaats daarvan Windows Communication Foundation gebruiken.
Retouren
Een verwijzing naar het zojuist gemaakte object of null voor Nullable<T> exemplaren zonder waarde.
Uitzonderingen
type is null.
type is geen RuntimeType.
– of –
type is een open algemeen type (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert true).
type
TypeBuilderkan geen .
– of –
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
activationAttributes is geen lege matrix en het type dat wordt gemaakt, is niet afgeleid van MarshalByRefObject.
– of –
De assembly die een dynamische assembly bevat type die is gemaakt met Save.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
De constructor die wordt aangeroepen, genereert een uitzondering.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Er is geen overeenkomende constructor gevonden.
type is een COM-object, maar de klasse-id die wordt gebruikt om het type te verkrijgen, is ongeldig of de geïdentificeerde klasse is niet geregistreerd.
type is geen geldig type.
Opmerkingen
De constructor die moet worden aangeroepen, moet de meest specifieke overeenkomst bieden met de opgegeven argumentenlijst onder de beperkingen van de opgegeven bindingskenmerken en bindingskenmerken.
Note
Deze methode kan worden gebruikt voor toegang tot niet-openbare typen en leden als de beller is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de niet-openbare typen en leden is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(Type, BindingFlags, Binder, Object[], CultureInfo)
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- type
- Type
Het type object dat moet worden gemaakt.
- bindingAttr
- BindingFlags
Een combinatie van nul of meer bitvlagmen die van invloed zijn op de zoekopdracht naar de type constructor. Als bindingAttr nul is, wordt een hoofdlettergevoelige zoekopdracht uitgevoerd naar openbare constructors.
- binder
- Binder
Een object dat de constructor gebruikt bindingAttr en args identificeert type . Als binder dat het is null, wordt de standaardbinding gebruikt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
- culture
- CultureInfo
Cultuurspecifieke informatie die de dwang van args de formele typen regelt die voor de type constructor zijn gedeclareerd. Als culture dat het is null, wordt de CultureInfo voor de huidige thread gebruikt.
Retouren
Een verwijzing naar het zojuist gemaakte object of null voor Nullable<T> exemplaren zonder waarde.
Uitzonderingen
type is null.
type is geen RuntimeType.
– of –
type is een open algemeen type (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert true).
type
TypeBuilderkan geen .
– of –
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
De assembly die een dynamische assembly bevat type die is gemaakt met Save.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
De constructor die wordt aangeroepen, genereert een uitzondering.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Er is geen overeenkomende constructor gevonden.
type is een COM-object, maar de klasse-id die wordt gebruikt om het type te verkrijgen, is ongeldig of de geïdentificeerde klasse is niet geregistreerd.
type is geen geldig type.
Opmerkingen
De constructor die moet worden aangeroepen, moet de meest specifieke overeenkomst bieden met de opgegeven argumentenlijst onder de beperkingen van de opgegeven bindingskenmerken en bindingskenmerken.
Note
Deze methode kan worden gebruikt voor toegang tot niet-openbare typen en leden als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly met de niet-openbare typen en leden is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(Type, Object[], Object[])
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- type
- Type
Het type object dat moet worden gemaakt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
- activationAttributes
- Object[]
Een matrix van een of meer kenmerken die kunnen deelnemen aan de activering. Dit is doorgaans een matrix die één UrlAttribute object bevat dat de URL aangeeft die nodig is om een extern object te activeren.
Deze parameter is gerelateerd aan door de client geactiveerde objecten. Clientactivering is een verouderde technologie die behouden blijft voor achterwaartse compatibiliteit, maar wordt niet aanbevolen voor nieuwe ontwikkeling. Gedistribueerde toepassingen moeten in plaats daarvan Windows Communication Foundation gebruiken.
Retouren
Een verwijzing naar het zojuist gemaakte object of null voor Nullable<T> exemplaren zonder waarde.
Uitzonderingen
type is null.
type is geen RuntimeType.
– of –
type is een open algemeen type (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert true).
type
TypeBuilderkan geen .
– of –
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
activationAttributes is geen lege matrix en het type dat wordt gemaakt, is niet afgeleid van MarshalByRefObject.
– of –
De assembly die een dynamische assembly bevat type die is gemaakt met Save.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
De constructor die wordt aangeroepen, genereert een uitzondering.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Er is geen overeenkomende openbare constructor gevonden.
type is een COM-object, maar de klasse-id die wordt gebruikt om het type te verkrijgen, is ongeldig of de geïdentificeerde klasse is niet geregistreerd.
type is geen geldig type.
Opmerkingen
De constructor die moet worden aangeroepen, moet toegankelijk zijn en moet de meest specifieke overeenkomst bieden met de opgegeven argumentenlijst.
Note
Deze methode kan worden gebruikt voor toegang tot niet-openbare typen als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly die de niet-openbare typen bevat, is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(String, String, Object[])
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven met behulp van de benoemde assembly en parameterloze constructor.
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
Parameters
- assemblyName
- String
De naam van de assembly waar het type met de naam typeName wordt gezocht. Als assemblyName dat het is null, wordt de uitgevoerde assembly doorzocht.
- typeName
- String
De volledig gekwalificeerde naam van het type om een exemplaar van te maken.
- activationAttributes
- Object[]
Een matrix van een of meer kenmerken die kunnen deelnemen aan de activering. Dit is doorgaans een matrix die één UrlAttribute object bevat dat de URL aangeeft die nodig is om een extern object te activeren.
Deze parameter is gerelateerd aan door de client geactiveerde objecten. Clientactivering is een verouderde technologie die behouden blijft voor achterwaartse compatibiliteit, maar wordt niet aanbevolen voor nieuwe ontwikkeling. Gedistribueerde toepassingen moeten in plaats daarvan Windows Communication Foundation gebruiken.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren.
- Kenmerken
Uitzonderingen
typeName is null.
Er is geen overeenkomende openbare constructor gevonden.
typeName is niet gevonden in assemblyName.
assemblyName is niet gevonden.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
activationAttributes is geen lege matrix en het type dat wordt gemaakt, is niet afgeleid van MarshalByRefObject.
– of –
activationAttributes is geen UrlAttribute
array
assemblyName is geen geldige assembly.
– of –
De common Language Runtime (CLR) versie 2.0 of hoger is momenteel geladen en assemblyName is gecompileerd voor een versie van de CLR die later is dan de momenteel geladen versie. Houd er rekening mee dat de .NET Framework-versies 2.0, 3.0 en 3.5 allemaal CLR-versie 2.0 gebruiken.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
De assemblynaam of codebasis is ongeldig.
De aangeroepen constructor genereert een uitzondering.
– of –
Er is een fout opgetreden bij het uitvoeren van externe activering in een doel dat is opgegeven in activationAttributes.
Opmerkingen
Gebruik ObjectHandle.Unwrap dit om de retourwaarde uit te pakken.
In .NET Core 3.0 en hoger worden assemblybelastingen die door deze API worden geactiveerd, beïnvloed door de huidige waarde van AssemblyLoadContext.CurrentContextualReflectionContext.
Note
Deze methode kan worden gebruikt om niet-openbare typen te maken als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de niet-openbare typen is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Let op
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.
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven, met behulp van de benoemde assembly en de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- assemblyName
- String
De naam van de assembly waar het type met de naam typeName wordt gezocht. Als assemblyName dat het is null, wordt de uitgevoerde assembly doorzocht.
- typeName
- String
De volledig gekwalificeerde naam van het type om een exemplaar van te maken.
- ignoreCase
- Boolean
true om op te geven dat de zoekopdracht typeName niet hoofdlettergevoelig is; false om op te geven dat de zoekopdracht hoofdlettergevoelig is.
- bindingAttr
- BindingFlags
Een combinatie van nul of meer bitvlagmen die van invloed zijn op de zoekopdracht naar de typeName constructor. Als bindingAttr nul is, wordt een hoofdlettergevoelige zoekopdracht uitgevoerd naar openbare constructors.
- binder
- Binder
Een object dat de constructor gebruikt bindingAttr en args identificeert typeName . Als binder dat het is null, wordt de standaardbinding gebruikt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
- culture
- CultureInfo
Cultuurspecifieke informatie die de dwang van args de formele typen regelt die voor de typeName constructor zijn gedeclareerd. Als culture dat het is null, wordt de CultureInfo voor de huidige thread gebruikt.
- activationAttributes
- Object[]
Een matrix van een of meer kenmerken die kunnen deelnemen aan de activering. Dit is doorgaans een matrix die één UrlAttribute object bevat dat de URL aangeeft die nodig is om een extern object te activeren.
Deze parameter is gerelateerd aan door de client geactiveerde objecten. Clientactivering is een verouderde technologie die behouden blijft voor achterwaartse compatibiliteit, maar wordt niet aanbevolen voor nieuwe ontwikkeling. Gedistribueerde toepassingen moeten in plaats daarvan Windows Communication Foundation gebruiken.
- securityInfo
- Evidence
Informatie die wordt gebruikt om beslissingen te nemen over het beveiligingsbeleid en codemachtigingen te verlenen.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren zonder waarde.
- Kenmerken
Uitzonderingen
typeName is null.
Er is geen overeenkomende constructor gevonden.
typeName is niet gevonden in assemblyName.
assemblyName is niet gevonden.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
De constructor, die is aangeroepen via weerspiegeling, heeft een uitzondering veroorzaakt.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
activationAttributes is geen lege matrix en het type dat wordt gemaakt, is niet afgeleid van MarshalByRefObject.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
assemblyName is geen geldige assembly.
– of –
De common Language Runtime (CLR) versie 2.0 of hoger is momenteel geladen en assemblyName is gecompileerd voor een versie van de CLR die later is dan de momenteel geladen versie. Houd er rekening mee dat de .NET Framework-versies 2.0, 3.0 en 3.5 allemaal CLR-versie 2.0 gebruiken.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
De assemblynaam of codebasis is ongeldig.
Opmerkingen
Gebruik ObjectHandle.Unwrap dit om de retourwaarde uit te pakken.
Note
Deze methode kan worden gebruikt om niet-openbare typen en leden te maken als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly met de niet-openbare typen en leden is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(Type, Object[])
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de constructor die het beste overeenkomt met de opgegeven parameters.
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
Parameters
- type
- Type
Het type object dat moet worden gemaakt.
- args
- Object[]
Een matrix met argumenten die overeenkomen in getal, volgorde en typ de parameters van de constructor die moet worden aangeroepen. Als args dit een lege matrix is of null, wordt de constructor die geen parameters (de parameterloze constructor) gebruikt, aangeroepen.
Retouren
Een verwijzing naar het zojuist gemaakte object of null voor Nullable<T> exemplaren zonder waarde.
Uitzonderingen
type is null.
type is geen RuntimeType.
– of –
type is een open algemeen type (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert true).
type
TypeBuilderkan geen .
– of –
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
De assembly die een dynamische assembly bevat type die is gemaakt met Save.
– of –
De constructor die de beste overeenkomsten args heeft, heeft varargs argumenten.
De constructor die wordt aangeroepen, genereert een uitzondering.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Opmerking: In .NET voor Windows Store-apps of de Portable Class Library, haalt u in plaats daarvan de uitzondering van de basisklasse op, MemberAccessException.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Er is geen overeenkomende openbare constructor gevonden.
Opmerking: In .NET voor Windows Store-apps of de Portable Class Library, haalt u in plaats daarvan de uitzondering van de basisklasse op, MissingMemberException.
type is een COM-object, maar de klasse-id die wordt gebruikt om het type te verkrijgen, is ongeldig of de geïdentificeerde klasse is niet geregistreerd.
type is geen geldig type.
Voorbeelden
In het volgende voorbeeld wordt de CreateInstance(Type, Object[]) methode aangeroepen om een String object te maken. Hiermee wordt de String.String(Char[], Int32, Int32) constructor aanroepen om een tekenreeks te instantiëren die tien elementen van een tekenmatrix bevat vanaf de veertiende positie.
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
In het volgende voorbeeld wordt een gelabelde matrix gemaakt waarvan de elementen argumenten zijn die moeten worden doorgegeven aan een String constructor. In het voorbeeld wordt vervolgens elke matrix doorgegeven aan de CreateInstance(Type, Object[]) methode om de juiste tekenreeksconstructor aan te roepen.
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
Opmerkingen
De constructor die moet worden aangeroepen, moet toegankelijk zijn en moet de meest specifieke overeenkomst bieden met de opgegeven argumentenlijst.
Note
Deze methode kan worden gebruikt voor toegang tot niet-openbare typen als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly die de niet-openbare typen bevat, is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(Type, Boolean)
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de parameterloze constructor van dat type.
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
Parameters
- type
- Type
Het type object dat moet worden gemaakt.
- nonPublic
- Boolean
true als een openbare of niet-openbare parameterloze constructor kan overeenkomen; false als alleen een openbare parameterloze constructor kan overeenkomen.
Retouren
Een verwijzing naar het zojuist gemaakte object of null voor Nullable<T> exemplaren.
Uitzonderingen
type is null.
type is geen RuntimeType.
– of –
type is een open algemeen type (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert true).
type
TypeBuilderkan geen .
– of –
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
De assembly die een dynamische assembly bevat type die is gemaakt met Save.
De constructor die wordt aangeroepen, genereert een uitzondering.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Er is geen overeenkomende openbare constructor gevonden.
type is een COM-object, maar de klasse-id die wordt gebruikt om het type te verkrijgen, is ongeldig of de geïdentificeerde klasse is niet geregistreerd.
type is geen geldig type.
Opmerkingen
Note
Deze methode kan worden gebruikt voor toegang tot niet-openbare typen en leden als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly met de niet-openbare typen en leden is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(String, String)
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven met behulp van de benoemde assembly en parameterloze constructor.
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
Parameters
- assemblyName
- String
De naam van de assembly waar het type met de naam typeName wordt gezocht. Als assemblyName dat het is null, wordt de uitgevoerde assembly doorzocht.
- typeName
- String
De volledig gekwalificeerde naam van het type om een exemplaar van te maken.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren.
- Kenmerken
Uitzonderingen
typeName is null.
Er is geen overeenkomende openbare constructor gevonden.
typeName is niet gevonden in assemblyName.
assemblyName is niet gevonden.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
U kunt geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
De constructor, die is aangeroepen via weerspiegeling, heeft een uitzondering veroorzaakt.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
assemblyName is geen geldige assembly.
– of –
De common Language Runtime (CLR) versie 2.0 of hoger is momenteel geladen en assemblyName is gecompileerd voor een versie van de CLR die later is dan de momenteel geladen versie. Houd er rekening mee dat de .NET Framework-versies 2.0, 3.0 en 3.5 allemaal CLR-versie 2.0 gebruiken.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
De assemblynaam of codebasis is ongeldig.
Voorbeelden
In het volgende voorbeeld wordt een klasse gedefinieerd die is benoemd Person in een assembly met de naam PersonInfo. Houd er rekening mee dat de Person klasse twee constructors heeft, waarvan één parameterloos is.
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
In het volgende voorbeeld wordt de CreateInstance(String, String) methode aangeroepen om de Person klasse te instantiëren. Hiervoor moet een verwijzing naar PersonInfo.dll worden toegevoegd aan het project. Omdat de CreateInstance(String, String) methode de Person klasseparameterloze constructor aanroept, wijst het voorbeeld een waarde toe aan Name de eigenschap ervan.
using System;
using System.Runtime.Remoting;
public class Example
{
public static void Main()
{
ObjectHandle handle = Activator.CreateInstance("PersonInfo", "Person");
Person p = (Person) handle.Unwrap();
p.Name = "Samuel";
Console.WriteLine(p);
}
}
// The example displays the following output:
// Samuel
open System
let handle = Activator.CreateInstance("PersonInfo", "Person")
let p = handle.Unwrap() :?> Person
p.Name <- "Samuel"
printfn $"{p}"
// The example displays the following output:
// Samuel
Imports System.Runtime.Remoting
Module Example
Public Sub Main()
Dim handle As ObjectHandle = Activator.CreateInstance("PersonInfo", "Person")
Dim p As Person = CType(handle.Unwrap(), Person)
p.Name = "Samuel"
Console.WriteLine(p)
End Sub
End Module
' The example displays the following output:
' Samuel
CreateInstance Het wordt echter vaak aangeroepen om een type te instantiëren dat machinegrenzen overschrijdt of die niet bekend is tijdens het ontwerp. In dit geval kunt u geen verwijzing naar de assembly in het project opnemen en kunt u geen vroege aanroepen naar de leden van het type maken. Om deze beperking te omzeilen, gebruikt het volgende voorbeeld de CreateInstance methode samen met weerspiegeling om een waarde toe te wijzen aan de eigenschap van Person het object en om de Name waarde ervan weer te geven.
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
Opmerkingen
Gebruik ObjectHandle.Unwrap dit om de retourwaarde uit te pakken.
assemblyName kan een van de volgende opties zijn:
De eenvoudige naam van een assembly, zonder het pad of de bestandsextensie. U kunt bijvoorbeeld opgeven
TypeExtensionsvoor een assembly waarvan het pad en de naam .\bin\TypeExtensions.dllzijn.De volledige naam van een ondertekende assembly, die bestaat uit de eenvoudige naam, versie, cultuur en openbare-sleuteltoken; Bijvoorbeeld 'TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51'.
Zie Hoe assembly's worden geïdentificeerd en geladen in de algemene taalruntime voor meer informatie over hoe assembly's worden geïdentificeerd en geladen. Zie De locatie van een assembly opgeven voor informatie over het gebruik van het toepassingsconfiguratiebestand voor het definiëren van assemblylocaties. Als assemblyName deze wordt gevonden, wordt deze geladen in de standaardcontext.
In .NET Core 3.0 en hoger worden assemblybelastingen die door deze API worden geactiveerd, beïnvloed door de huidige waarde van AssemblyLoadContext.CurrentContextualReflectionContext.
Note
Deze methode kan worden gebruikt om niet-openbare typen te maken als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly die de niet-openbare typen bevat, beperkt is tot de toekenningsset van de aanroeper of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(ActivationContext, String[])
Hiermee maakt u een exemplaar van het type dat wordt aangewezen door het opgegeven ActivationContext object en wordt geactiveerd met de opgegeven aangepaste activeringsgegevens.
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
Parameters
- activationContext
- ActivationContext
Een activeringscontextobject waarmee het object wordt opgegeven dat moet worden gemaakt.
- activationCustomData
- String[]
Een matrix met Unicode-tekenreeksen die aangepaste activeringsgegevens bevatten.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren.
Opmerkingen
Gebruik de ObjectHandle.Unwrap methode om de retourwaarde uit te pakken.
De activeringscontext wordt gebruikt tijdens activering op basis van manifesten om het domeinbeleid in te stellen en een op toepassingen gebaseerd beveiligingsmodel te bieden. De ActivationContext klasse bevat een ApplicationIdentity object dat toegang biedt tot het toepassingsmanifest. Zie de ApplicationSecurityManager klas voor meer informatie.
Zie ook
Van toepassing op
CreateInstance(Type)
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
- Bron:
- Activator.cs
Hiermee maakt u een exemplaar van het opgegeven type met behulp van de parameterloze constructor van dat type.
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
Parameters
- type
- Type
Het type object dat moet worden gemaakt.
Retouren
Een verwijzing naar het zojuist gemaakte object of null voor Nullable<T> exemplaren.
Uitzonderingen
type is null.
type is geen RuntimeType.
– of –
type is een open algemeen type (dat wil gezegd, de ContainsGenericParameters eigenschap retourneert true).
type
TypeBuilderkan geen .
– of –
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
– of –
De assembly die een dynamische assembly bevat type die is gemaakt met Save.
De constructor die wordt aangeroepen, genereert een uitzondering.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Opmerking: In .NET voor Windows Store-apps of de Portable Class Library, haalt u in plaats daarvan de uitzondering van de basisklasse op, MemberAccessException.
Kan geen exemplaar van een abstracte klasse maken of dit lid is aangeroepen met een mechanisme voor late binding.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Er is geen overeenkomende openbare constructor gevonden.
Opmerking: In .NET voor Windows Store-apps of de Portable Class Library, haalt u in plaats daarvan de uitzondering van de basisklasse op, MissingMemberException.
type is een COM-object, maar de klasse-id die wordt gebruikt om het type te verkrijgen, is ongeldig of de geïdentificeerde klasse is niet geregistreerd.
type is geen geldig type.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de CreateInstance(Type) methode aanroept. Exemplaren van verschillende typen worden gemaakt en de standaardwaarden worden weergegeven.
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
Opmerkingen
De constructor die moet worden aangeroepen, moet toegankelijk zijn.
Note
Deze methode kan worden gebruikt voor toegang tot niet-openbare typen als de aanroeper is verleend ReflectionPermission met de ReflectionPermissionFlag.RestrictedMemberAccess vlag en als de toekenningsset van de assembly die de niet-openbare typen bevat, is beperkt tot de toekenningsset van de beller of tot een subset daarvan. (Zie Beveiligingsoverwegingen voor reflectie.) Als u deze functionaliteit wilt gebruiken, moet uw toepassing zich richten op .NET Framework 3.5 of hoger.
Van toepassing op
CreateInstance(ActivationContext)
Hiermee maakt u een exemplaar van het type dat is aangewezen door het opgegeven ActivationContext object.
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
Parameters
- activationContext
- ActivationContext
Een activeringscontextobject waarmee het object wordt opgegeven dat moet worden gemaakt.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren.
Opmerkingen
Gebruik de ObjectHandle.Unwrap methode om de retourwaarde uit te pakken.
De activeringscontext wordt gebruikt tijdens activering op basis van manifesten om het domeinbeleid in te stellen en een op toepassingen gebaseerd beveiligingsmodel te bieden. De ActivationContext klasse bevat een ApplicationIdentity object dat toegang biedt tot het toepassingsmanifest. Zie de ApplicationSecurityManager klas voor meer informatie.
Zie ook
Van toepassing op
CreateInstance(AppDomain, String, String)
Hiermee maakt u een exemplaar van het type waarvan de naam is opgegeven in het opgegeven externe domein, met behulp van de benoemde assembly en parameterloze constructor.
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
Parameters
- domain
- AppDomain
Het externe domein waarin het type met de naam typeName is gemaakt.
- assemblyName
- String
De naam van de assembly waar het type met de naam typeName wordt gezocht. Als assemblyName dat het is null, wordt de uitgevoerde assembly doorzocht.
- typeName
- String
De volledig gekwalificeerde naam van het type om een exemplaar van te maken.
Retouren
Een ingang die moet worden uitgepakt voor toegang tot het zojuist gemaakte object of null voor Nullable<T> exemplaren.
- Kenmerken
Uitzonderingen
typeName of domain is null.
Er is geen overeenkomende openbare constructor gevonden.
typeName is niet gevonden in assemblyName.
assemblyName is niet gevonden.
De aanroeper is niet gemachtigd om deze constructor aan te roepen.
Kan geen exemplaar van een abstract type maken.
– of –
Dit lid is aangeroepen met een mechanisme voor late binding.
De constructor, die is aangeroepen via weerspiegeling, heeft een uitzondering veroorzaakt.
Het COM-type is niet verkregen via GetTypeFromProgID of GetTypeFromCLSID.
Het maken vanTypedReference, ArgIteratoren VoidRuntimeArgumentHandle typen of matrices van deze typen wordt niet ondersteund.
assemblyName is geen geldige assembly.
– of –
De common Language Runtime (CLR) versie 2.0 of hoger is momenteel geladen en assemblyName is gecompileerd voor een versie van de CLR die later is dan de momenteel geladen versie. Houd er rekening mee dat de .NET Framework-versies 2.0, 3.0 en 3.5 allemaal CLR-versie 2.0 gebruiken.
Een assembly of module is tweemaal geladen met twee verschillende bewijzen.
– of –
De assemblynaam of codebasis is ongeldig.
Opmerkingen
Gebruik CreateInstance deze opdracht wanneer een host code moet uitvoeren in een toepassingsdomein met beperkte beveiligingsmachtigingen.
Gebruik ObjectHandle.Unwrap dit om de retourwaarde uit te pakken.
Van toepassing op
CreateInstance<T>()
Hiermee maakt u een exemplaar van het type dat is aangewezen door de opgegeven algemene typeparameter, met behulp van de parameterloze constructor.
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
Type parameters
- T
Het type dat moet worden gemaakt.
Retouren
Een verwijzing naar het zojuist gemaakte object of null voor Nullable<T> exemplaren.
Uitzonderingen
Kan geen exemplaar van een abstracte klasse maken of het type waarvoor is opgegeven T , heeft geen constructor zonder parameters.
Opmerking: In .NET voor Windows Store-apps of de Portable Class Library, haalt u in plaats daarvan de uitzondering van de basisklasse op, MissingMemberException.
Opmerkingen
De CreateInstance<T>() algemene methode wordt gebruikt door compilers om de instantiëring van typen te implementeren die zijn opgegeven door typeparameters. In de volgende algemene methode gebruikt de implementatie new T() bijvoorbeeld de CreateInstance<T>() algemene methode.
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
Over het algemeen is er geen gebruik voor de CreateInstance<T>() algemene methode in toepassingscode, omdat het type op het moment van compileren bekend moet zijn. Als het type bekend is tijdens het compileren, kan de normale instantiatiesyntaxis worden gebruikt (new operator in C#, New in Visual Basic). Als het type niet bekend is tijdens het compileren, kunt u een niet-generieke overbelasting van CreateInstance.
Er zijn geen overbelastingen van de CreateInstance<T>() algemene methode die argumentlijsten aannemen, omdat de niet-algemene overbelastingen van CreateInstance al late gebonden constructorresolutie bieden.