Activator.CreateInstanceFrom メソッド (String, String, Object )
名前を指定したアセンブリ ファイルと、既定のコンストラクタを使用して、名前を指定した型のインスタンスを作成します。
Overloads Public Shared Function CreateInstanceFrom( _
ByVal assemblyFile As String, _ ByVal typeName As String, _ ByVal activationAttributes() As Object _) As ObjectHandle
[C#]
public static ObjectHandle CreateInstanceFrom(stringassemblyFile,stringtypeName,object[] activationAttributes);
[C++]
public: static ObjectHandle* CreateInstanceFrom(String* assemblyFile,String* typeName,Object* activationAttributes __gc[]);
[JScript]
public static function CreateInstanceFrom(
assemblyFile : String,typeName : String,activationAttributes : Object[]) : ObjectHandle;
パラメータ
- assemblyFile
typeName という名前の型をシークする場所となるアセンブリが含まれているファイルの名前。 - typeName
推奨される型の名前。 - activationAttributes
アクティべーションに参加できる 1 つ以上の属性の配列。
戻り値
新しく作成されたインスタンスにアクセスするために、ラップを解除する必要があるハンドル。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | typeName が null 参照 (Visual Basic では Nothing) です。 |
MissingMethodException | 一致するパブリック コンストラクタが見つかりませんでした。 |
TypeLoadException | assemblyFile で、 typename が見つかりませんでした。 |
FileNotFoundException | assemblyFile は見つかりませんでした。 |
MethodAccessException | 呼び出し元に、このコンストラクタを呼び出すためのアクセス許可がありません。 |
MemberAccessException | 抽象クラスのインスタンスを作成できません。または、このメンバが遅延バインディングの機構を使用して呼び出されました。 |
TargetInvocationException | コンストラクタがリフレクションによって呼び出されたため、例外がスローされました。 |
NotSupportedException | activationAttributes が空の配列ではありません。また、作成される型が MarshalByRefObject から派生していません。 |
SecurityException | 呼び出し元に、必要な FileIOPermission がありません。 |
解説
ObjectHandle.Unwrap メソッドを使用して戻り値のラップを解除します。
呼び出されたメソッドによってスローされる可能性があるその他の例外については、 Assembly.LoadFrom メソッドおよび CreateInstance メソッドの例外を参照してください。
使用例
[Visual Basic, C#, JScript] CreateInstanceFrom メソッドのオーバーロードの例を次に示します。
Dim hdlSample As ObjectHandle
Dim myExtenderInterface As IMyExtenderInterface
Dim activationAttributes() = {New SynchronizationAttribute()}
' Assumes that SampleAssembly.dll exists in the same directory as this assembly.
hdlSample = Activator.CreateInstanceFrom("SampleAssembly.dll", "SampleNamespace.SampleClass", activationAttributes)
' Assumes that the SampleClass implements an interface provided by
' this application.
myExtenderInterface = CType(hdlSample.Unwrap(), IMyExtenderInterface)
Console.WriteLine(myExtenderInterface.SampleMethod("Bill"))
[C#]
ObjectHandle hdlSample;
IMyExtenderInterface myExtenderInterface;
object[] activationAttributes = {new SynchronizationAttribute()};
// Assumes that SampleAssembly.dll exists in the same directory as this assembly.
hdlSample = Activator.CreateInstanceFrom("SampleAssembly.dll", "SampleNamespace.SampleClass", activationAttributes);
// Assumes that the SampleClass implements an interface provided by
// this application.
myExtenderInterface = (IMyExtenderInterface)hdlSample.Unwrap();
Console.WriteLine(myExtenderInterface.SampleMethod("Bill"));
[JScript]
var hdlSample : ObjectHandle;
var myExtenderInterface : IMyExtenderInterface;
var activationAttributes : Object[] = [new SynchronizationAttribute()];
// Assumes that SampleAssembly.dll exists in the same directory as this assembly.
hdlSample = Activator.CreateInstanceFrom("SampleAssembly.dll", "SampleNamespace.SampleClass", activationAttributes);
// Assumes that the SampleClass implements an interface provided by
// this application.
myExtenderInterface = IMyExtenderInterface(hdlSample.Unwrap());
Console.WriteLine(myExtenderInterface.SampleMethod("Bill"));
[C++] C++ のサンプルはありません。Visual Basic、C#、および JScript のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (デリゲートのインスタンスの作成時にアンマネージ コードを呼び出すために必要なアクセス許可)SecurityPermissionFlag/UnmanagedCode (関連する列挙体)
- ReflectionPermission (すべての型のメンバに対して操作を呼び出すために必要なアクセス許可)ReflectionPermissionFlag/MemberAccess (関連する列挙体)
- FileIOPermission (ディレクトリ パスを検索し、その内容を読み取るために必要なアクセス許可)FileIOPermissionAccess/PathDiscovery および Read (関連する列挙体)
参照
Activator クラス | Activator メンバ | System 名前空間 | Activator.CreateInstanceFrom オーバーロードの一覧