Partager via


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. Cette classe ne peut pas être héritée.

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 classe pour construire dynamiquement des objets au moment de l’exécution Activator .

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
 */
open System
open System.Reflection
open System.Text

type SomeType() =
    member _.DoSomething(x) = printfn $"100 / {x} = {100 / x}"

// Create an instance of the StringBuilder type using Activator.CreateInstance.
let o = Activator.CreateInstance typeof<StringBuilder>

// Append a string into the StringBuilder object and display the StringBuilder.
let sb = o :?> StringBuilder
sb.Append "Hello, there." |> ignore
printfn $"{sb}"

// Create an instance of the SomeType class that is defined in this assembly.
let oh = 
    Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().Location, typeof<SomeType>.FullName)

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

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. Si aucun argument n’est spécifié, le constructeur qui ne prend aucun paramètre, autrement dit, le constructeur sans paramètre, est appelé.

Vous devez disposer d’une autorisation suffisante pour rechercher et appeler un constructeur ; sinon, une exception est levée. Par défaut, seuls les constructeurs publics sont considérés pendant la recherche d’un constructeur. Si aucun constructeur ou constructeur sans paramètre n’est trouvé, une exception est levée.

Un paramètre de classeur spécifie un objet qui recherche un assembly pour un constructeur approprié. Vous pouvez spécifier vos propres critères de classeur et de recherche. Si aucun classeur n’est spécifié, un classeur par défaut est utilisé. Pour plus d'informations, consultez la classe System.Reflection.Binder et System.Reflection.BindingFlags.

Un paramètre de preuve affecte la stratégie de sécurité et les autorisations du constructeur. Pour plus d'informations, consultez la classe System.Security.Policy.Evidence.

Une instance d’un type peut être créée sur un site local ou distant. Si le type est créé à distance, un paramètre d’attribut d’activation spécifie l’URI du site distant. L’appel à créer l’instance peut passer via des sites intermédiaires avant d’atteindre le site distant. D’autres attributs d’activation peuvent modifier l’environnement ou le contexte dans lequel l’appel fonctionne sur les sites distants et intermédiaires.

Si l’instance est créée localement, une référence à cet objet est retournée. Si l’instance est créée à distance, une référence à un proxy est retournée. L’objet distant est manipulé via le proxy comme s’il s’agissait d’un objet local.

La GetObject méthode crée un proxy vers un objet distant en cours d’exécution, un objet bien connu activé par le serveur ou un service web XML. Vous pouvez spécifier le support de connexion, autrement dit le canal. Pour plus d'informations, consultez la classe System.Runtime.Remoting.Channels.ChannelServices.

Les assemblys contiennent des définitions de type. La CreateInstance méthode crée une instance d’un type à partir d’un assembly en cours d’exécution. La CreateInstanceFrom méthode crée une instance à partir d’un fichier qui contient un assembly. La CreateComInstanceFrom méthode crée une instance d’un objet COM à partir d’un fichier qui contient un 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.

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.

CreateInstance(ActivationContext)

Crée une instance du type désigné par l'objet ActivationContext spécifié.

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.

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.

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.

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.

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.

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.

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.

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.

CreateInstance(Type)

Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type.

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.

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.

CreateInstance(Type, Boolean)

Crée une instance du type spécifié à l’aide du constructeur sans paramètre de ce type.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

GetObject(Type, String)

Crée un proxy pour l'objet connu indiqué par le type et l'URL spécifiés.

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.

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.

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

_Activator.GetTypeInfoCount(UInt32)

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

S’applique à