AppDomain.CreateComInstanceFrom メソッド
オーバーロードの一覧
指定した COM 型の新しいインスタンスを作成します。パラメータには、型を含んでいるアセンブリのファイルの名前および型の名前を指定します。
[Visual Basic] Overloads Public Function CreateComInstanceFrom(String, String) As ObjectHandle
[C#] public ObjectHandle CreateComInstanceFrom(string, string);
[C++] public: ObjectHandle* CreateComInstanceFrom(String*, String*);
[JScript] public function CreateComInstanceFrom(String, String) : ObjectHandle;
指定した COM 型の新しいインスタンスを作成します。パラメータには、型を含んでいるアセンブリのファイルの名前および型の名前を指定します。
[Visual Basic] Overloads Public Function CreateComInstanceFrom(String, String, Byte(), AssemblyHashAlgorithm) As ObjectHandle
[C#] public ObjectHandle CreateComInstanceFrom(string, string, byte[], AssemblyHashAlgorithm);
[JScript] public function CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) : ObjectHandle;
使用例
[Visual Basic, C#, C++] サンプルを次に示します。
[Visual Basic, C#, C++] メモ ここでは、CreateComInstanceFrom のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
<ComVisible(True)> _
Class MyComVisibleType
Public Sub New()
Console.WriteLine("MyComVisibleType instantiated!")
End Sub 'New
End Class 'MyComVisibleType
<ComVisible(False)> _
Class MyComNonVisibleType
Public Sub New()
Console.WriteLine("MyComNonVisibleType instantiated!")
End Sub 'New
End Class 'MyComNonVisibleType
Module Test
Sub Main()
CreateComInstance("MyComNonVisibleType") ' Fail!
CreateComInstance("MyComVisibleType") ' OK!
End Sub 'Main
Sub CreateComInstance(typeName As String)
Try
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
Dim assemblyName As String = currentDomain.FriendlyName
currentDomain.CreateComInstanceFrom(assemblyName, typeName)
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub 'CreateComInstance
End Module 'Test
[C#]
using System;
using System.Reflection;
using System.Runtime.InteropServices;
[ComVisible(true)]
class MyComVisibleType {
public MyComVisibleType() {
Console.WriteLine("MyComVisibleType instantiated!");
}
}
[ComVisible(false)]
class MyComNonVisibleType {
public MyComNonVisibleType() {
Console.WriteLine("MyComNonVisibleType instantiated!");
}
}
class Test {
public static void Main() {
CreateComInstance("MyComNonVisibleType"); // Fail!
CreateComInstance("MyComVisibleType"); // OK!
}
static void CreateComInstance(string typeName) {
try {
AppDomain currentDomain = AppDomain.CurrentDomain;
string assemblyName = currentDomain.FriendlyName;
currentDomain.CreateComInstanceFrom(assemblyName, typeName);
} catch (Exception e) {
Console.WriteLine(e.Message);
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;
[ComVisible(true)]
public __gc class MyComVisibleType {
public:
MyComVisibleType() {
Console::WriteLine(S"MyComVisibleType instantiated!");
}
};
[ComVisible(false)]
public __gc class MyComNonVisibleType {
public:
MyComNonVisibleType() {
Console::WriteLine(S"MyComNonVisibleType instantiated!");
}
};
void CreateComInstance(String* typeName) {
try {
AppDomain* currentDomain = AppDomain::CurrentDomain;
String* assemblyName = currentDomain->FriendlyName;
currentDomain->CreateComInstanceFrom(assemblyName, typeName);
} catch (Exception* e) {
Console::WriteLine(e->Message);
}
}
int main() {
CreateComInstance(S"MyComNonVisibleType"); // Fail!
CreateComInstance(S"MyComVisibleType"); // OK!
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。