Exporter (0) Imprimer
Développer tout

Activator, classe

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.

Espace de noms : System
Assembly : mscorlib (dans 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

La méthode CreateInstance 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, c'est-à-dire le constructeur par défaut, est appelé.

Vous devez posséder les autorisations suffisantes pour rechercher et appeler un constructeur ; sinon, une exception est levée. Par défaut, seuls les constructeurs publics sont pris en compte lors de la recherche d'un constructeur. Si aucun constructeur correspondant ou aucun constructeur par défaut n'est trouvé, une exception est levée.

Un paramètre binder spécifie un objet qui recherche un constructeur aproprié dans un assembly. Vous pouvez spécifier le binder et les critères de recherche de votre choix ; si aucun binder n'est spécifié, un binder par défaut est utilisé. Pour plus d'informations, consultez les classes 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 au niveau d'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 permettant de créer une instance peut passer par 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 agit au niveau du site distant et des sites 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é à l'aide du proxy comme s'il s'agissait d'un objet local.

La méthode GetObject crée un proxy pour un objet distant en cours d'exécution, pour un objet connu activé par le serveur ou pour un service Web XML. Vous pouvez spécifier le moyen de connexion, c'est-à-dire le canal. Pour plus d'informations, consultez la classe System.Runtime.Remoting.Channels.ChannelServices.

Les assemblys contiennent des définitions de types. La méthode CreateInstance crée une instance d'un type à partir d'un assembly en cours d'exécution. La méthode CreateInstanceFrom crée une instance à partir d'un fichier qui contient un assembly. La méthode CreateComInstanceFrom crée une instance d'un objet COM à partir d'un fichier qui contient un assembly.

Pour plus d'informations sur les objets activés par le serveur et par le client, consultez la rubrique Activation par serveur.

L'exemple suivant illustre l'utilisation de la classe Activator pour construire dynamiquement des objets au moment de l'exécution.

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

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft