Exportar (0) Imprimir
Expandir todo

Activator (Clase)

Contiene métodos para crear tipos de objetos de forma local o remota, o para obtener referencias a objetos remotos existentes. Esta clase no se puede heredar.

Espacio de nombres: System
Ensamblado: mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.None)] 
public sealed class Activator : _Activator
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ 
public final class Activator implements _Activator
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.None) 
public final class Activator implements _Activator

El método CreateInstance crea una instancia de un tipo definido en un ensamblado llamando al constructor que mejor coincida con los argumentos especificados. Si no se ha especificado ningún argumento, se llama al constructor que no toma parámetros, es decir, el constructor predeterminado.

Para buscar un constructor y para llamarlo, es necesario tener los permisos adecuados; de lo contrario, se produce una excepción. De forma predeterminada, sólo se tienen en cuenta los constructores públicos durante la búsqueda de un constructor. Si no se encuentra ningún constructor o un constructor predeterminado, se produce una excepción.

Un parámetro enlazador especifica un objeto que busca un ensamblado para un constructor adecuado. Se puede especificar un enlazador propio así como criterios de búsqueda propios, pero si no se especifica ningún enlazador, se utiliza un enlazador predeterminado. Para obtener más información, vea las clases System.Reflection.Binder y System.Reflection.BindingFlags.

Un parámetro de evidencia afecta tanto a la política de seguridad como a los permisos para el constructor. Para obtener más información, vea la clase System.Security.Policy.Evidence.

Se puede crear una instancia de un tipo en un sitio local o remoto. Si el tipo se crea de forma remota, un parámetro de atributo de activación especifica la dirección URI del sitio remoto. Puede que la llamada para crear la instancia pase por sitios intermedios antes de llegar al sitio remoto. Existen otros atributos de activación que pueden modificar el entorno o contexto donde se ejecuta la llamada en los sitios intermedio y remoto.

Si la instancia se crea de forma local, se devuelve una referencia a ese objeto. Si la instancia se crea de forma remota, se devuelve una referencia a un proxy. El objeto remoto se manipula a través del proxy como si fuera un objeto local.

El método GetObject crea un proxy para un objeto remoto en ejecución, un objeto conocido activado en el servidor o un servicio Web XML. Se puede especificar el medio de conexión, es decir, el canal. Para obtener más información, vea la clase System.Runtime.Remoting.Channels.ChannelServices.

Los ensamblados contienen definiciones de tipos. El método CreateInstance crea una instancia de un tipo a partir de un ensamblado en ejecución. El método CreateInstanceFrom crea una instancia a partir de un archivo que contiene un ensamblado. El método CreateComInstanceFrom crea una instancia de un objeto COM a partir de un archivo que contiene un ensamblado.

Para obtener más información acerca de los objetos activados en el cliente y en el servidor, vea el tema Activación del servidor.

En el ejemplo siguiente se muestra cómo utilizar la clase Activator para construir objetos dinámicamente en tiempo de ejecución.

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

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft