Activator Activator Activator Activator Class

Определение

Содержит методы, позволяющие локально или удаленно создавать типы объектов или получать ссылки на существующие удаленные объекты. Contains methods to create types of objects locally or remotely, or obtain references to existing remote objects. Этот класс не наследуется. 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
Наследование
ActivatorActivatorActivatorActivator
Атрибуты
Реализации

Примеры

В следующем примере показано, как использовать Activator класса для динамического построения объектов во время выполнения.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

Комментарии

CreateInstance Метод создает экземпляр типа, определенного в сборке, вызвав конструктор, который наилучшим образом соответствует указанным аргументам.The CreateInstance method creates an instance of a type defined in an assembly by invoking the constructor that best matches the specified arguments. Если аргументы не указаны, вызывается конструктор, который не принимает никаких параметров, то есть конструктор по умолчанию.If no arguments are specified, the constructor that takes no parameters, that is, the default constructor, is invoked.

Необходимо иметь достаточные разрешения для поиска и вызова конструктора; в противном случае создается исключение.You must have sufficient permission to search for and call a constructor; otherwise, an exception is thrown. По умолчанию только открытые конструкторы считаются во время поиска для конструктора.By default, only public constructors are considered during the search for a constructor. Если нет конструкторов или конструктор по умолчанию не найден, выдается исключение.If no constructor or default constructor can be found, an exception is thrown.

Параметр привязки указывает объект, который выполняет поиск сборки для подходящего конструктора.A binder parameter specifies an object that searches an assembly for a suitable constructor. Можно указать собственные условия модуля привязки и поиска.You can specify your own binder and search criteria. Если связыватель не задан, используется связыватель по умолчанию.If no binder is specified, a default binder is used. Дополнительные сведения см. в описаниях классов System.Reflection.Binder и System.Reflection.BindingFlags.For more information, see the System.Reflection.Binder and System.Reflection.BindingFlags classes.

Параметр свидетельства влияет на политику безопасности и разрешения для конструктора.An evidence parameter affects the security policy and permissions for the constructor. Дополнительные сведения см. в описании класса System.Security.Policy.Evidence.For more information, see the System.Security.Policy.Evidence class.

На локальном или удаленном сайте, можно создать экземпляр типа.An instance of a type can be created at a local or remote site. Если тип создается, параметр атрибута активации задает URI удаленного узла.If the type is created remotely, an activation attribute parameter specifies the URI of the remote site. Вызов для создания экземпляра может проходить через промежуточные сайты, до достижения удаленного узла.The call to create the instance might pass through intermediary sites before it reaches the remote site. Другие атрибуты активации можно изменить среду или контекст, в котором функционирует вызов на удаленном и промежуточных сайтах.Other activation attributes can modify the environment, or context, in which the call operates at the remote and intermediary sites.

Если экземпляр создается локально, возвращается ссылка на этот объект.If the instance is created locally, a reference to that object is returned. Если экземпляр создается, возвращается ссылка на прокси-сервере.If the instance is created remotely, a reference to a proxy is returned. Удаленный объект управляется через прокси-сервер, как если бы это был локальный объект.The remote object is manipulated through the proxy as if it were a local object.

GetObject Метод создает прокси для запущенного удаленного объекта, активируемого сервером хорошо известного объекта или веб-службы XML.The GetObject method creates a proxy to a currently running remote object, server-activated well-known object, or XML Web service. Можно указать среду соединения, то есть канал.You can specify the connection medium, that is, the channel. Дополнительные сведения см. в описании класса System.Runtime.Remoting.Channels.ChannelServices.For more information, see the System.Runtime.Remoting.Channels.ChannelServices class.

Сборки содержат определения типов.Assemblies contain type definitions. CreateInstance Метод создает экземпляр типа из запущенной сборки.The CreateInstance method creates an instance of a type from a currently running assembly. CreateInstanceFrom Метод создает экземпляр из файла, содержащего сборку.The CreateInstanceFrom method creates an instance from a file that contains an assembly. CreateComInstanceFrom Метод создает экземпляр COM-объекта из файла, содержащего сборку.The CreateComInstanceFrom method creates an instance of a COM object from a file that contains an assembly.

Методы

CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String) CreateComInstanceFrom(String, String)

Создает экземпляр COM-объекта с заданным именем, используя для этого файл именованной сборки и конструктор по умолчанию. 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) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Создает экземпляр COM-объекта с заданным именем, используя для этого файл именованной сборки и конструктор по умолчанию. Creates an instance of the COM object whose name is specified, using the named assembly file and the default constructor.

CreateInstance(ActivationContext) CreateInstance(ActivationContext) CreateInstance(ActivationContext) CreateInstance(ActivationContext)

Создает экземпляр типа, назначенного указанным объектом ActivationContext. Creates an instance of the type designated by the specified ActivationContext object.

CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[]) CreateInstance(ActivationContext, String[])

Создает экземпляр типа, назначенного указанным объектом ActivationContext и активированного с помощью указанных пользовательских данных активации. 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) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String) CreateInstance(AppDomain, String, String)

Создает экземпляр типа с заданным именем в указанном удаленном домене, используя для этого именованную сборку и конструктор по умолчанию. 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[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает экземпляр типа с заданным именем в указанном удаленном домене, используя для этого именованную сборку и конструктор, который наилучшим образом соответствует заданным параметрам. 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) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Создает экземпляр типа с заданным именем в указанном удаленном домене, используя для этого именованную сборку и конструктор, который наилучшим образом соответствует заданным параметрам. 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) CreateInstance(String, String) CreateInstance(String, String) CreateInstance(String, String)

Создает экземпляр типа с заданным именем, используя для этого именованную сборку и конструктор по умолчанию. 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[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает экземпляр типа с заданным именем, используя для этого именованную сборку и конструктор, который наилучшим образом соответствует заданным параметрам. 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) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Создает экземпляр типа с заданным именем, используя для этого именованную сборку и конструктор, который наилучшим образом соответствует заданным параметрам. 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[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[]) CreateInstance(String, String, Object[])

Создает экземпляр типа с заданным именем, используя для этого именованную сборку и конструктор по умолчанию. Creates an instance of the type whose name is specified, using the named assembly and default constructor.

CreateInstance(Type) CreateInstance(Type) CreateInstance(Type) CreateInstance(Type)

Создает экземпляр указанного типа, используя конструктор, заданный для этого типа по умолчанию. Creates an instance of the specified type using that type's default constructor.

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

Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам. Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам. Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance(Type, Boolean) CreateInstance(Type, Boolean) CreateInstance(Type, Boolean) CreateInstance(Type, Boolean)

Создает экземпляр указанного типа, используя конструктор, заданный для этого типа по умолчанию. Creates an instance of the specified type using that type's default constructor.

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

Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам. Creates an instance of the specified type using the constructor that best matches the specified parameters.

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

Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам. Creates an instance of the specified type using the constructor that best matches the specified parameters.

CreateInstance<T>() CreateInstance<T>() CreateInstance<T>() CreateInstance<T>()

Создает экземпляр типа, объявленного в указанном параметре универсального типа, с помощью конструктора без параметров. Creates an instance of the type designated by the specified generic type parameter, using the parameterless constructor.

CreateInstanceFrom(AppDomain, String, String) CreateInstanceFrom(AppDomain, String, String) CreateInstanceFrom(AppDomain, String, String) CreateInstanceFrom(AppDomain, String, String)

Создает экземпляр типа с заданным именем в указанном удаленном домене, используя для этого файл именованной сборки и конструктор по умолчанию. 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[]) CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает экземпляр типа с заданным именем в указанном удаленном домене, используя для этого файл именованной сборки и конструктор, который наилучшим образом соответствует заданным параметрам. 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) CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Создает экземпляр типа с заданным именем в указанном удаленном домене, используя для этого файл именованной сборки и конструктор, который наилучшим образом соответствует заданным параметрам. 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) CreateInstanceFrom(String, String) CreateInstanceFrom(String, String) CreateInstanceFrom(String, String)

Создает экземпляр типа с заданным именем, используя для этого файл именованной сборки и конструктор по умолчанию. 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[]) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Создает экземпляр типа с заданным именем, используя для этого файл именованной сборки и конструктор, который наилучшим образом соответствует заданным параметрам. 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) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Создает экземпляр типа с заданным именем, используя для этого файл именованной сборки и конструктор, который наилучшим образом соответствует заданным параметрам. 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[]) CreateInstanceFrom(String, String, Object[]) CreateInstanceFrom(String, String, Object[]) CreateInstanceFrom(String, String, Object[])

Создает экземпляр типа с заданным именем, используя для этого файл именованной сборки и конструктор по умолчанию. Creates an instance of the type whose name is specified, using the named assembly file and default constructor.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту. Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию. Serves as the default hash function.

(Inherited from Object)
GetObject(Type, String) GetObject(Type, String) GetObject(Type, String) GetObject(Type, String)

Создает прокси для хорошо известного объекта, определенного заданным типом и URL. Creates a proxy for the well-known object indicated by the specified type and URL.

GetObject(Type, String, Object) GetObject(Type, String, Object) GetObject(Type, String, Object) GetObject(Type, String, Object)

Создает прокси для хорошо известного объекта, который идентифицируется по заданному типу, URL и данным канала. Creates a proxy for the well-known object indicated by the specified type, URL, and channel data.

GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.

(Inherited from Object)

Явные реализации интерфейса

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. Maps a set of names to a corresponding set of dispatch identifiers.

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr) _Activator.GetTypeInfo(UInt32, UInt32, IntPtr) _Activator.GetTypeInfo(UInt32, UInt32, IntPtr) _Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые затем могут использоваться для получения сведений о типе интерфейса. Retrieves the type information for an object, which can then be used to get the type information for an interface.

_Activator.GetTypeInfoCount(UInt32) _Activator.GetTypeInfoCount(UInt32) _Activator.GetTypeInfoCount(UInt32) _Activator.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 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) _Activator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Activator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Activator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта. Provides access to properties and methods exposed by an object.

Применяется к