英語で読む

次の方法で共有


Activator クラス

定義

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

C#
public static class Activator
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class Activator : System.Runtime.InteropServices._Activator
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Activator : System.Runtime.InteropServices._Activator
継承
Activator
属性
実装

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

C#
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
 */

注釈

このメソッドは 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)

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

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0