Activator クラス

定義

オブジェクトの型をローカル サイトまたはリモート サイトに作成するメソッド、または既存のリモート オブジェクトへの参照を取得するメソッドを保持します。 このクラスは継承できません。

public ref class Activator abstract sealed
public ref class Activator sealed : System::Runtime::InteropServices::_Activator
public static class Activator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Activator : 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
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type Activator = class
    interface _Activator
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Activator = class
    interface _Activator
Public Class Activator
Public NotInheritable Class Activator
Implements _Activator
継承
Activator
属性
実装

次の例は、クラスを使用 Activator して実行時にオブジェクトを動的に構築する方法を示しています。

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
 */
open System
open System.Reflection
open System.Text

type SomeType() =
    member _.DoSomething(x) = printfn $"100 / {x} = {100 / x}"

// Create an instance of the StringBuilder type using Activator.CreateInstance.
let o = Activator.CreateInstance typeof<StringBuilder>

// Append a string into the StringBuilder object and display the StringBuilder.
let sb = o :?> StringBuilder
sb.Append "Hello, there." |> ignore
printfn $"{sb}"

// Create an instance of the SomeType class that is defined in this assembly.
let oh = 
    Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().Location, typeof<SomeType>.FullName)

// Call an instance method defined by the SomeType type using this object.
let st = oh.Unwrap() :?> SomeType

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 、指定した引数に最も一致するコンストラクターを呼び出すことによって、アセンブリで定義された型のインスタンスを作成します。 引数が指定されていない場合、パラメーターを受け取らないコンストラクター (つまり、パラメーターなしのコンストラクター) が呼び出されます。

コンストラクターを検索して呼び出すには、十分なアクセス許可が必要です。それ以外の場合は、例外がスローされます。 既定では、コンストラクターの検索中にパブリック コンストラクターのみが考慮されます。 コンストラクターまたはパラメーターなしのコンストラクターが見つからない場合は、例外がスローされます。

バインダー パラメーターは、アセンブリで適切なコンストラクターを検索するオブジェクトを指定します。 独自のバインダーと検索条件を指定できます。 バインダーが指定されていない場合は、既定のバインダーが使用されます。 詳細については、System.Reflection.Binder クラスおよび System.Reflection.BindingFlags クラスを参照してください。

証拠パラメーターは、コンストラクターのセキュリティ ポリシーとアクセス許可に影響します。 詳細については、System.Security.Policy.Evidence クラスを参照してください。

型のインスタンスは、ローカル サイトまたはリモート サイトで作成できます。 型がリモートで作成された場合、アクティブ化属性パラメーターはリモート サイトの URI を指定します。 インスタンスを作成する呼び出しは、リモート サイトに到達する前に中間サイトを通過する可能性があります。 その他のアクティブ化属性は、リモート サイトと中継サイトで呼び出しが動作する環境またはコンテキストを変更できます。

インスタンスがローカルに作成された場合は、そのオブジェクトへの参照が返されます。 インスタンスがリモートで作成された場合は、プロキシへの参照が返されます。 リモート オブジェクトは、ローカル オブジェクトであるかのようにプロキシを介して操作されます。

このメソッドは GetObject 、現在実行中のリモート オブジェクト、サーバーでアクティブ化された既知のオブジェクト、または XML Web サービスへのプロキシを作成します。 接続メディア、つまりチャネルを指定できます。 詳細については、System.Runtime.Remoting.Channels.ChannelServices クラスを参照してください。

アセンブリには型定義が含まれています。 このメソッドは CreateInstance 、現在実行中のアセンブリから型のインスタンスを作成します。 このメソッドは CreateInstanceFrom 、アセンブリを含むファイルからインスタンスを作成します。 このメソッドは CreateComInstanceFrom 、アセンブリを含むファイルから COM オブジェクトのインスタンスを作成します。

メソッド

CreateComInstanceFrom(String, String)

名前を指定したアセンブリ ファイルと、パラメーターなしのコンストラクターを使用して、名前を指定した COM オブジェクトのインスタンスを作成します。

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

名前を指定したアセンブリ ファイルと、パラメーターなしのコンストラクターを使用して、名前を指定した COM オブジェクトのインスタンスを作成します。

CreateInstance(ActivationContext)

指定した ActivationContext オブジェクトによって決定される型のインスタンスを作成します。

CreateInstance(ActivationContext, String[])

指定した ActivationContext オブジェクトによって決定され、指定したカスタム アクティベーション データによってアクティブにされる型のインスタンスを作成します。

CreateInstance(AppDomain, String, String)

名前を指定したアセンブリとパラメーターなしのコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

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

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

CreateInstance(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
互換性のために残されています。

名前を指定したアセンブリと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

CreateInstance(String, String)

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

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

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
互換性のために残されています。

名前を指定したアセンブリと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstance(String, String, Object[])

名前を指定したアセンブリと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstance(Type)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

CreateInstance(Type, Boolean)

指定された型のパラメーターなしのコンストラクターを使用して、指定された型のインスタンスを作成します。

CreateInstance(Type, Object[])

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

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

指定されたパラメーターに最も一致するコンストラクターを使用して、指定された型のインスタンスを作成します。

CreateInstance<T>()

パラメーターなしのコンストラクターを使用して、指定されたジェネリック型パラメーターによって決定される型のインスタンスを作成します。

CreateInstanceFrom(AppDomain, String, String)

名前を指定したアセンブリ ファイルとパラメーターなしのコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

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

名前を指定したアセンブリ ファイルと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

CreateInstanceFrom(AppDomain, String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
互換性のために残されています。

名前を指定したアセンブリ ファイルと、指定したパラメーターに最も適したコンストラクターを使用して、指定したリモート ドメインに、名前を指定した型のインスタンスを作成します。

CreateInstanceFrom(String, String)

名前を指定したアセンブリ ファイルと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

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

名前を指定したアセンブリ ファイルと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
互換性のために残されています。

名前を指定したアセンブリ ファイルと、指定したパラメーターに最も一致するコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

CreateInstanceFrom(String, String, Object[])

名前を指定したアセンブリ ファイルと、パラメーターなしのコンストラクターを使用して、名前を指定した型のインスタンスを作成します。

GetObject(Type, String)

指定された型と URL が示す既知のオブジェクト用にプロキシを作成します。

GetObject(Type, String, Object)

指定された型、URL、およびチャネル データが示す既知のオブジェクト用にプロキシを作成します。

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

_Activator.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この型情報を使用して、インターフェイスの型情報を取得できます。

_Activator.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

_Activator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

適用対象