Activator Class

Definition

Enthält Methoden, mit denen Objekttypen lokal oder remote erstellt und Verweise auf vorhandene Remoteobjekte abgerufen werden können. Contains methods to create types of objects locally or remotely, or obtain references to existing remote objects. Diese Klasse kann nicht vererbt werden. This class cannot be inherited.

[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Activator : System.Runtime.InteropServices._Activator
Vererbung
Activator
Attribute
Implementiert

Beispiele

Das folgende Beispiel zeigt, wie Sie mit der Activator Klasse, um Objekte zur Laufzeit dynamisch zu erstellen.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

Hinweise

Die CreateInstance Methode erstellt eine Instanz eines Typs durch Aufrufen der am besten übereinstimmende Konstruktor in einer Assembly definiert den angegebenen Argumenten.The CreateInstance method creates an instance of a type defined in an assembly by invoking the constructor that best matches the specified arguments. Wenn keine Argumente angegeben werden, wird der Konstruktor, der keine Parameter, d. h. den Standard-Konstruktor akzeptiert, aufgerufen.If no arguments are specified, the constructor that takes no parameters, that is, the default constructor, is invoked.

Sie müssen über ausreichende Berechtigungen zum Suchen und einen Konstruktor aufrufen; Andernfalls wird eine Ausnahme ausgelöst.You must have sufficient permission to search for and call a constructor; otherwise, an exception is thrown. Standardmäßig gelten nur die öffentliche Konstruktoren bei der Suche nach einem Konstruktor.By default, only public constructors are considered during the search for a constructor. Wenn kein Konstruktor oder die Standard-Konstruktor gefunden werden kann, wird eine Ausnahme ausgelöst.If no constructor or default constructor can be found, an exception is thrown.

Ein Binderparameter gibt an, ein Objekt, das eine Assembly für die kein geeigneter Konstruktor durchsucht wird.A binder parameter specifies an object that searches an assembly for a suitable constructor. Sie können Ihre eigenen Binder und Kriterien angeben.You can specify your own binder and search criteria. Wenn kein Binder angegeben wird, wird der Standardbinder verwendet.If no binder is specified, a default binder is used. Weitere Informationen finden Sie in den Ausführungen zur System.Reflection.Binder-Klasse und zur System.Reflection.BindingFlags-Klasse.For more information, see the System.Reflection.Binder and System.Reflection.BindingFlags classes.

Ein Evidence-Parameter wirkt sich auf die Sicherheitsrichtlinie und die Berechtigungen für den Konstruktor.An evidence parameter affects the security policy and permissions for the constructor. Weitere Informationen finden Sie in den Ausführungen zur System.Security.Policy.Evidence-Klasse.For more information, see the System.Security.Policy.Evidence class.

Eine Instanz eines Typs kann an einem lokalen oder entfernten Standort erstellt werden.An instance of a type can be created at a local or remote site. Wenn der Typ Remote erstellt wird, gibt ein Aktivierungsattribut-Parameter der URI des remote-standortsystemserver an.If the type is created remotely, an activation attribute parameter specifies the URI of the remote site. Der Aufruf zum Erstellen der Instanz kann Standorte dazwischen durchlaufen, bevor sie die remote-standortsystemserver erreicht.The call to create the instance might pass through intermediary sites before it reaches the remote site. Die Umgebung oder der Kontext, in dem der Aufruf an den Vermittler und remote-Standorten ausgeführt wird, können andere Aktivierungsattribute ändern.Other activation attributes can modify the environment, or context, in which the call operates at the remote and intermediary sites.

Wenn die Instanz lokal erstellt wird, wird ein Verweis auf dieses Objekt zurückgegeben.If the instance is created locally, a reference to that object is returned. Wenn die Instanz Remote erstellt wird, wird ein Verweis auf einen Proxy zurückgegeben.If the instance is created remotely, a reference to a proxy is returned. Das Remoteobjekt bearbeitet wird über den Proxy, als handele es sich um ein lokales Objekt.The remote object is manipulated through the proxy as if it were a local object.

Die GetObject Methode erstellt einen Proxy für einen aktuell ausgeführten Remoteobjekt, bekannte vom Server aktivierten Objekt oder XML-Webdienst.The GetObject method creates a proxy to a currently running remote object, server-activated well-known object, or XML Web service. Sie können das Verbindungsmedium, d. h. den Kanal angeben.You can specify the connection medium, that is, the channel. Weitere Informationen finden Sie in den Ausführungen zur System.Runtime.Remoting.Channels.ChannelServices-Klasse.For more information, see the System.Runtime.Remoting.Channels.ChannelServices class.

Assemblys enthalten Definitionen.Assemblies contain type definitions. Die CreateInstance Methode erstellt eine Instanz eines Typs aus einer aktuell ausgeführten Assembly.The CreateInstance method creates an instance of a type from a currently running assembly. Die CreateInstanceFrom Methode erstellt eine Instanz aus einer Datei, die eine Assembly enthält.The CreateInstanceFrom method creates an instance from a file that contains an assembly. Die CreateComInstanceFrom Methode erstellt eine Instanz eines COM-Objekts aus einer Datei, die eine Assembly enthält.The CreateComInstanceFrom method creates an instance of a COM object from a file that contains an assembly.

Methoden

CreateComInstanceFrom(String, String)

Erstellt eine Instanz des COM-Objekts mit dem angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Standardkonstruktors. Creates an instance of the COM object whose name is specified, using the named assembly file and the default constructor.

CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Erstellt eine Instanz des COM-Objekts mit dem angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Standardkonstruktors. Creates an instance of the COM object whose name is specified, using the named assembly file and the default constructor.

CreateInstance(ActivationContext)

Erstellt eine Instanz des Typs, der vom angegebenen ActivationContext-Objekt festgelegt wurde. Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(ActivationContext, String[])

Erstellt eine Instanz des Typs, der vom angegebenen ActivationContext-Objekt festgelegt und mit den angegebenen benutzerdefinierten Aktivierungsdaten aktiviert wird. 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)

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assembly und des Standardkonstruktors. Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly and default constructor.

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht. 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)

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der den angegebenen Parametern am besten entspricht. 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)

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Standardkonstruktors. Creates an instance of the type whose name is specified, using the named assembly and default constructor.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt. 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)

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt. 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[])

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assembly und des Standardkonstruktors. Creates an instance of the type whose name is specified, using the named assembly and default constructor.

CreateInstance(Type)

Erstellt mit dem Standardkonstruktor dieses Typs eine Instanz des angegebenen Typs. Creates an instance of the specified type using that type's default constructor.

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

Erstellt mit dem am besten mit den angegebenen Parametern übereinstimmenden Konstruktor eine Instanz des angegebenen Typs. Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Erstellt mit dem am besten mit den angegebenen Parametern übereinstimmenden Konstruktor eine Instanz des angegebenen Typs. Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean)

Erstellt mit dem Standardkonstruktor dieses Typs eine Instanz des angegebenen Typs. Creates an instance of the specified type using that type's default constructor.

CreateInstance(Type, Object[])

Erstellt mit dem am besten mit den angegebenen Parametern übereinstimmenden Konstruktor eine Instanz des angegebenen Typs. Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Erstellt mit dem am besten mit den angegebenen Parametern übereinstimmenden Konstruktor eine Instanz des angegebenen Typs. Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance<T>()

Erstellt mit dem parameterlosen Konstruktor eine Instanz des Typs, der vom angegebenen generischen Typparameter festgelegt wurde. Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

CreateInstanceFrom(AppDomain, String, String)

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Standardkonstruktors. Creates an instance of the type whose name is specified in the specified remote domain, using the named assembly file and default constructor.

CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Konstruktors, der den angegebenen Parametern am besten entspricht. 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)

Erstellt eine Instanz des Typs mit dem in der angegebenen Remotedomäne angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Konstruktors, der den angegebenen Parametern am besten entspricht. 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)

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Standardkonstruktors. Creates an instance of the type whose name is specified, using the named assembly file and default constructor.

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt. 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)

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Konstruktors, der mit den angegebenen Parametern am besten übereinstimmt. 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[])

Erstellt eine Instanz des Typs mit dem angegebenen Namen unter Verwendung der angegebenen Assemblydatei und des Standardkonstruktors. Creates an instance of the type whose name is specified, using the named assembly file and default constructor.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Fungiert als die Standardhashfunktion. Serves as the default hash function.

(Inherited from Object)
GetObject(Type, String)

Erstellt einen Proxy für das bekannte Objekt, das durch die Angabe von Typ und URL bestimmt wird. Creates a proxy for the well-known object indicated by the specified type and URL.

GetObject(Type, String, Object)

Erstellt einen Proxy für das bekannte Objekt, das durch die Angabe von Typ, URL und Channeldaten bestimmt wird. Creates a proxy for the well-known object indicated by the specified type, URL, and channel data.

GetType()

Ruft den Type der aktuellen Instanz ab. Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object. Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. Returns a string that represents the current object.

(Inherited from Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. Maps a set of names to a corresponding set of dispatch identifiers.

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. Retrieves the type information for an object, which can then be used to get the type information for an interface.

_Activator.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 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)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. Provides access to properties and methods exposed by an object.

Gilt für: