Activator.CreateInstance Método

Definição

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

Sobrecargas

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

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado usando o assembly nomeado e o construtor que corresponda melhor aos parâmetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

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

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado usando o assembly nomeado e o construtor que corresponda melhor aos parâmetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified parameters.

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

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor que melhor corresponde aos parâmetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

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

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(String, String, Object[])

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor sem parâmetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

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

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor que melhor corresponde aos parâmetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified parameters.

CreateInstance(Type, Object[])

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean)

Cria uma instância do tipo especificado usando o construtor sem parâmetros do tipo.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(String, String)

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor sem parâmetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(ActivationContext, String[])

Cria uma instância do tipo que é designada pelo objeto ActivationContext especificado e ativada com os dados de ativação personalizados especificados.Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

CreateInstance(Type)

Cria uma instância do tipo especificado usando o construtor sem parâmetros do tipo.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(ActivationContext)

Cria uma instância do tipo designado pelo objeto ActivationContext especificado.Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(AppDomain, String, String)

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado, usando o assembly nomeado e o construtor sem parâmetros.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

CreateInstance<T>()

Cria uma instância do tipo designado pelo parâmetro de tipo genérico especificado, usando o construtor sem parâmetros.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

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

Aviso

Esta API agora é obsoleta.

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado usando o assembly nomeado e o construtor que corresponda melhor aos parâmetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified 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);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
[System.Security.SecurityCritical]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (AppDomain domain, string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityAttributes);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

Parâmetros

domain
AppDomain

O domínio remoto no qual o tipo chamado typeName foi criado.The domain where the type named typeName is created.

assemblyName
String

O nome do assembly em que o tipo chamado typeName é procurado.The name of the assembly where the type named typeName is sought. Caso assemblyName seja null, o assembly em execução é pesquisado.If assemblyName is null, the executing assembly is searched.

typeName
String

O nome totalmente qualificado do tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que a pesquisa de typeName não diferencia maiúsculas de minúsculas; false para especificar que a pesquisa diferencia maiúsculas de minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Uma combinação de zero ou mais sinalizadores de bit que afetam a pesquisa do construtor typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Caso bindingAttr seja zero, uma pesquisa que diferencia maiúsculas de minúsculas para construtores públicos é realizada.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Um objeto que usa bindingAttr e args para buscar e identificar o construtor typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Caso binder seja null, o associador padrão é usado.If binder is null, the default binder is used.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Informações específicas de cultura que controlam a coerção de args para os tipos formais declarados do construtor typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Caso culture seja null, CultureInfo para o thread atual é usado.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Uma matriz de um ou mais atributos que podem participar da ativação.An array of one or more attributes that can participate in activation. Ela costuma ser uma matriz contendo um único objeto UrlAttribute.This is typically an array that contains a single UrlAttribute object. O UrlAttribute especifica a URL necessária para ativar um objeto remoto.The UrlAttribute specifies the URL that is required to activate a remote object.

securityAttributes
Evidence

Informações usadas para tomar decisões sobre política de segurança e conceder permissões.Information used to make security policy decisions and grant code permissions.

Retornos

Um identificador que deve ser desencapsulado para acessar a instância recém-criada.A handle that must be unwrapped to access the newly created instance.

Atributos

Exceções

domain ou typeName é null.domain or typeName is null.

Nenhum construtor correspondente foi encontrado.No matching constructor was found.

typename não foi encontrado em assemblyName.typename was not found in assemblyName.

assemblyName não foi encontrado.assemblyName was not found.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O construtor, que foi invocado por meio da reflexão, lançou uma exceção.The constructor, which was invoked through reflection, threw an exception.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

A criação de tipos TypedReference, ArgIterator, Void e RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- activationAttributes não é uma matriz vazia, e o tipo que está sendo criado não deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName não é um assembly válido.assemblyName is not a valid assembly.

- ou --or- A versão 2.0 do Common Language Runtime (CLR) ou posterior é carregado no momento, e assemblyName foi compilado para uma versão do CLR posterior à versão carregada atualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Todas as versões do .NET Framework 2.0, 3.0 e 3.5 usam o CLR versão 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.An assembly or module was loaded twice with two different evidences.

- ou --or-

O nome do assembly ou a base de código é inválido.The assembly name or code base is invalid.

Comentários

Use CreateInstance quando um host precisar executar código em um domínio de aplicativo que tenha permissões de segurança restritas.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

Use ObjectHandle.Unwrap para desencapsular o valor de retorno.Use ObjectHandle.Unwrap to unwrap the return value.

Observação

Este método usa SecurityAction.LinkDemand para exigir que o chamador imediato tenha confiança total.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
a capacidade de invocar operações em todos os membros do tipo.for the ability to invoke operations on all type members. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

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

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado usando o assembly nomeado e o construtor que corresponda melhor aos parâmetros especificados.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and the constructor that best matches the specified 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);
static member CreateInstance : AppDomain * string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

Parâmetros

domain
AppDomain

O domínio remoto no qual o tipo chamado typeName foi criado.The domain where the type named typeName is created.

assemblyName
String

O nome do assembly em que o tipo chamado typeName é procurado.The name of the assembly where the type named typeName is sought. Caso assemblyName seja null, o assembly em execução é pesquisado.If assemblyName is null, the executing assembly is searched.

typeName
String

O nome totalmente qualificado do tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que a pesquisa de typeName não diferencia maiúsculas de minúsculas; false para especificar que a pesquisa diferencia maiúsculas de minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Uma combinação de zero ou mais sinalizadores de bit que afetam a pesquisa do construtor typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Caso bindingAttr seja zero, uma pesquisa que diferencia maiúsculas de minúsculas para construtores públicos é realizada.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Um objeto que usa bindingAttr e args para buscar e identificar o construtor typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Caso binder seja null, o associador padrão é usado.If binder is null, the default binder is used.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Informações específicas de cultura que controlam a coerção de args para os tipos formais declarados do construtor typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Caso culture seja null, CultureInfo para o thread atual é usado.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Uma matriz de um ou mais atributos que podem participar da ativação.An array of one or more attributes that can participate in activation. Normalmente, essa é uma matriz que contém um único objeto UrlAttribute que especifica a URL necessária para ativar um objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Esse parâmetro está relacionado a objetos ativados pelo cliente.This parameter is related to client-activated objects. A ativação do cliente é uma tecnologia herdada, mantida para compatibilidade com versões anteriores, mas não é recomendada para novos desenvolvimentos.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Em vez disso, os aplicativos distribuídos devem usar o Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Retornos

Um identificador que deve ser desencapsulado para acessar a instância recém-criada.A handle that must be unwrapped to access the newly created instance.

Atributos

Exceções

domain ou typeName é null.domain or typeName is null.

Nenhum construtor correspondente foi encontrado.No matching constructor was found.

typename não foi encontrado em assemblyName.typename was not found in assemblyName.

assemblyName não foi encontrado.assemblyName was not found.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O construtor, que foi invocado por meio da reflexão, lançou uma exceção.The constructor, which was invoked through reflection, threw an exception.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

A criação de tipos TypedReference, ArgIterator, Void e RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- activationAttributes não é uma matriz vazia, e o tipo que está sendo criado não deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName não é um assembly válido.assemblyName is not a valid assembly.

- ou --or- A versão 2.0 do Common Language Runtime (CLR) ou posterior é carregado no momento, e assemblyName foi compilado para uma versão do CLR posterior à versão carregada atualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Todas as versões do .NET Framework 2.0, 3.0 e 3.5 usam o CLR versão 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.An assembly or module was loaded twice with two different evidences.

- ou --or-

O nome do assembly ou a base de código é inválido.The assembly name or code base is invalid.

Comentários

Use CreateInstance quando um host precisar executar código em um domínio de aplicativo que tenha permissões de segurança restritas.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

Use ObjectHandle.Unwrap para desencapsular o valor de retorno.Use ObjectHandle.Unwrap to unwrap the return value.

Observação

Este método usa SecurityAction.LinkDemand para exigir que o chamador imediato tenha confiança total.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

Segurança

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
a capacidade de invocar operações em todos os membros do tipo.for the ability to invoke operations on all type members. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

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

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor que melhor corresponde aos parâmetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified 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);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> System.Runtime.Remoting.ObjectHandle

Parâmetros

assemblyName
String

O nome do assembly em que o tipo chamado typeName é procurado.The name of the assembly where the type named typeName is sought. Caso assemblyName seja null, o assembly em execução é pesquisado.If assemblyName is null, the executing assembly is searched.

typeName
String

O nome totalmente qualificado do tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que a pesquisa de typeName não diferencia maiúsculas de minúsculas; false para especificar que a pesquisa diferencia maiúsculas de minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Uma combinação de zero ou mais sinalizadores de bit que afetam a pesquisa do construtor typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Caso bindingAttr seja zero, uma pesquisa que diferencia maiúsculas de minúsculas para construtores públicos é realizada.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Um objeto que usa bindingAttr e args para buscar e identificar o construtor typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Caso binder seja null, o associador padrão é usado.If binder is null, the default binder is used.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Informações específicas de cultura que controlam a coerção de args para os tipos formais declarados do construtor typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Caso culture seja null, CultureInfo para o thread atual é usado.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Uma matriz de um ou mais atributos que podem participar da ativação.An array of one or more attributes that can participate in activation. Normalmente, essa é uma matriz que contém um único objeto UrlAttribute que especifica a URL necessária para ativar um objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Esse parâmetro está relacionado a objetos ativados pelo cliente.This parameter is related to client-activated objects. A ativação do cliente é uma tecnologia herdada, mantida para compatibilidade com versões anteriores, mas não é recomendada para novos desenvolvimentos.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Em vez disso, os aplicativos distribuídos devem usar o Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Retornos

Um identificador que deve ser desencapsulado para acessar a instância recém-criada.A handle that must be unwrapped to access the newly created instance.

Exceções

typeName é null.typeName is null.

Nenhum construtor correspondente foi encontrado.No matching constructor was found.

typename não foi encontrado em assemblyName.typename was not found in assemblyName.

assemblyName não foi encontrado.assemblyName was not found.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O construtor, que foi invocado por meio da reflexão, lançou uma exceção.The constructor, which was invoked through reflection, threw an exception.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

A criação de tipos TypedReference, ArgIterator, Void e RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- activationAttributes não é uma matriz vazia, e o tipo que está sendo criado não deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName não é um assembly válido.assemblyName is not a valid assembly.

- ou --or- A versão 2.0 do Common Language Runtime (CLR) ou posterior é carregado no momento, e assemblyName foi compilado para uma versão do CLR posterior à versão carregada atualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Todas as versões do .NET Framework 2.0, 3.0 e 3.5 usam o CLR versão 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.An assembly or module was loaded twice with two different evidences.

- ou --or-

O nome do assembly ou a base de código é inválido.The assembly name or code base is invalid.

Comentários

Use ObjectHandle.Unwrap para desencapsular o valor de retorno.Use ObjectHandle.Unwrap to unwrap the return value.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para criar tipos e membros não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos e membros não públicos for restrito ao Grant define ou para um subconjunto dele.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos e membros não públicos, independentemente do conjunto de concessões.for accessing nonpublic types and members regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

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

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified 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);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] -> obj

Parâmetros

type
Type

O tipo de objeto a ser criado.The type of object to create.

bindingAttr
BindingFlags

Uma combinação de zero ou mais sinalizadores de bit que afetam a pesquisa do construtor type.A combination of zero or more bit flags that affect the search for the type constructor. Caso bindingAttr seja zero, uma pesquisa que diferencia maiúsculas de minúsculas para construtores públicos é realizada.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Um objeto que usa bindingAttr e args para buscar e identificar o construtor type.An object that uses bindingAttr and args to seek and identify the type constructor. Caso binder seja null, o associador padrão é usado.If binder is null, the default binder is used.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Informações específicas de cultura que controlam a coerção de args para os tipos formais declarados do construtor type.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. Caso culture seja null, CultureInfo para o thread atual é usado.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Uma matriz de um ou mais atributos que podem participar da ativação.An array of one or more attributes that can participate in activation. Normalmente, essa é uma matriz que contém um único objeto UrlAttribute que especifica a URL necessária para ativar um objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Esse parâmetro está relacionado a objetos ativados pelo cliente.This parameter is related to client-activated objects. A ativação do cliente é uma tecnologia herdada, mantida para compatibilidade com versões anteriores, mas não é recomendada para novos desenvolvimentos.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Em vez disso, os aplicativos distribuídos devem usar o Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Retornos

Uma referência ao objeto recém-criado.A reference to the newly created object.

Exceções

type é null.type is null.

type não é um RuntimeType.type is not a RuntimeType.

- ou --or- type é um tipo genérico aberto (ou seja, a propriedade ContainsGenericParameters retorna true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type não pode ser um TypeBuilder.type cannot be a TypeBuilder.

- ou --or- A criação de tipos TypedReference, ArgIterator, Voide RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- activationAttributes não é uma matriz vazia, e o tipo que está sendo criado não deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- ou --or- O assembly que contém type é um assembly dinâmico que foi criado com Save.The assembly that contains type is a dynamic assembly that was created with Save.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

O construtor que está sendo chamado lança uma exceção.The constructor being called throws an exception.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Nenhum construtor correspondente foi encontrado.No matching constructor was found.

type é um objeto COM, mas o identificador de classe usado para obter o tipo é inválido, ou a classe identificada não é registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type não é um tipo válido.type is not a valid type.

Comentários

O Construtor a ser invocado deve fornecer a correspondência mais específica com a lista de argumentos especificada sob as restrições do associador especificado e os atributos de associação.The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para acessar tipos e membros não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o Grant Set dos tipos e membros não públicos for restrito ao conjunto de concessão do chamador ou a um subconjunto ali fixo.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para fornecer evidências.for supplying evidence. Enumeração associada: ControlEvidenceAssociated enumeration: ControlEvidence

ReflectionPermission
para acessar tipos e membros não públicos, independentemente do conjunto de concessões.for accessing nonpublic types and members regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

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

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified 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);
static member CreateInstance : Type * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj

Parâmetros

type
Type

O tipo de objeto a ser criado.The type of object to create.

bindingAttr
BindingFlags

Uma combinação de zero ou mais sinalizadores de bit que afetam a pesquisa do construtor type.A combination of zero or more bit flags that affect the search for the type constructor. Caso bindingAttr seja zero, uma pesquisa que diferencia maiúsculas de minúsculas para construtores públicos é realizada.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Um objeto que usa bindingAttr e args para buscar e identificar o construtor type.An object that uses bindingAttr and args to seek and identify the type constructor. Caso binder seja null, o associador padrão é usado.If binder is null, the default binder is used.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Informações específicas de cultura que controlam a coerção de args para os tipos formais declarados do construtor type.Culture-specific information that governs the coercion of args to the formal types declared for the type constructor. Caso culture seja null, CultureInfo para o thread atual é usado.If culture is null, the CultureInfo for the current thread is used.

Retornos

Uma referência ao objeto recém-criado.A reference to the newly created object.

Exceções

type é null.type is null.

type não é um RuntimeType.type is not a RuntimeType.

- ou --or- type é um tipo genérico aberto (ou seja, a propriedade ContainsGenericParameters retorna true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type não pode ser um TypeBuilder.type cannot be a TypeBuilder.

- ou --or- A criação de tipos TypedReference, ArgIterator, Voide RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- O assembly que contém type é um assembly dinâmico que foi criado com Save.The assembly that contains type is a dynamic assembly that was created with Save.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

O construtor que está sendo chamado lança uma exceção.The constructor being called throws an exception.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Nenhum construtor correspondente foi encontrado.No matching constructor was found.

type é um objeto COM, mas o identificador de classe usado para obter o tipo é inválido, ou a classe identificada não é registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type não é um tipo válido.type is not a valid type.

Comentários

O Construtor a ser invocado deve fornecer a correspondência mais específica com a lista de argumentos especificada sob as restrições do associador especificado e os atributos de associação.The constructor to be invoked must provide the most specific match with the specified argument list under the constraints of the specified binder and binding attributes.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para acessar tipos e membros não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos e membros não públicos for restrito ao Grant define ou para um subconjunto dele.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos e membros não públicos, independentemente do conjunto de concessões.for accessing nonpublic types and members regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

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

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified 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);
static member CreateInstance : Type * obj[] * obj[] -> obj

Parâmetros

type
Type

O tipo de objeto a ser criado.The type of object to create.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

activationAttributes
Object[]

Uma matriz de um ou mais atributos que podem participar da ativação.An array of one or more attributes that can participate in activation. Normalmente, essa é uma matriz que contém um único objeto UrlAttribute que especifica a URL necessária para ativar um objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Esse parâmetro está relacionado a objetos ativados pelo cliente.This parameter is related to client-activated objects. A ativação do cliente é uma tecnologia herdada, mantida para compatibilidade com versões anteriores, mas não é recomendada para novos desenvolvimentos.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Em vez disso, os aplicativos distribuídos devem usar o Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Retornos

Uma referência ao objeto recém-criado.A reference to the newly created object.

Exceções

type é null.type is null.

type não é um RuntimeType.type is not a RuntimeType.

- ou --or- type é um tipo genérico aberto (ou seja, a propriedade ContainsGenericParameters retorna true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type não pode ser um TypeBuilder.type cannot be a TypeBuilder.

- ou --or- A criação de tipos TypedReference, ArgIterator, Voide RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- activationAttributes não é uma matriz vazia, e o tipo que está sendo criado não deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- ou --or- O assembly que contém type é um assembly dinâmico que foi criado com Save.The assembly that contains type is a dynamic assembly that was created with Save.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

O construtor que está sendo chamado lança uma exceção.The constructor being called throws an exception.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Nenhum construtor público correspondente foi encontrado.No matching public constructor was found.

type é um objeto COM, mas o identificador de classe usado para obter o tipo é inválido, ou a classe identificada não é registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type não é um tipo válido.type is not a valid type.

Comentários

O Construtor a ser invocado deve estar acessível e deve fornecer a correspondência mais específica com a lista de argumentos especificada.The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para acessar tipos não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos não públicos for restrito ao conjunto de concessão do chamador ou a um subconjunto do reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos não públicos, independentemente do conjunto de concessões.for accessing nonpublic types regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String, Object[])

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor sem parâmetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName, cli::array <System::Object ^> ^ activationAttributes);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, object[] activationAttributes);
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

Parâmetros

assemblyName
String

O nome do assembly em que o tipo chamado typeName é procurado.The name of the assembly where the type named typeName is sought. Caso assemblyName seja null, o assembly em execução é pesquisado.If assemblyName is null, the executing assembly is searched.

typeName
String

O nome totalmente qualificado do tipo preferido.The fully qualified name of the preferred type.

activationAttributes
Object[]

Uma matriz de um ou mais atributos que podem participar da ativação.An array of one or more attributes that can participate in activation. Normalmente, essa é uma matriz que contém um único objeto UrlAttribute que especifica a URL necessária para ativar um objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Esse parâmetro está relacionado a objetos ativados pelo cliente.This parameter is related to client-activated objects. A ativação do cliente é uma tecnologia herdada, mantida para compatibilidade com versões anteriores, mas não é recomendada para novos desenvolvimentos.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Em vez disso, os aplicativos distribuídos devem usar o Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

Retornos

Um identificador que deve ser desencapsulado para acessar a instância recém-criada.A handle that must be unwrapped to access the newly created instance.

Exceções

typeName é null.typeName is null.

Nenhum construtor público correspondente foi encontrado.No matching public constructor was found.

typename não foi encontrado em assemblyName.typename was not found in assemblyName.

assemblyName não foi encontrado.assemblyName was not found.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

A criação de tipos TypedReference, ArgIterator, Void e RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- activationAttributes não é uma matriz vazia, e o tipo que está sendo criado não deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- ou --or- activationAttributes não é um UrlAttributeactivationAttributes is not a UrlAttribute

matriz.array.

assemblyName não é um assembly válido.assemblyName is not a valid assembly.

- ou --or- A versão 2.0 do Common Language Runtime (CLR) ou posterior é carregado no momento, e assemblyName foi compilado para uma versão do CLR posterior à versão carregada atualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Todas as versões do .NET Framework 2.0, 3.0 e 3.5 usam o CLR versão 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.An assembly or module was loaded twice with two different evidences.

- ou --or-

O nome do assembly ou a base de código é inválido.The assembly name or code base is invalid.

Ocorreu um erro durante a tentativa de ativação remota em um destino especificado em activationAttributes.An error occurred when attempting remote activation in a target specified in activationAttributes.

Comentários

Use ObjectHandle.Unwrap para desencapsular o valor de retorno.Use ObjectHandle.Unwrap to unwrap the return value.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método poderá ser usado para criar tipos não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão dos tipos não públicos for restrito ao conjunto de concessão do chamador ou a um subconjunto dele.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos não públicos, independentemente do conjunto de concessões.for accessing nonpublic types regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

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

Aviso

Esta API agora é obsoleta.

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor que melhor corresponde aos parâmetros especificados.Creates an instance of the type whose name is specified, using the named assembly and the constructor that best matches the specified 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);
[System.Obsolete("Methods which use evidence to sandbox are obsolete and will be removed in a future release of the .NET Framework. Please use an overload of CreateInstance which does not take an Evidence parameter. See https://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName, bool ignoreCase, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes, System.Security.Policy.Evidence securityInfo);
static member CreateInstance : string * string * bool * System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo * obj[] * System.Security.Policy.Evidence -> System.Runtime.Remoting.ObjectHandle

Parâmetros

assemblyName
String

O nome do assembly em que o tipo chamado typeName é procurado.The name of the assembly where the type named typeName is sought. Caso assemblyName seja null, o assembly em execução é pesquisado.If assemblyName is null, the executing assembly is searched.

typeName
String

O nome totalmente qualificado do tipo preferido.The fully qualified name of the preferred type.

ignoreCase
Boolean

true para especificar que a pesquisa de typeName não diferencia maiúsculas de minúsculas; false para especificar que a pesquisa diferencia maiúsculas de minúsculas.true to specify that the search for typeName is not case-sensitive; false to specify that the search is case-sensitive.

bindingAttr
BindingFlags

Uma combinação de zero ou mais sinalizadores de bit que afetam a pesquisa do construtor typeName.A combination of zero or more bit flags that affect the search for the typeName constructor. Caso bindingAttr seja zero, uma pesquisa que diferencia maiúsculas de minúsculas para construtores públicos é realizada.If bindingAttr is zero, a case-sensitive search for public constructors is conducted.

binder
Binder

Um objeto que usa bindingAttr e args para buscar e identificar o construtor typeName.An object that uses bindingAttr and args to seek and identify the typeName constructor. Caso binder seja null, o associador padrão é usado.If binder is null, the default binder is used.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

culture
CultureInfo

Informações específicas de cultura que controlam a coerção de args para os tipos formais declarados do construtor typeName.Culture-specific information that governs the coercion of args to the formal types declared for the typeName constructor. Caso culture seja null, CultureInfo para o thread atual é usado.If culture is null, the CultureInfo for the current thread is used.

activationAttributes
Object[]

Uma matriz de um ou mais atributos que podem participar da ativação.An array of one or more attributes that can participate in activation. Normalmente, essa é uma matriz que contém um único objeto UrlAttribute que especifica a URL necessária para ativar um objeto remoto.This is typically an array that contains a single UrlAttribute object that specifies the URL that is required to activate a remote object.

Esse parâmetro está relacionado a objetos ativados pelo cliente.This parameter is related to client-activated objects. A ativação do cliente é uma tecnologia herdada, mantida para compatibilidade com versões anteriores, mas não é recomendada para novos desenvolvimentos.Client activation is a legacy technology that is retained for backward compatibility but is not recommended for new development. Em vez disso, os aplicativos distribuídos devem usar o Windows Communication Foundation.Distributed applications should instead use Windows Communication Foundation.

securityInfo
Evidence

Informações usadas para tomar decisões sobre política de segurança e conceder permissões.Information used to make security policy decisions and grant code permissions.

Retornos

Um identificador que deve ser desencapsulado para acessar a instância recém-criada.A handle that must be unwrapped to access the newly created instance.

Atributos

Exceções

typeName é null.typeName is null.

Nenhum construtor correspondente foi encontrado.No matching constructor was found.

typename não foi encontrado em assemblyName.typename was not found in assemblyName.

assemblyName não foi encontrado.assemblyName was not found.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O construtor, que foi invocado por meio da reflexão, lançou uma exceção.The constructor, which was invoked through reflection, threw an exception.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

A criação de tipos TypedReference, ArgIterator, Void e RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- activationAttributes não é uma matriz vazia, e o tipo que está sendo criado não deriva de MarshalByRefObject.activationAttributes is not an empty array, and the type being created does not derive from MarshalByRefObject.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

assemblyName não é um assembly válido.assemblyName is not a valid assembly.

- ou --or- A versão 2.0 do Common Language Runtime (CLR) ou posterior é carregado no momento, e assemblyName foi compilado para uma versão do CLR posterior à versão carregada atualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Todas as versões do .NET Framework 2.0, 3.0 e 3.5 usam o CLR versão 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.An assembly or module was loaded twice with two different evidences.

- ou --or-

O nome do assembly ou a base de código é inválido.The assembly name or code base is invalid.

Comentários

Use ObjectHandle.Unwrap para desencapsular o valor de retorno.Use ObjectHandle.Unwrap to unwrap the return value.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para criar tipos e membros não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos e membros não públicos for restrito ao Grant define ou para um subconjunto dele.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos e membros não públicos, independentemente do conjunto de concessões.for accessing nonpublic types and members regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Object[])

Cria uma instância do tipo especificado usando o construtor que corresponde melhor aos parâmetros especificados.Creates an instance of the specified type using the constructor that best matches the specified parameters.

public:
 static System::Object ^ CreateInstance(Type ^ type, cli::array <System::Object ^> ^ args);
public static object CreateInstance (Type type, object[] args);
static member CreateInstance : Type * obj[] -> obj

Parâmetros

type
Type

O tipo de objeto a ser criado.The type of object to create.

args
Object[]

Uma matriz de argumentos correspondentes em número, ordem e digite e os parâmetros do construtor a serem invocados.An array of arguments that match in number, order, and type the parameters of the constructor to invoke. Se args for uma matriz vazia ou null, o construtor que não usa nenhum parâmetro (o construtor sem parâmetros) será invocado.If args is an empty array or null, the constructor that takes no parameters (the parameterless constructor) is invoked.

Retornos

Uma referência ao objeto recém-criado.A reference to the newly created object.

Exceções

type é null.type is null.

type não é um RuntimeType.type is not a RuntimeType.

- ou --or- type é um tipo genérico aberto (ou seja, a propriedade ContainsGenericParameters retorna true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type não pode ser um TypeBuilder.type cannot be a TypeBuilder.

- ou --or- A criação de tipos TypedReference, ArgIterator, Voide RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- O assembly que contém type é um assembly dinâmico que foi criado com Save.The assembly that contains type is a dynamic assembly that was created with Save.

- ou --or- O construtor que melhor corresponde a args tem argumentos varargs.The constructor that best matches args has varargs arguments.

O construtor que está sendo chamado lança uma exceção.The constructor being called throws an exception.

Em vez disso, no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture a exceção de classe base, MemberAccessException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Em vez disso, no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture a exceção de classe base, MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

Nenhum construtor público correspondente foi encontrado.No matching public constructor was found.

type é um objeto COM, mas o identificador de classe usado para obter o tipo é inválido, ou a classe identificada não é registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type não é um tipo válido.type is not a valid type.

Exemplos

O exemplo a seguir chama o método CreateInstance(Type, Object[]) para criar um objeto String.The following example calls the CreateInstance(Type, Object[]) method to create a String object. Ele chama o Construtor String.String(Char[], Int32, Int32) para instanciar uma cadeia de caracteres que contém dez elementos de uma matriz de caracteres, começando na posição décimo quarto.It calls the String.String(Char[], Int32, Int32) constructor to instantiate a string that contains ten elements from a character array starting at the fourteenth position.

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

O exemplo a seguir cria uma matriz denteada cujos elementos são argumentos a serem passados para um construtor de String.The following example creates a jagged array whose elements are arguments to be passed to a String constructor. Em seguida, o exemplo passa cada matriz para o método CreateInstance(Type, Object[]) para invocar o construtor de cadeia de caracteres apropriado.The example then passes each array to the CreateInstance(Type, Object[]) method to invoke the appropriate string constructor.

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

Comentários

O Construtor a ser invocado deve estar acessível e deve fornecer a correspondência mais específica com a lista de argumentos especificada.The constructor to be invoked must be accessible and must provide the most specific match with the specified argument list.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para acessar tipos não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos não públicos for restrito ao conjunto de concessão do chamador ou a um subconjunto do reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos não públicos, independentemente do conjunto de concessões.for accessing nonpublic types regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(Type, Boolean)

Cria uma instância do tipo especificado usando o construtor sem parâmetros do tipo.Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type, bool nonPublic);
public static object CreateInstance (Type type, bool nonPublic);
static member CreateInstance : Type * bool -> obj

Parâmetros

type
Type

O tipo de objeto a ser criado.The type of object to create.

nonPublic
Boolean

true se um construtor público ou não público sem parâmetros puder ter uma correspondência; false se apenas um construtor público sem parâmetros puder ter uma correspondência.true if a public or nonpublic parameterless constructor can match; false if only a public parameterless constructor can match.

Retornos

Uma referência ao objeto recém-criado.A reference to the newly created object.

Exceções

type é null.type is null.

type não é um RuntimeType.type is not a RuntimeType.

- ou --or- type é um tipo genérico aberto (ou seja, a propriedade ContainsGenericParameters retorna true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type não pode ser um TypeBuilder.type cannot be a TypeBuilder.

- ou --or- A criação de tipos TypedReference, ArgIterator, Voide RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- O assembly que contém type é um assembly dinâmico que foi criado com Save.The assembly that contains type is a dynamic assembly that was created with Save.

O construtor que está sendo chamado lança uma exceção.The constructor being called throws an exception.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Nenhum construtor público correspondente foi encontrado.No matching public constructor was found.

type é um objeto COM, mas o identificador de classe usado para obter o tipo é inválido, ou a classe identificada não é registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type não é um tipo válido.type is not a valid type.

Comentários

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para acessar tipos e membros não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos e membros não públicos for restrito ao Grant define ou para um subconjunto dele.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types and members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types and members is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos e membros não públicos, independentemente do conjunto de concessões.for accessing nonpublic types and members regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(String, String)

Cria uma instância do tipo cujo nome é especificado, usando o assembly nomeado e o construtor sem parâmetros.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(System::String ^ assemblyName, System::String ^ typeName);
public static System.Runtime.Remoting.ObjectHandle CreateInstance (string assemblyName, string typeName);
static member CreateInstance : string * string -> System.Runtime.Remoting.ObjectHandle
Public Shared Function CreateInstance (assemblyName As String, typeName As String) As ObjectHandle

Parâmetros

assemblyName
String

O nome do assembly em que o tipo chamado typeName é procurado.The name of the assembly where the type named typeName is sought. Caso assemblyName seja null, o assembly em execução é pesquisado.If assemblyName is null, the executing assembly is searched.

typeName
String

O nome totalmente qualificado do tipo preferido.The fully qualified name of the preferred type.

Retornos

Um identificador que deve ser desencapsulado para acessar a instância recém-criada.A handle that must be unwrapped to access the newly created instance.

Exceções

typeName é null.typeName is null.

Nenhum construtor público correspondente foi encontrado.No matching public constructor was found.

typename não foi encontrado em assemblyName.typename was not found in assemblyName.

assemblyName não foi encontrado.assemblyName was not found.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.You cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O construtor, que foi invocado por meio da reflexão, lançou uma exceção.The constructor, which was invoked through reflection, threw an exception.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

A criação de tipos TypedReference, ArgIterator, Void e RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName não é um assembly válido.assemblyName is not a valid assembly.

- ou --or- A versão 2.0 do Common Language Runtime (CLR) ou posterior é carregado no momento, e assemblyName foi compilado para uma versão do CLR posterior à versão carregada atualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Todas as versões do .NET Framework 2.0, 3.0 e 3.5 usam o CLR versão 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.An assembly or module was loaded twice with two different evidences.

- ou --or-

O nome do assembly ou a base de código é inválido.The assembly name or code base is invalid.

Exemplos

O exemplo a seguir define uma classe chamada Person em um assembly chamado PersonInfo.The following example defines a class named Person in an assembly named PersonInfo. Observe que a classe Person tem dois construtores, um dos quais não tem parâmetros.Note that the Person class has two constructors, one of which is parameterless.

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;
   }
}
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

O exemplo a seguir chama o método CreateInstance(String, String) para instanciar a classe Person.The following example calls the CreateInstance(String, String) method to instantiate the Person class. Ele requer uma referência a PersonInfo. dll a ser adicionada ao projeto.It requires a reference to PersonInfo.dll to be added to the project. Como o método CreateInstance(String, String) chama o construtor sem parâmetros da classe Person, o exemplo atribui um valor à sua propriedade Name.Because the CreateInstance(String, String) method calls the Person class parameterless constructor, the example assigns a value to its Name property.

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

No entanto, o CreateInstance é frequentemente chamado para criar uma instância de um tipo que cruza os limites do computador ou que não é conhecido no momento do design.However, CreateInstance is frequently called to instantiate a type that crosses machine boundaries or that is not known at design time. Nesse caso, você não pode incluir uma referência ao assembly no projeto e não pode fazer chamadas de ligação antecipada para os membros do tipo.In this case, you cannot include a reference to the assembly in the project and cannot make early-bound calls to the type's members. Para contornar essa limitação, o exemplo a seguir usa o método CreateInstance junto com a reflexão para atribuir um valor à propriedade Name do objeto Person e exibir seu valor.To work around this limitation, the following example uses the CreateInstance method along with reflection to assign a value to the Person object's Name property and to display its value.

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

Comentários

Use ObjectHandle.Unwrap para desencapsular o valor de retorno.Use ObjectHandle.Unwrap to unwrap the return value.

assemblyName pode ser um dos seguintes:assemblyName can be either of the following:

  • O nome simples de um assembly, sem seu caminho ou extensão de arquivo.The simple name of an assembly, without its path or file extension. Por exemplo, você deve especificar TypeExtensions para um assembly cujo caminho e nome sejam .\bin\TypeExtensions.dll.For example, you would specify TypeExtensions for an assembly whose path and name are .\bin\TypeExtensions.dll.

  • O nome completo de um assembly assinado, que consiste em seu nome simples, versão, cultura e token de chave pública; por exemplo, "TypeExtensions, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 181869f2f7435b51".The full name of a signed assembly, which consists of its simple name, version, culture, and public key token; for example, "TypeExtensions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=181869f2f7435b51".

Para obter mais informações sobre como o Common Language Runtime identifica e carrega assemblies, consulte como o tempo de execução localiza assemblies.For more information on how the common language runtime identifies and loads assemblies, see How the Runtime Locates Assemblies. Para obter informações sobre como usar o arquivo de configuração de aplicativo para definir locais de assembly, consulte especificando o local de um assembly.For information on using the application configuration file to define assembly locations, see Specifying an Assembly's Location. Se assemblyName for encontrado, ele será carregado no contexto padrão.If assemblyName is found, it is loaded in the default context.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para criar tipos não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos não públicos for restrito ao conjunto de concessão do chamador ou a um subconjunto do reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to create nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos não públicos, independentemente do conjunto de concessões.for accessing nonpublic types regardless of their grant set. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext, String[])

Cria uma instância do tipo que é designada pelo objeto ActivationContext especificado e ativada com os dados de ativação personalizados especificados.Creates an instance of the type that is designated by the specified ActivationContext object and activated with the specified custom activation data.

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

Parâmetros

activationContext
ActivationContext

Um objeto do contexto de ativação que especifica o objeto a ser criado.An activation context object that specifies the object to create.

activationCustomData
String[]

Uma matriz de cadeias de caracteres Unicode que contêm dados de ativação personalizados.An array of Unicode strings that contain custom activation data.

Retornos

Um identificador que deve ser desencapsulado para acessar o objeto recém-criado.A handle that must be unwrapped to access the newly created object.

Comentários

Use o método ObjectHandle.Unwrap para desencapsular o valor de retorno.Use the ObjectHandle.Unwrap method to unwrap the return value.

O contexto de ativação é usado durante a ativação baseada em manifesto para configurar a política de domínio e fornecer um modelo de segurança baseado em aplicativo.The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. A classe ActivationContext contém um objeto ApplicationIdentity que fornece acesso ao manifesto do aplicativo.The ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. Para obter mais informações, consulte a classe ApplicationSecurityManager.For more information, see the ApplicationSecurityManager class.

Veja também

CreateInstance(Type)

Cria uma instância do tipo especificado usando o construtor sem parâmetros do tipo.Creates an instance of the specified type using that type's parameterless constructor.

public:
 static System::Object ^ CreateInstance(Type ^ type);
public static object CreateInstance (Type type);
static member CreateInstance : Type -> obj

Parâmetros

type
Type

O tipo de objeto a ser criado.The type of object to create.

Retornos

Uma referência ao objeto recém-criado.A reference to the newly created object.

Exceções

type é null.type is null.

type não é um RuntimeType.type is not a RuntimeType.

- ou --or- type é um tipo genérico aberto (ou seja, a propriedade ContainsGenericParameters retorna true).type is an open generic type (that is, the ContainsGenericParameters property returns true).

type não pode ser um TypeBuilder.type cannot be a TypeBuilder.

- ou --or- A criação de tipos TypedReference, ArgIterator, Voide RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

- ou --or- O assembly que contém type é um assembly dinâmico que foi criado com Save.The assembly that contains type is a dynamic assembly that was created with Save.

O construtor que está sendo chamado lança uma exceção.The constructor being called throws an exception.

Em vez disso, no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture a exceção de classe base, MemberAccessException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de uma classe abstrata, ou este membro foi invocado com um mecanismo de associação tardia.Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

Em vez disso, no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture a exceção de classe base, MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

Nenhum construtor público correspondente foi encontrado.No matching public constructor was found.

type é um objeto COM, mas o identificador de classe usado para obter o tipo é inválido, ou a classe identificada não é registrada.type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered.

type não é um tipo válido.type is not a valid type.

Exemplos

O exemplo de código a seguir demonstra como chamar o método CreateInstance(Type).The following code example demonstrates how to call the CreateInstance(Type) method. Instâncias de vários tipos diferentes são criadas e seus valores padrão são exibidos.Instances of several different types are created and their default values are displayed.

using namespace System;

ref class DynamicInstanceList
{
private:
    static String^ instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

public:
    static void Main()
    {
        array<String^>^ instances = instanceSpec->Split(';');
        Array^ instlist = Array::CreateInstance(Object::typeid, instances->Length);
        Object^ item;

        for (int i = 0; i < instances->Length; i++)
        {
            // create the object from the specification string
            Console::WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator::CreateInstance(Type::GetType(instances[i]));
            instlist->SetValue(item, i);
        }
        Console::WriteLine("\nObjects and their default values:\n");
        for each (Object^ o in instlist)
        {
            Console::WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o->GetType()->FullName, o->ToString(), o->GetHashCode());
        }
    }
};

int main()
{
    DynamicInstanceList::Main();
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
using System;

class DynamicInstanceList
{
    private static string instanceSpec = "System.EventArgs;System.Random;" +
        "System.Exception;System.Object;System.Version";

    public static void Main()
    {
        string[] instances = instanceSpec.Split(';');
        Array instlist = Array.CreateInstance(typeof(object), instances.Length);
        object item;
        for (int i = 0; i < instances.Length; i++)
        {
            // create the object from the specification string
            Console.WriteLine("Creating instance of: {0}", instances[i]);
            item = Activator.CreateInstance(Type.GetType(instances[i]));
            instlist.SetValue(item, i);
        }
        Console.WriteLine("\nObjects and their default values:\n");
        foreach (object o in instlist)
        {
            Console.WriteLine("Type:     {0}\nValue:    {1}\nHashCode: {2}\n",
                o.GetType().FullName, o.ToString(), o.GetHashCode());
        }
    }
}

// This program will display output similar to the following:
//
// Creating instance of: System.EventArgs
// Creating instance of: System.Random
// Creating instance of: System.Exception
// Creating instance of: System.Object
// Creating instance of: System.Version
//
// Objects and their default values:
//
// Type:     System.EventArgs
// Value:    System.EventArgs
// HashCode: 46104728
//
// Type:     System.Random
// Value:    System.Random
// HashCode: 12289376
//
// Type:     System.Exception
// Value:    System.Exception: Exception of type 'System.Exception' was thrown.
// HashCode: 55530882
//
// Type:     System.Object
// Value:    System.Object
// HashCode: 30015890
//
// Type:     System.Version
// Value:    0.0
// HashCode: 1048575
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(vbNewLine + "Objects and their default values:" + vbNewLine)
        For Each o As Object In instlist
            Console.WriteLine("Type:     {0}" + vbNewLine + "Value:    {1}" + _
                vbNewLine + "HashCode: {2}" + vbNewLine, _
                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

Comentários

O Construtor a ser invocado deve estar acessível.The constructor to be invoked must be accessible.

Observação

A partir do .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, esse método pode ser usado para acessar tipos não públicos se o chamador tiver sido concedido ReflectionPermission com o sinalizador ReflectionPermissionFlag.RestrictedMemberAccess e se o conjunto de concessão do assembly que contém os tipos não públicos for restrito ao conjunto de concessão do chamador ou a um subconjunto do reof.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access nonpublic types if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the assembly that contains the nonpublic types is restricted to the caller's grant set or to a subset thereof. (Consulte considerações de segurança para reflexão.)(See Security Considerations for Reflection.)

Para usar essa funcionalidade, seu aplicativo deve ser direcionado ao .NET Framework 3,5.NET Framework 3.5 ou posterior.To use this functionality, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
para acessar tipos não públicos, independentemente de seus conjuntos de concessão.for accessing nonpublic types regardless of their grant sets. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

CreateInstance(ActivationContext)

Cria uma instância do tipo designado pelo objeto ActivationContext especificado.Creates an instance of the type designated by the specified 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

Parâmetros

activationContext
ActivationContext

Um objeto do contexto de ativação que especifica o objeto a ser criado.An activation context object that specifies the object to create.

Retornos

Um identificador que deve ser desencapsulado para acessar o objeto recém-criado.A handle that must be unwrapped to access the newly created object.

Comentários

Use o método ObjectHandle.Unwrap para desencapsular o valor de retorno.Use the ObjectHandle.Unwrap method to unwrap the return value.

O contexto de ativação é usado durante a ativação baseada em manifesto para configurar a política de domínio e fornecer um modelo de segurança baseado em aplicativo.The activation context is used during manifest-based activation to set up the domain policy and to provide an application-based security model. A classe ActivationContext contém um objeto ApplicationIdentity que fornece acesso ao manifesto do aplicativo.The ActivationContext class contains an ApplicationIdentity object that provides access to the application manifest. Para obter mais informações, consulte a classe ApplicationSecurityManager.For more information, see the ApplicationSecurityManager class.

Veja também

CreateInstance(AppDomain, String, String)

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado, usando o assembly nomeado e o construtor sem parâmetros.Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and parameterless constructor.

public:
 static System::Runtime::Remoting::ObjectHandle ^ CreateInstance(AppDomain ^ domain, System::String ^ assemblyName, System::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
Public Shared Function CreateInstance (domain As AppDomain, assemblyName As String, typeName As String) As ObjectHandle

Parâmetros

domain
AppDomain

O domínio remoto em que o tipo chamado typeName é criado.The remote domain where the type named typeName is created.

assemblyName
String

O nome do assembly em que o tipo chamado typeName é procurado.The name of the assembly where the type named typeName is sought. Caso assemblyName seja null, o assembly em execução é pesquisado.If assemblyName is null, the executing assembly is searched.

typeName
String

O nome totalmente qualificado do tipo preferido.The fully qualified name of the preferred type.

Retornos

Um identificador que deve ser desencapsulado para acessar a instância recém-criada.A handle that must be unwrapped to access the newly created instance.

Atributos

Exceções

typeName ou domain é null.typeName or domain is null.

Nenhum construtor público correspondente foi encontrado.No matching public constructor was found.

typename não foi encontrado em assemblyName.typename was not found in assemblyName.

assemblyName não foi encontrado.assemblyName was not found.

O chamador não tem permissão para chamar esse construtor.The caller does not have permission to call this constructor.

Não é possível criar uma instância de um tipo abstrato.Cannot create an instance of an abstract type.

- ou --or-

Este membro foi invocado com um mecanismo de associação tardia.This member was invoked with a late-binding mechanism.

O construtor, que foi invocado por meio da reflexão, lançou uma exceção.The constructor, which was invoked through reflection, threw an exception.

O tipo COM não foi obtido por meio de GetTypeFromProgID ou GetTypeFromCLSID.The COM type was not obtained through GetTypeFromProgID or GetTypeFromCLSID.

A criação de tipos TypedReference, ArgIterator, Void e RuntimeArgumentHandle ou arrays desses tipos não é suportada.Creation of TypedReference, ArgIterator, Void, and RuntimeArgumentHandle types, or arrays of those types, is not supported.

assemblyName não é um assembly válido.assemblyName is not a valid assembly.

- ou --or- A versão 2.0 do Common Language Runtime (CLR) ou posterior é carregado no momento, e assemblyName foi compilado para uma versão do CLR posterior à versão carregada atualmente.The common language runtime (CLR) version 2.0 or later is currently loaded, and assemblyName was compiled for a version of the CLR that is later than the currently loaded version. Todas as versões do .NET Framework 2.0, 3.0 e 3.5 usam o CLR versão 2.0.Note that the .NET Framework versions 2.0, 3.0, and 3.5 all use CLR version 2.0.

Um assembly ou módulo foi carregado duas vezes em com duas evidências diferentes.An assembly or module was loaded twice with two different evidences.

- ou --or-

O nome do assembly ou a base de código é inválido.The assembly name or code base is invalid.

Comentários

Use CreateInstance quando um host precisar executar código em um domínio de aplicativo que tenha permissões de segurança restritas.Use CreateInstance when a host needs to execute code in an application domain that has restricted security permissions.

Use ObjectHandle.Unwrap para desencapsular o valor de retorno.Use ObjectHandle.Unwrap to unwrap the return value.

Observação

Este método usa SecurityAction.LinkDemand para exigir que o chamador imediato tenha confiança total.This method uses SecurityAction.LinkDemand to require the immediate caller to have full trust.

Segurança

SecurityPermission
para a capacidade de chamar código não gerenciado durante a criação de uma instância de um representante.for the ability to call unmanaged code when creating an instance of a delegate. Enumeração associada: UnmanagedCodeAssociated enumeration: UnmanagedCode

ReflectionPermission
a capacidade de invocar operações em todos os membros do tipo.for the ability to invoke operations on all type members. Enumeração associada: MemberAccessAssociated enumeration: MemberAccess

SecurityCriticalAttribute
requer confiança total para o chamador imediato.requires full trust for the immediate caller. Este membro não pode ser usado pelo código transparente ou parcialmente confiável.This member cannot be used by partially trusted or transparent code.

CreateInstance<T>()

Cria uma instância do tipo designado pelo parâmetro de tipo genérico especificado, usando o construtor sem parâmetros.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

public:
generic <typename T>
 static T CreateInstance();
public static T CreateInstance<T> ();
static member CreateInstance : unit -> 'T
Public Shared Function CreateInstance(Of T) () As T

Parâmetros de tipo

T

O tipo a ser criado.The type to create.

Retornos

T

Uma referência ao objeto recém-criado.A reference to the newly created object.

Exceções

Em vez disso, no .NET para aplicativos da Windows Store ou na Biblioteca de Classes Portátil, capture a exceção de classe base, MissingMemberException.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MissingMemberException, instead.

Não é possível criar uma instância de uma classe abstrata ou o tipo especificado para T não tem um construtor sem parâmetros.Cannot create an instance of an abstract class, or the type that is specified for T does not have a parameterless constructor.

Comentários

O método genérico CreateInstance<T>() é usado por compiladores para implementar a instanciação de tipos especificados por parâmetros de tipo.The CreateInstance<T>() generic method is used by compilers to implement the instantiation of types specified by type parameters. Por exemplo, no método genérico a seguir, a implementação de new T() (gcnew T() em C++) usa o método genérico CreateInstance<T>().For example, in the following generic method, the implementation of new T() (gcnew T() in C++) uses the CreateInstance<T>() generic method.

public:
    generic <typename T> where T:gcnew()
    static T Bar()
    {
        return gcnew T();
    }
public static T Factory<T>() where T : new()
{
    return new T();
}
Public Shared Function Factory(Of T As New)() As T
    Return New T()
End Function

Em geral, não há nenhum uso para o CreateInstance<T>() método genérico no código do aplicativo, pois o tipo deve ser conhecido no momento da compilação.In general, there is no use for the CreateInstance<T>() generic method in application code, because the type must be known at compile time. Se o tipo for conhecido no momento da compilação, a sintaxe de instanciação normal poderá ser usada ( C#operador denew no, New em C++Visual Basic, gcnew em).If the type is known at compile time, normal instantiation syntax can be used (new operator in C#, New in Visual Basic, gcnew in C++). Se o tipo não for conhecido no momento da compilação, você poderá chamar uma sobrecarga não genérica de CreateInstance.If the type is not known at compile time, you can call a non-generic overload of CreateInstance.

Não há sobrecargas do CreateInstance<T>() método genérico que usam listas de argumentos, porque as sobrecargas não genéricas de CreateInstance já fornecem a resolução de construtor de associação tardia.There are no overloads of the CreateInstance<T>() generic method that take argument lists, because the non-generic overloads of CreateInstance already provide late-bound constructor resolution.

Aplica-se a