Activator-Klasse

Enthält Methoden, mit denen Objekttypen lokal oder remote erstellt und Verweise auf vorhandene Remoteobjekte abgerufen werden können. Diese Klasse kann nicht geerbt werden.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.None)> _
Public NotInheritable Class Activator
    Implements _Activator
'Usage
Dim instance As Activator
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.None)] 
public sealed class Activator : _Activator
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType::None)] 
public ref class Activator sealed : _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

Hinweise

Die CreateInstance-Methode erstellt eine Instanz eines in einer Assembly definierten Typs durch Aufruf des Konstruktors, der mit den angegebenen Argumenten am besten übereinstimmt. Wenn keine Argumente angegeben werden, wird der Konstruktor aufgerufen, der keine Argumente akzeptiert, d. h. der Standardkonstruktor.

Sie müssen über ausreichende Berechtigungen verfügen, damit Sie nach einem Konstruktor suchen oder einen Konstruktor aufrufen können. Andernfalls wird eine Ausnahme ausgelöst. Standardmäßig werden bei einer Suche nach einem Konstruktor nur öffentliche Konstruktoren berücksichtigt. Wenn kein Konstruktor oder Standardkonstruktor gefunden wurde, wird eine Ausnahme ausgelöst.

Ein Binderparameter gibt ein Objekt an, das eine Assembly nach einem geeigneten Konstruktor durchsucht. Sie können Ihren eigenen Binder und Ihre eigenen Suchkriterien angeben. Wenn kein Binder angegeben ist, wird ein Standardbinder verwendet. Weitere Informationen finden Sie unter der System.Reflection.Binder-Klasse und der System.Reflection.BindingFlags-Klasse.

Ein Beweisparameter beeinflusst die Sicherheitsrichtlinie und die Berechtigungen für den Konstruktor. Weitere Informationen finden Sie unter der System.Security.Policy.Evidence-Klasse.

Eine Instanz eines Typs kann in einer lokalen Site oder in einer Remotesite erstellt werden. Wenn der Typ remote erstellt wird, gibt ein Aktivierungsattribut-Parameter den URI der Remotesite an. Der Aufruf zum Erstellen der Instanz wird möglicherweise über dazwischen liegende Sites geleitet, bevor er die Remotesite erreicht. Die Umgebung oder der Kontext, in dem der Aufruf in den dazwischen liegenden Sites und in der Remotesite ausgeführt wird, kann durch weitere Aktivierungsattribute verändert werden.

Wenn die Instanz lokal erstellt wird, wird ein Verweis auf dieses Objekt zurückgegeben. Wenn die Instanz remote erstellt wird, wird ein Verweis auf einen Proxy zurückgegeben. Das Remoteobjekt wird über den Proxy wie ein lokales Objekt bearbeitet.

Die GetObject-Methode erstellt einen Proxy für ein derzeit ausgeführtes Remoteobjekt, ein serveraktiviertes bekanntes Objekt oder einen XML-Webdienst. Sie können das Verbindungsmedium, d. h. den Channel, angeben. Weitere Informationen finden Sie unter der System.Runtime.Remoting.Channels.ChannelServices-Klasse.

Assemblys enthalten Typdefinitionen. Die CreateInstance-Methode erstellt eine Instanz eines Typs aus einer derzeit ausgeführten Assembly. Die CreateInstanceFrom-Methode erstellt eine Instanz aus einer Datei, die eine Assembly enthält. Die CreateComInstanceFrom-Methode erstellt eine Instanz eines COM-Objekts aus einer Datei, die eine Assembly enthält.

Weitere Informationen über server- und clientaktivierte Objekte finden Sie unter dem Thema Serveraktivierung.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie mit der Activator-Klasse zur Laufzeit dynamisch Objekte erstellt werden.

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

Vererbungshierarchie

System.Object
  System.Activator

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Activator-Member
System-Namespace

Weitere Ressourcen

Übersicht über .NET Framework Remoting