次の方法で共有


AppDomain.CreateInstance メソッド (String, String, Object )

指定したアセンブリで定義されている、指定した型の新しいインスタンスを作成します。アクティベーション属性の配列をパラメータで指定します。

Overloads Public Overridable Function CreateInstance( _
   ByVal assemblyName As String, _   ByVal typeName As String, _   ByVal activationAttributes() As Object _) As ObjectHandle Implements _AppDomain.CreateInstance
[C#]
public virtual ObjectHandle CreateInstance(stringassemblyName,stringtypeName,object[] activationAttributes);
[C++]
public: virtual ObjectHandle* CreateInstance(String* assemblyName,String* typeName,Object* activationAttributes __gc[]);
[JScript]
public function CreateInstance(
   assemblyName : String,typeName : String,activationAttributes : Object[]) : ObjectHandle;

パラメータ

  • assemblyName
    アセンブリの表示名。
  • typeName
    要求する型の完全限定型名。
  • activationAttributes
    アクティべーションに参加できる 1 つ以上の属性。

戻り値

typeName で指定した新しいインスタンスのラッパーであるオブジェクト。実際のオブジェクトにアクセスするには、戻り値のラップを解除する必要があります。

実装

_AppDomain.CreateInstance

例外

例外の種類 条件
ArgumentNullException assemblyName または typeName が null 参照 (Visual Basic では Nothing) です。
MissingMethodException 一致するパブリック コンストラクタが見つかりませんでした。
TypeLoadException assemblyName で、 typename が見つかりませんでした。
FileNotFoundException assemblyName が見つかりませんでした。
MethodAccessException 呼び出し元に、このコンストラクタを呼び出すためのアクセス許可がありません。
NotSupportedException MarshalByRefObject から継承されていないオブジェクトに対して、呼び出し元がアクティベーション属性を与えることはできません。
SecurityException 呼び出し元に、正しいアクセス許可がありません。要件のセクションを参照してください。
AppDomainUnloadedException 操作が、アンロードされたアプリケーション ドメインで試行されています。

解説

このメソッドは、 typeName の既定のコンストラクタを呼び出します。

assemblyName の書式については、 AssemblyName のトピックを参照してください。

現在のアプリケーション ドメインではない対象のアプリケーション ドメインで CreateInstance を呼び出そうとすると、対象のアプリケーション ドメインにアセンブリが正常に読み込まれます。 AssemblyMarshalByRefObject ではないため、読み込まれたアセンブリに対する Assembly をこのメソッドで現在のアプリケーション ドメインに戻そうとした場合、共通言語ランタイムはアセンブリを現在のアプリケーション ドメインに読み込もうとしますが、結果的には読み込みに失敗することがあります。現在のアプリケーション ドメインと、最初にアセンブリが読み込まれたアプリケーション ドメインのパスの設定が異なる場合には、それぞれのアプリケーション ドメインに読み込まれたアセンブリは異なる場合があります。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

  • FileIOPermissionAccess (アセンブリの場所にアクセスするために必要なアクセス許可)PathDiscovery (関連する列挙体)
  • FileIOPermissionAccess (アセンブリ マニフェストを格納しているファイルを読み取るために必要なアクセス許可)Read (関連する列挙体)
  • WebPermission (アセンブリがローカルでない場合にアセンブリの場所にアクセスするために必要なアクセス許可)
  • SecurityPermission (デリゲートのインスタンスの作成時にアンマネージ コードを呼び出すために必要なアクセス許可)SecurityPermissionFlag/UnmanagedCode (関連する列挙体)
  • ReflectionPermission (すべての型のメンバに対して操作を呼び出すために必要なアクセス許可)ReflectionPermissionFlag/MemberAccess (関連する列挙体)
  • ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングが呼び出されるときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)

参照

AppDomain クラス | AppDomain メンバ | System 名前空間 | AppDomain.CreateInstance オーバーロードの一覧 | Activator.CreateInstance