AppDomain.CreateComInstanceFrom メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > AppDomain.CreateComInstanceFrom メソッドの意味・解説 

AppDomain.CreateComInstanceFrom メソッド (String, String)

指定した COM 型の新しインスタンス作成しますパラメータには、型を含んでいるアセンブリファイルの名前および型の名前を指定します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Function CreateComInstanceFrom ( _
    assemblyName As String, _
    typeName As String _
) As ObjectHandle
Dim instance As AppDomain
Dim assemblyName As String
Dim typeName As String
Dim returnValue As ObjectHandle

returnValue = instance.CreateComInstanceFrom(assemblyName, typeName)
public ObjectHandle CreateComInstanceFrom (
    string assemblyName,
    string typeName
)
public:
ObjectHandle^ CreateComInstanceFrom (
    String^ assemblyName, 
    String^ typeName
)
public ObjectHandle CreateComInstanceFrom (
    String assemblyName, 
    String typeName
)
public function CreateComInstanceFrom (
    assemblyName : String, 
    typeName : String
) : ObjectHandle

パラメータ

assemblyName

要求された型を定義するアセンブリ格納されているファイルの名前。

typeName

要求された型の名前。

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

例外例外
例外種類条件

ArgumentNullException

assemblyName または typeNamenull 参照 (Visual Basic では Nothing) です。

TypeLoadException

型を読み込むことができません。

AppDomainUnloadedException

操作が、アンロードされたアプリケーション ドメイン試行されています。

MissingMethodException

パラメータなしのパブリック コンストラクタが見つかりませんでした

FileNotFoundException

assemblyName が見つかりません。

MemberAccessException

typeName抽象クラスです。

または

このメンバは、遅延バインディング機構呼び出されました。

NotSupportedException

MarshalByRefObject から継承されていないオブジェクトに対して呼び出し元がアクティベーション属性与えることはできません。

ArgumentException

assemblyName空の文字列 ("") です。

BadImageFormatException

assemblyName有効なアセンブリではありません。

FileLoadException

1 つアセンブリまたはモジュール2 つ異な証拠使用して 2 回読込まれました。

解説解説

このメソッド使用すると、型をローカル読み込まなくても、オブジェクトリモート作成できます

実際オブジェクトアクセスするには、戻り値ラップ解除する必要があります

このメソッドCOM 型のインスタンス作成するには、値を true設定した System.Runtime.InteropServices.ComVisibleAttribute 属性をその COM 型に明示的にまたは既定適用する必要がありますそれ以外場合TypeLoadExceptionスローさます。

使用例使用例

サンプル次に示します

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
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);
      }
   }
}
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;

[ComVisible(true)]
public ref class MyComVisibleType
{
public:
   MyComVisibleType()
   {
      Console::WriteLine( "MyComVisibleType instantiated!" );
   }

};


[ComVisible(false)]
public ref class MyComNonVisibleType
{
public:
   MyComNonVisibleType()
   {
      Console::WriteLine( "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( "MyComNonVisibleType" ); // Fail!
   CreateComInstance( "MyComVisibleType" ); // OK!
}

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

AppDomain.CreateComInstanceFrom メソッド (String, String, Byte[], AssemblyHashAlgorithm)

指定した COM 型の新しインスタンス作成しますパラメータには、型を含んでいるアセンブリファイルの名前および型の名前を指定します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Function CreateComInstanceFrom ( _
    assemblyFile As String, _
    typeName As String, _
    hashValue As Byte(), _
    hashAlgorithm As AssemblyHashAlgorithm _
) As ObjectHandle
Dim instance As AppDomain
Dim assemblyFile As String
Dim typeName As String
Dim hashValue As Byte()
Dim hashAlgorithm As AssemblyHashAlgorithm
Dim returnValue As ObjectHandle

returnValue = instance.CreateComInstanceFrom(assemblyFile, typeName, hashValue, hashAlgorithm)
public ObjectHandle CreateComInstanceFrom (
    string assemblyFile,
    string typeName,
    byte[] hashValue,
    AssemblyHashAlgorithm hashAlgorithm
)
public:
ObjectHandle^ CreateComInstanceFrom (
    String^ assemblyFile, 
    String^ typeName, 
    array<unsigned char>^ hashValue, 
    AssemblyHashAlgorithm hashAlgorithm
)
public ObjectHandle CreateComInstanceFrom (
    String assemblyFile, 
    String typeName, 
    byte[] hashValue, 
    AssemblyHashAlgorithm hashAlgorithm
)
public function CreateComInstanceFrom (
    assemblyFile : String, 
    typeName : String, 
    hashValue : byte[], 
    hashAlgorithm : AssemblyHashAlgorithm
) : ObjectHandle

パラメータ

assemblyFile

要求された型を定義するアセンブリ格納されているファイルの名前。

typeName

要求された型の名前。

hashValue

計算されハッシュ コードの値を表します

hashAlgorithm

アセンブリ マニフェスト使用するハッシュ アルゴリズム表します

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

例外例外
例外種類条件

ArgumentNullException

assemblyName または typeNamenull 参照 (Visual Basic では Nothing) です。

TypeLoadException

型を読み込むことができません。

AppDomainUnloadedException

操作が、アンロードされたアプリケーション ドメイン試行されています。

MissingMethodException

パラメータなしのパブリック コンストラクタが見つかりませんでした

FileNotFoundException

assemblyFile が見つかりません。

MemberAccessException

typeName抽象クラスです。

または

このメンバは、遅延バインディング機構呼び出されました。

NotSupportedException

MarshalByRefObject から継承されていないオブジェクトに対して呼び出し元がアクティベーション属性与えることはできません。

ArgumentException

assemblyFile空の文字列 ("") です。

BadImageFormatException

assemblyFile有効なアセンブリではありません。

FileLoadException

1 つアセンブリまたはモジュール2 つ異な証拠使用して 2 回読込まれました。

解説解説

このメソッド使用すると、型をローカル読み込まなくても、オブジェクトリモート作成できます

実際オブジェクトアクセスするには、戻り値ラップ解除する必要があります

このメソッドCOM 型のインスタンス作成するには、値を true設定した System.Runtime.InteropServices.ComVisibleAttribute 属性をその COM 型に明示的にまたは既定適用する必要がありますそれ以外場合TypeLoadExceptionスローさます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

AppDomain.CreateComInstanceFrom メソッド

指定した COM 型の新しインスタンス作成します
オーバーロードの一覧オーバーロードの一覧

名前 説明
AppDomain.CreateComInstanceFrom (String, String) 指定した COM 型の新しインスタンス作成しますパラメータには、型を含んでいるアセンブリファイルの名前および型の名前を指定します
AppDomain.CreateComInstanceFrom (String, String, Byte[], AssemblyHashAlgorithm) 指定した COM 型の新しインスタンス作成しますパラメータには、型を含んでいるアセンブリファイルの名前および型の名前を指定します
参照参照

関連項目

AppDomain クラス
AppDomain メンバ
System 名前空間
Activator.CreateComInstanceFrom



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

AppDomain.CreateComInstanceFrom メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



AppDomain.CreateComInstanceFrom メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS