Activator Classe

Définition

Contient des méthodes permettant de créer des types d'objets localement ou à distance, ou d'obtenir des références à des objets distants existants.Contains methods to create types of objects locally or remotely, or obtain references to existing remote objects. Cette classe ne peut pas être héritée.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
Héritage
Activator
Attributs
Implémente

Exemples

L’exemple suivant montre comment utiliser la Activator classe pour construire dynamiquement des objets au moment de l’exécution.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

Remarques

La CreateInstance méthode crée une instance d’un type défini dans un assembly en appelant le constructeur qui correspond le mieux aux arguments spécifiés.The CreateInstance method creates an instance of a type defined in an assembly by invoking the constructor that best matches the specified arguments. Si aucun argument n’est spécifié, le constructeur qui ne prend aucun paramètre, autrement dit, le constructeur sans paramètre, est appelé.If no arguments are specified, the constructor that takes no parameters, that is, the parameterless constructor, is invoked.

Vous devez disposer des autorisations suffisantes pour rechercher et appeler un constructeur. dans le cas contraire, une exception est levée.You must have sufficient permission to search for and call a constructor; otherwise, an exception is thrown. Par défaut, seuls les constructeurs publics sont pris en compte lors de la recherche d’un constructeur.By default, only public constructors are considered during the search for a constructor. Si aucun constructeur ou constructeur sans paramètre ne peut être trouvé, une exception est levée.If no constructor or parameterless constructor can be found, an exception is thrown.

Un paramètre de Binder spécifie un objet qui recherche un constructeur approprié dans un assembly.A binder parameter specifies an object that searches an assembly for a suitable constructor. Vous pouvez spécifier vos propres classeurs et critères de recherche.You can specify your own binder and search criteria. Si aucun Binder n’est spécifié, un binder par défaut est utilisé.If no binder is specified, a default binder is used. Pour plus d'informations, consultez la classe System.Reflection.Binder et System.Reflection.BindingFlags.For more information, see the System.Reflection.Binder and System.Reflection.BindingFlags classes.

Un paramètre evidence affecte la stratégie de sécurité et les autorisations pour le constructeur.An evidence parameter affects the security policy and permissions for the constructor. Pour plus d'informations, consultez la classe System.Security.Policy.Evidence.For more information, see the System.Security.Policy.Evidence class.

Une instance d’un type peut être créée sur un site local ou distant.An instance of a type can be created at a local or remote site. Si le type est créé à distance, un paramètre d’attribut d’activation spécifie l’URI du site distant.If the type is created remotely, an activation attribute parameter specifies the URI of the remote site. L’appel pour créer l’instance peut passer par les sites intermédiaires avant qu’il n’atteigne le site distant.The call to create the instance might pass through intermediary sites before it reaches the remote site. D’autres attributs d’activation peuvent modifier l’environnement ou le contexte dans lequel l’appel fonctionne sur les sites distants et intermédiaires.Other activation attributes can modify the environment, or context, in which the call operates at the remote and intermediary sites.

Si l’instance est créée localement, une référence à cet objet est retournée.If the instance is created locally, a reference to that object is returned. Si l’instance est créée à distance, une référence à un proxy est retournée.If the instance is created remotely, a reference to a proxy is returned. L’objet distant est manipulé via le proxy comme s’il s’agissait d’un objet local.The remote object is manipulated through the proxy as if it were a local object.

La GetObject méthode crée un proxy vers un objet distant en cours d’exécution, un objet connu activé par le serveur ou un service Web XML.The GetObject method creates a proxy to a currently running remote object, server-activated well-known object, or XML Web service. Vous pouvez spécifier le support de connexion, autrement dit, le canal.You can specify the connection medium, that is, the channel. Pour plus d'informations, consultez la classe System.Runtime.Remoting.Channels.ChannelServices.For more information, see the System.Runtime.Remoting.Channels.ChannelServices class.

Les assemblys contiennent des définitions de type.Assemblies contain type definitions. La CreateInstance méthode crée une instance d’un type à partir d’un assembly en cours d’exécution.The CreateInstance method creates an instance of a type from a currently running assembly. La CreateInstanceFrom méthode crée une instance à partir d’un fichier qui contient un assembly.The CreateInstanceFrom method creates an instance from a file that contains an assembly. La CreateComInstanceFrom méthode crée une instance d’un objet com à partir d’un fichier qui contient un assembly.The CreateComInstanceFrom method creates an instance of a COM object from a file that contains an assembly.

Méthodes

CreateComInstanceFrom(String, String)

Crée une instance de l’objet COM dont le nom est spécifié, en utilisant le fichier d’assembly nommé et le constructeur sans paramètre.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)

Crée une instance de l’objet COM dont le nom est spécifié, en utilisant le fichier d’assembly nommé et le constructeur sans paramètre.Creates an instance of the COM object whose name is specified, using the named assembly file and the parameterless constructor.

CreateInstance(ActivationContext)

Crée une instance du type désigné par l'objet ActivationContext spécifié.Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(ActivationContext, String[])

Crée une instance du type désigné par l'objet ActivationContext spécifié et activé avec les données d'activation personnalisées spécifiées.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)

Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, en utilisant l’assembly nommé et le constructeur sans paramètre.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[])

Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, en utilisant l'assembly nommé et le constructeur qui correspond le mieux aux paramètres spécifiés.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)
Obsolète.

Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, en utilisant l'assembly nommé et le constructeur qui correspond le mieux aux paramètres spécifiés.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)

Crée une instance du type dont le nom est spécifié, en utilisant l’assembly nommé et le constructeur sans paramètre.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[])

Crée une instance du type dont le nom est spécifié, à l'aide de l'assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.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)
Obsolète.

Crée une instance du type dont le nom est spécifié, à l'aide de l'assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.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[])

Crée une instance du type dont le nom est spécifié, en utilisant l’assembly nommé et le constructeur sans paramètre.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(Type)

Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type.Creates an instance of the specified type using that type's parameterless constructor.

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

Crée une instance du type spécifié à l'aide du constructeur qui correspond le mieux aux paramètres spécifiés.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Crée une instance du type spécifié à l'aide du constructeur qui correspond le mieux aux paramètres spécifiés.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean)

Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(Type, Object[])

Crée une instance du type spécifié à l'aide du constructeur qui correspond le mieux aux paramètres spécifiés.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Crée une instance du type spécifié à l'aide du constructeur qui correspond le mieux aux paramètres spécifiés.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance<T>()

Crée une instance du type désigné par le paramètre de type générique spécifié, à l’aide du constructeur sans paramètre.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

CreateInstanceFrom(AppDomain, String, String)

Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, en utilisant le fichier d’assembly nommé et le constructeur sans paramètre.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[])

Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, en utilisant le fichier d'assembly nommé et le constructeur qui correspond le mieux aux paramètres spécifiés.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)
Obsolète.

Crée une instance du type dont le nom est spécifié dans le domaine distant spécifié, en utilisant le fichier d'assembly nommé et le constructeur qui correspond le mieux aux paramètres spécifiés.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)

Crée une instance du type dont le nom est spécifié, en utilisant le fichier d’assembly nommé et le constructeur sans paramètre.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[])

Crée une instance du type dont le nom est spécifié, à l'aide du fichier d'assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.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)
Obsolète.

Crée une instance du type dont le nom est spécifié, à l'aide du fichier d'assembly nommé et du constructeur qui correspond le mieux aux paramètres spécifiés.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[])

Crée une instance du type dont le nom est spécifié, en utilisant le fichier d’assembly nommé et le constructeur sans paramètre.Creates an instance of the type whose name is specified, using the named assembly file and parameterless constructor.

GetObject(Type, String)

Crée un proxy pour l'objet connu indiqué par le type et l'URL spécifiés.Creates a proxy for the well-known object indicated by the specified type and URL.

GetObject(Type, String, Object)

Crée un proxy pour l'objet connu indiqué par le type, l'URL et les données de canal spécifiés.Creates a proxy for the well-known object indicated by the specified type, URL, and channel data.

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface.Retrieves the type information for an object, which can then be used to get the type information for an interface.

_Activator.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (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)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.Provides access to properties and methods exposed by an object.

S’applique à