Activator.CreateInstance メソッド (Type)

2013/12/12

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

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

public static Object CreateInstance(
	Type type
)

パラメーター

type
型: System.Type
作成するオブジェクトの型。

戻り値

型: System.Object
新規作成されたオブジェクトの参照。

例外条件
ArgumentNullException

typenull です。

ArgumentException

typeRuntimeType ではありません。

または

type はオープン ジェネリック型です (つまり、ContainsGenericParameters プロパティは true を返します)。

NotSupportedException

Void 型と RuntimeArgumentHandle 型の作成、またはこれらの型の配列の作成はサポートされていません。

TargetInvocationException

呼び出されているコンストラクターが例外をスローします。

MethodAccessException

呼び出し元には、このコンストラクターを呼び出すためのアクセス許可がありません。

MemberAccessException

抽象型クラスのインスタンスを作成できません。または、このメンバーが遅延バインディング メカニズムで呼び出されました。

MissingMethodException

一致するパブリック コンストラクターが見つかりませんでした。

COMException

type は COM オブジェクトですが、型を取得するために使用するクラス識別子が無効であるか、識別されたクラスが登録されていません。

TypeLoadException

type が有効な型ではありません。

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

バージョンについてのメモ

Windows Phone

コンストラクターが定義されていない型の場合は、CreateInstance メソッドが、MissingMethodException 例外ではなく、MemberAccessException 例外をスローします。

次のコード例は、CreateInstance(Type) メソッドを呼び出す方法を示しています。次のコード例は、Activator クラス用のより大きなコード例の一部です。


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";


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2014 Microsoft