Activator Classe

Definição

Contém métodos para criar tipos de objetos localmente ou remotamente, ou obter referências a objetos remotos existentes.Contains methods to create types of objects locally or remotely, or obtain references to existing remote objects. Essa classe não pode ser herdada.This class cannot be inherited.

public ref class Activator abstract sealed
public ref class Activator sealed : System::Runtime::InteropServices::_Activator
public static class Activator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Activator : System.Runtime.InteropServices._Activator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Activator : System.Runtime.InteropServices._Activator
type Activator = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Activator = class
    interface _Activator
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Activator = class
    interface _Activator
Public Class Activator
Public NotInheritable Class Activator
Implements _Activator
Herança
Activator
Atributos
Implementações

Exemplos

O exemplo a seguir mostra como usar a Activator classe para construir objetos dinamicamente em tempo de execução.The following example shows how to use the Activator class to dynamically construct objects at run time.

using namespace System;
using namespace System::Reflection;
using namespace System::Text;

public ref class SomeType
{
public:
    void DoSomething(int x)
    {
        Console::WriteLine("100 / {0} = {1}", x, 100 / x);
    }
};

void main()
{
    // Create an instance of the StringBuilder type using 
    // Activator.CreateInstance.
    Object^ o = Activator::CreateInstance(StringBuilder::typeid);

    // Append a string into the StringBuilder object and display the 
    // StringBuilder.
    StringBuilder^ sb = (StringBuilder^) o;
    sb->Append("Hello, there.");
    Console::WriteLine(sb);

    // Create an instance of the SomeType class that is defined in this 
    // assembly.
    System::Runtime::Remoting::ObjectHandle^ oh = 
        Activator::CreateInstanceFrom(Assembly::GetEntryAssembly()->CodeBase, 
                                      SomeType::typeid->FullName);

    // Call an instance method defined by the SomeType type using this object.
    SomeType^ st = (SomeType^) oh->Unwrap();

    st->DoSomething(5);
};

/* This code produces the following output:
 
Hello, there.
100 / 5 = 20
 */
using System;
using System.Reflection;
using System.Text;

public class SomeType
{
    public void DoSomething(int x)
    {
        Console.WriteLine("100 / {0} = {1}", x, 100 / x);
    }
}

public class Example
{
    static void Main()
    {
        // Create an instance of the StringBuilder type using
        // Activator.CreateInstance.
        Object o = Activator.CreateInstance(typeof(StringBuilder));

        // Append a string into the StringBuilder object and display the
        // StringBuilder.
        StringBuilder sb = (StringBuilder) o;
        sb.Append("Hello, there.");
        Console.WriteLine(sb);

        // Create an instance of the SomeType class that is defined in this
        // assembly.
        System.Runtime.Remoting.ObjectHandle oh =
            Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase,
                                         typeof(SomeType).FullName);

        // Call an instance method defined by the SomeType type using this object.
        SomeType st = (SomeType) oh.Unwrap();

        st.DoSomething(5);
    }
}

/* This code produces the following output:

Hello, there.
100 / 5 = 20
 */
Imports System.Reflection
Imports System.Text

Module Module1
    Sub Main()
        ' Create an instance of the StringBuilder type using 
        ' Activator.CreateInstance.
        Dim o As Object = Activator.CreateInstance(GetType(StringBuilder))

        ' Append a string into the StringBuilder object and display the 
        ' StringBuilder.
        Dim sb As StringBuilder = CType(o, StringBuilder)
        sb.Append("Hello, there.")
        Console.WriteLine(sb)

        ' Create an instance of the SomeType class that is defined in this assembly.
        Dim oh As System.Runtime.Remoting.ObjectHandle = _
            Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase, _
                                         GetType(SomeType).FullName)

        ' Call an instance method defined by the SomeType type using this object.
        Dim st As SomeType = CType(oh.Unwrap(), SomeType)

        st.DoSomething(5)
    End Sub

    Class SomeType
        Public Sub DoSomething(ByVal x As Int32)
            Console.WriteLine("100 / {0} = {1}", x, 100 \ x)
        End Sub
    End Class
End Module

' This code produces the following output:
' 
' Hello, there.
' 100 / 5 = 20

Comentários

O CreateInstance método cria uma instância de um tipo definido em um assembly invocando o construtor que melhor corresponde aos argumentos especificados.The CreateInstance method creates an instance of a type defined in an assembly by invoking the constructor that best matches the specified arguments. Se nenhum argumento for especificado, o construtor que não usa nenhum parâmetro, ou seja, o construtor sem parâmetros, será invocado.If no arguments are specified, the constructor that takes no parameters, that is, the parameterless constructor, is invoked.

Você deve ter permissão suficiente para pesquisar e chamar um construtor; caso contrário, uma exceção será lançada.You must have sufficient permission to search for and call a constructor; otherwise, an exception is thrown. Por padrão, somente construtores públicos são considerados durante a pesquisa de um construtor.By default, only public constructors are considered during the search for a constructor. Se nenhum construtor ou construtor sem parâmetros puder ser encontrado, uma exceção será lançada.If no constructor or parameterless constructor can be found, an exception is thrown.

Um parâmetro de associador especifica um objeto que procura um Construtor adequado em um assembly.A binder parameter specifies an object that searches an assembly for a suitable constructor. Você pode especificar seu próprio fichário e critérios de pesquisa.You can specify your own binder and search criteria. Se nenhum associador for especificado, um fichário padrão será usado.If no binder is specified, a default binder is used. Para obter mais informações, consulte as classes System.Reflection.Binder e System.Reflection.BindingFlags.For more information, see the System.Reflection.Binder and System.Reflection.BindingFlags classes.

Um parâmetro de evidência afeta a política de segurança e as permissões para o construtor.An evidence parameter affects the security policy and permissions for the constructor. Para obter mais informações, consulte a classe System.Security.Policy.Evidence.For more information, see the System.Security.Policy.Evidence class.

Uma instância de um tipo pode ser criada em um site local ou remoto.An instance of a type can be created at a local or remote site. Se o tipo for criado remotamente, um parâmetro de atributo de ativação especificará o URI do site remoto.If the type is created remotely, an activation attribute parameter specifies the URI of the remote site. A chamada para criar a instância pode passar por sites intermediários antes de atingir o site remoto.The call to create the instance might pass through intermediary sites before it reaches the remote site. Outros atributos de ativação podem modificar o ambiente, ou contexto, no qual a chamada opera nos sites remotos e intermediários.Other activation attributes can modify the environment, or context, in which the call operates at the remote and intermediary sites.

Se a instância for criada localmente, uma referência a esse objeto será retornada.If the instance is created locally, a reference to that object is returned. Se a instância for criada remotamente, uma referência a um proxy será retornada.If the instance is created remotely, a reference to a proxy is returned. O objeto remoto é manipulado por meio do proxy como se fosse um objeto local.The remote object is manipulated through the proxy as if it were a local object.

O GetObject método cria um proxy para um objeto remoto atualmente em execução, objeto bem conhecido ativado pelo servidor ou serviço Web XML.The GetObject method creates a proxy to a currently running remote object, server-activated well-known object, or XML Web service. Você pode especificar o meio de conexão, ou seja, o canal.You can specify the connection medium, that is, the channel. Para obter mais informações, consulte a classe System.Runtime.Remoting.Channels.ChannelServices.For more information, see the System.Runtime.Remoting.Channels.ChannelServices class.

Assemblies contêm definições de tipo.Assemblies contain type definitions. O CreateInstance método cria uma instância de um tipo a partir de um assembly atualmente em execução.The CreateInstance method creates an instance of a type from a currently running assembly. O CreateInstanceFrom método cria uma instância de um arquivo que contém um assembly.The CreateInstanceFrom method creates an instance from a file that contains an assembly. O CreateComInstanceFrom método cria uma instância de um objeto com de um arquivo que contém um assembly.The CreateComInstanceFrom method creates an instance of a COM object from a file that contains an assembly.

Métodos

CreateComInstanceFrom(String, String)

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

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Cria uma instância do objeto COM cujo nome é especificado, usando o arquivo do assembly nomeado e o construtor sem parâmetros.Creates an instance of the COM object whose name is specified, using the named assembly file and the 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(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(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(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(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.

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)

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[])

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(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.

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(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(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(Type, BindingFlags, Binder, Object[], CultureInfo)

Cria uma instância do tipo especificado usando o construtor que melhor corresponde 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, Object[])

Cria uma instância do tipo especificado usando o construtor que melhor corresponde 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(Type, Object[])

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

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.

CreateInstanceFrom(AppDomain, String, String)

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado, usando o arquivo do 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 file and parameterless constructor.

CreateInstanceFrom(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 arquivo do 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 file and the constructor that best matches the specified parameters.

CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.

Cria uma instância do tipo cujo nome é especificado no domínio remoto especificado usando o arquivo do 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 file and the constructor that best matches the specified parameters.

CreateInstanceFrom(String, String)

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

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

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

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.

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

CreateInstanceFrom(String, String, Object[])

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

GetObject(Type, String)

Cria um proxy para o objeto conhecido indicado pelo tipo especificado e pela URL.Creates a proxy for the well-known object indicated by the specified type and URL.

GetObject(Type, String, Object)

Cria um proxy para o objeto conhecido indicado pelo tipo especificado, URL e dados de canal.Creates a proxy for the well-known object indicated by the specified type, URL, and channel data.

Implantações explícitas de interface

_Activator.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.Maps a set of names to a corresponding set of dispatch identifiers.

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface.Retrieves the type information for an object, which can then be used to get the type information for an interface.

_Activator.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

_Activator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.Provides access to properties and methods exposed by an object.

Aplica-se a