Activator Třída

Definice

Obsahuje metody pro místní nebo vzdálené vytváření typů objektů nebo získání odkazů na existující vzdálené objekty.Contains methods to create types of objects locally or remotely, or obtain references to existing remote objects. Tuto třídu nelze zdědit.This class cannot be inherited.

public ref class Activator sealed : 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
    interface _Activator
Public NotInheritable Class Activator
Implements _Activator
Dědičnost
Activator
Atributy
Implementuje

Příklady

Následující příklad ukazuje, jak použít třídu Activator k dynamickému sestavování objektů za běhu.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

Poznámky

Metoda CreateInstance vytvoří instanci typu definovaného v sestavení vyvoláním konstruktoru, který nejlépe odpovídá zadaným argumentům.The CreateInstance method creates an instance of a type defined in an assembly by invoking the constructor that best matches the specified arguments. Nejsou-li zadány žádné argumenty, konstruktor, který nepřijímá žádné parametry, to znamená, že konstruktor bez parametrů je vyvolán.If no arguments are specified, the constructor that takes no parameters, that is, the parameterless constructor, is invoked.

Musíte mít dostatečná oprávnění k vyhledání a volání konstruktoru; v opačném případě je vyvolána výjimka.You must have sufficient permission to search for and call a constructor; otherwise, an exception is thrown. Ve výchozím nastavení jsou při hledání konstruktoru zváženy pouze veřejné konstruktory.By default, only public constructors are considered during the search for a constructor. Pokud nelze nalézt konstruktor nebo konstruktor bez parametrů, je vyvolána výjimka.If no constructor or parameterless constructor can be found, an exception is thrown.

Parametr pořadače určuje objekt, který vyhledává sestavení pro vhodný konstruktor.A binder parameter specifies an object that searches an assembly for a suitable constructor. Můžete zadat vlastní pořadač a vyhledávací kritéria.You can specify your own binder and search criteria. Pokud není zadán žádný pořadač, použije se výchozí pořadač.If no binder is specified, a default binder is used. Další informace naleznete v tématu třídy System.Reflection.Binder a System.Reflection.BindingFlags.For more information, see the System.Reflection.Binder and System.Reflection.BindingFlags classes.

Parametr legitimace má vliv na zásady zabezpečení a oprávnění pro konstruktor.An evidence parameter affects the security policy and permissions for the constructor. Další informace naleznete v tématu Třída System.Security.Policy.Evidence.For more information, see the System.Security.Policy.Evidence class.

Instanci typu lze vytvořit v místní nebo vzdálené lokalitě.An instance of a type can be created at a local or remote site. Pokud je typ vytvořen vzdáleně, parametr aktivační atribut určuje identifikátor URI vzdálené lokality.If the type is created remotely, an activation attribute parameter specifies the URI of the remote site. Volání pro vytvoření instance může projít zprostředkujícími lokalitami předtím, než dorazí na vzdálený web.The call to create the instance might pass through intermediary sites before it reaches the remote site. Další aktivační atributy mohou změnit prostředí nebo kontext, ve kterém volání funguje ve vzdálených a zprostředkujících lokalitách.Other activation attributes can modify the environment, or context, in which the call operates at the remote and intermediary sites.

Pokud je instance vytvořena lokálně, bude vrácen odkaz na tento objekt.If the instance is created locally, a reference to that object is returned. Pokud je instance vytvořena vzdáleně, vrátí se odkaz na proxy server.If the instance is created remotely, a reference to a proxy is returned. Vzdálený objekt je zpracováván prostřednictvím serveru proxy, jako kdyby byl lokálním objektem.The remote object is manipulated through the proxy as if it were a local object.

Metoda GetObject vytvoří proxy server k aktuálně běžícímu vzdálenému objektu, známému objektu aktivovanému serverem nebo webové službě XML.The GetObject method creates a proxy to a currently running remote object, server-activated well-known object, or XML Web service. Můžete zadat připojovací médium, tedy kanál.You can specify the connection medium, that is, the channel. Další informace naleznete v tématu Třída System.Runtime.Remoting.Channels.ChannelServices.For more information, see the System.Runtime.Remoting.Channels.ChannelServices class.

Sestavení obsahují definice typu.Assemblies contain type definitions. Metoda CreateInstance vytvoří instanci typu z aktuálně spuštěného sestavení.The CreateInstance method creates an instance of a type from a currently running assembly. Metoda CreateInstanceFrom vytvoří instanci ze souboru, který obsahuje sestavení.The CreateInstanceFrom method creates an instance from a file that contains an assembly. Metoda CreateComInstanceFrom vytvoří instanci objektu COM ze souboru, který obsahuje sestavení.The CreateComInstanceFrom method creates an instance of a COM object from a file that contains an assembly.

Metody

CreateComInstanceFrom(String, String)

Vytvoří instanci objektu COM, jejíž název je zadán, pomocí pojmenovaného souboru sestavení a konstruktoru bez parametrů.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)

Vytvoří instanci objektu COM, jejíž název je zadán, pomocí pojmenovaného souboru sestavení a konstruktoru bez parametrů.Creates an instance of the COM object whose name is specified, using the named assembly file and the parameterless constructor.

CreateInstance(ActivationContext)

Vytvoří instanci typu určenou zadaným objektem ActivationContext.Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(ActivationContext, String[])

Vytvoří instanci typu, která je určena zadaným objektem ActivationContext a je aktivována se zadanými vlastními aktivačními daty.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)

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného sestavení a konstruktoru bez parametrů.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[])

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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)

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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)

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného konstruktoru Assembly a bez parametrů.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[])

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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)

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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[])

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného konstruktoru Assembly a bez parametrů.Creates an instance of the type whose name is specified, using the named assembly and parameterless constructor.

CreateInstance(Type)

Vytvoří instanci zadaného typu pomocí konstruktoru bez parametrů daného typu.Creates an instance of the specified type using that type's parameterless constructor.

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

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean)

Vytvoří instanci zadaného typu pomocí konstruktoru bez parametrů daného typu.Creates an instance of the specified type using that type's parameterless constructor.

CreateInstance(Type, Object[])

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Vytvoří instanci zadaného typu pomocí konstruktoru, který nejlépe odpovídá zadaným parametrům.Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance<T>()

Vytvoří instanci typu určenou zadaným parametrem obecného typu s použitím konstruktoru bez parametrů.Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

CreateInstanceFrom(AppDomain, String, String)

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného souboru sestavení a konstruktoru bez parametrů.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[])

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného souboru sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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)

Vytvoří instanci typu, jejíž název je zadán v zadané vzdálené doméně, pomocí pojmenovaného souboru sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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)

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného souboru sestavení a konstruktoru bez parametrů.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[])

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného souboru sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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)

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného souboru sestavení a konstruktoru, který nejlépe odpovídá zadaným parametrům.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[])

Vytvoří instanci typu, jejíž název je zadán, pomocí pojmenovaného souboru sestavení a konstruktoru bez parametrů.Creates an instance of the type whose name is specified, using the named assembly file and parameterless constructor.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetObject(Type, String)

Vytvoří proxy server pro dobře známý objekt, který je určen zadaným typem a adresou URL.Creates a proxy for the well-known object indicated by the specified type and URL.

GetObject(Type, String, Object)

Vytvoří proxy server pro známý objekt určený zadaným typem, adresou URL a daty kanálu.Creates a proxy for the well-known object indicated by the specified type, URL, and channel data.

GetType()

Type Získá aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.Maps a set of names to a corresponding set of dispatch identifiers.

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní.Retrieves the type information for an object, which can then be used to get the type information for an interface.

_Activator.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 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)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.Provides access to properties and methods exposed by an object.

Platí pro