MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Activator クラス

2013/12/12

オブジェクトの型をローカル サイトに作成するメソッドを保持します。このクラスは継承できません。

System.Object
  System.Activator

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public sealed class Activator

Activator 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッド静的メンバーCreateInstance(Type)指定した型の既定のコンストラクターを使用して、型のインスタンスを作成します。
パブリック メソッド静的メンバーCreateInstance(Type, Object[])指定したパラメーターに最も一致するコンストラクターを使用して、指定した型のインスタンスを作成します。
パブリック メソッド静的メンバーCreateInstance<T>()パラメーターなしのコンストラクターを使用して、指定されたジェネリック型パラメーターによって決定される型のインスタンスを作成します。
パブリック メソッドEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
このページのトップへ

CreateInstance メソッドは、指定された引数に最も一致するコンストラクターを呼び出して、アセンブリで定義された型のインスタンスを作成します。引数を指定しない場合は、パラメーターのないコンストラクター、つまり既定のコンストラクターが呼び出されます。

作成する型および呼び出すコンストラクターにアクセスできる必要があります。DynamicMethod を使用して動的メソッドを作成する場合、その動的メソッドはシステム提供のアセンブリに含まれる匿名モジュールでホストされるので、内部コンストラクターを呼び出すことができません。

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

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

次に、Activator クラスを使用して、実行時に動的にオブジェクトを作成する方法を示します。


using System;
using System.Reflection;
using System.Text;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Type sbType = typeof(StringBuilder);

      // Create an instance of the StringBuilder type using Activator.CreateInstance
      // and the parameterless constructor.
      object o = Activator.CreateInstance(sbType);

      // Append a string to the StringBuilder object and display the StringBuilder,
      // late bound.
      sbType.InvokeMember("Append", 
         BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod, 
         Type.DefaultBinder, 
         o, new object[] {"Hello, there."});
      outputBlock.Text += o.ToString() + "\n";

      // Create an instance of StringBuilder using the constructor that takes a 
      // string.
      o = Activator.CreateInstance(sbType, new object[]{"Hello, there."});

      // Append a string to the StringBuilder object and display the StringBuilder,
      // late bound.
      sbType.InvokeMember("Append", 
         BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod, 
         Type.DefaultBinder, 
         o, new object[] {" And hello again!"});
      outputBlock.Text += o.ToString() + "\n";
   }
}

/* This code produces the following output:

Hello, there.
Hello, there. And hello again!
 */


Windows Phone OS

サポート: 8.0, 7.1, 7.0

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

リファレンス

表示:
© 2016 Microsoft