指定したアセンブリで定義されている、指定した型の新しいインスタンスを作成します。バインダ、バインディング フラグ、コンストラクタ引数、引数を解釈するために使用するカルチャ固有の情報、アクティベーション属性、型を作成するために必要な認証情報をパラメータで指定します。
Overloads Public Overridable Function CreateInstance( _
ByVal assemblyName As String, _ ByVal typeName As String, _ ByVal ignoreCase As Boolean, _ ByVal bindingAttr As BindingFlags, _ ByVal binder As Binder, _ ByVal args() As Object, _ ByVal culture As CultureInfo, _ ByVal activationAttributes() As Object, _ ByVal securityAttributes As Evidence _) As ObjectHandle Implements _AppDomain.CreateInstance
[C#]
public virtual ObjectHandle CreateInstance(stringassemblyName,stringtypeName,boolignoreCase,BindingFlagsbindingAttr,Binderbinder,object[] args,CultureInfoculture,object[] activationAttributes,EvidencesecurityAttributes);
[C++]
public: virtual ObjectHandle* CreateInstance(String* assemblyName,String* typeName,boolignoreCase,BindingFlagsbindingAttr,Binder* binder,Object* args __gc[],CultureInfo* culture,Object* activationAttributes __gc[],Evidence* securityAttributes);
[JScript]
public function CreateInstance(
assemblyName : String,typeName : String,ignoreCase : Boolean,bindingAttr : BindingFlags,binder : Binder,args : Object[],culture : CultureInfo,activationAttributes : Object[],securityAttributes : Evidence) : ObjectHandle;
パラメータ
- assemblyName
アセンブリの表示名。 - typeName
要求する型の完全限定型名。 - ignoreCase
検索で大文字と小文字を区別するかどうかを指定する Boolean 値。 - bindingAttr
typeName コンストラクタの検索に影響を与える 0 個以上のビット フラグの組み合わせ。 bindingAttr が 0 の場合は、大文字と小文字を区別してパブリック コンストラクタを検索します。 - binder
バインディング、引数型の強制変換、メンバの呼び出し、および、リフレクションを使用した MemberInfo オブジェクトの取得を有効にするオブジェクト。 binder が null の場合は、既定のバインダが使用されます。 - args
コンストラクタに渡される引数。この引数の配列は、呼び出すコンストラクタのパラメータに対して、数、順序、および型を一致させる必要があります。既定のコンストラクタを優先する場合は、 args を空の配列または null にする必要があります。 - culture
args から typeName コンストラクタに対して宣言された仮型への強制変換を制御するカルチャ固有の情報。culture が null 参照 (Visual Basic では Nothing) の場合は、現在のスレッドの CultureInfo が使用されます。 - activationAttributes
アクティべーションに参加できる 1 つ以上の属性。 - securityAttributes
typeName の作成を認証するために使用される情報。
戻り値
typeName で指定した新しいインスタンスのラッパーであるオブジェクト。実際のオブジェクトにアクセスするには、戻り値のラップを解除する必要があります。
実装
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | assemblyName または typeName が null 参照 (Visual Basic では Nothing) です。 |
MissingMethodException | 一致するコンストラクタが見つかりませんでした。 |
TypeLoadException | assemblyName で、 typename が見つかりませんでした。 |
FileNotFoundException | assemblyName が見つかりませんでした。 |
MethodAccessException | 呼び出し元に、このコンストラクタを呼び出すためのアクセス許可がありません。 |
NotSupportedException | MarshalByRefObject から継承されていないオブジェクトに対して、呼び出し元がアクティベーション属性を与えることはできません。 |
SecurityException | 呼び出し元に、正しいアクセス許可がありません。アクセス許可のセクションを参照してください。 |
AppDomainUnloadedException | 操作が、アンロードされたアプリケーション ドメインで試行されています。 |
解説
このメソッドは、 typeName の既定のコンストラクタを呼び出します。
assemblyName の書式については、 AssemblyName のトピックを参照してください。
現在のアプリケーション ドメインではない対象のアプリケーション ドメインで CreateInstance を呼び出そうとすると、対象のアプリケーション ドメインにアセンブリが正常に読み込まれます。 Assembly は MarshalByRefObject ではないため、読み込まれたアセンブリに対する 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 (関連する列挙体)
- SecurityPermission (証拠を提供するために必要なアクセス許可) SecurityPermissionFlag.ControlEvidence (関連する列挙体)
参照
AppDomain クラス | AppDomain メンバ | System 名前空間 | AppDomain.CreateInstance オーバーロードの一覧 | Activator.CreateInstance