次の方法で共有


TypeLibConverter.ConvertTypeLibToAssembly メソッド (Object, String, Int32, ITypeLibImporterNotifySink, Byte , StrongNameKeyPair, Boolean)

COM タイプ ライブラリをアセンブリに変換します。

Overloads Public Overridable Function ConvertTypeLibToAssembly( _
   ByVal typeLib As Object, _   ByVal asmFileName As String, _   ByVal flags As Integer, _   ByVal notifySink As ITypeLibImporterNotifySink, _   ByVal publicKey() As Byte, _   ByVal keyPair As StrongNameKeyPair, _   ByVal unsafeInterfaces As Boolean _) As AssemblyBuilder Implements ITypeLibConverter.ConvertTypeLibToAssembly
[C#]
public virtual AssemblyBuilder ConvertTypeLibToAssembly(objecttypeLib,stringasmFileName,intflags,ITypeLibImporterNotifySinknotifySink,byte[] publicKey,StrongNameKeyPairkeyPair,boolunsafeInterfaces);
[C++]
public: virtual AssemblyBuilder* ConvertTypeLibToAssembly(Object* typeLib,String* asmFileName,intflags,ITypeLibImporterNotifySink* notifySink,unsigned charpublicKey __gc[],StrongNameKeyPair* keyPair,boolunsafeInterfaces);
[JScript]
public function ConvertTypeLibToAssembly(
   typeLib : Object,asmFileName : String,flags : int,notifySink : ITypeLibImporterNotifySink,publicKey : Byte[],keyPair : StrongNameKeyPair,unsafeInterfaces : Boolean) : AssemblyBuilder;

パラメータ

  • typeLib
    ITypeLib インターフェイスを実装するオブジェクト。
  • asmFileName
    結果として得られるアセンブリのファイル名。
  • flags
    任意の特別な設定を示す TypeLibImporterFlags 値。
  • notifySink
    呼び出し元によって実装されている ITypeLibImporterNotifySink インターフェイス。
  • publicKey
    公開キーを保持している byte 配列。
  • keyPair
    公開暗号キーと秘密暗号キーのペアを保持している StrongNameKeyPair オブジェクト。
  • unsafeInterfaces
    true の場合は、インターフェイスでは UnmanagedCode アクセス許可についてリンク時チェックが要求されます。 false の場合は、インターフェイスではランタイム チェックが要求されます。この場合は、スタック ウォークが必要となるため負荷もかかりますが、保護は強化されます。

戻り値

変換後のタイプ ライブラリを保持している AssemblyBuilder オブジェクト。

実装

ITypeLibConverter.ConvertTypeLibToAssembly

例外

例外の種類 条件
ArgumentNullException typeLib が null 参照 (Visual Basic では Nothing) です。

または

asmFileName が null 参照 (Nothing) です。

または

notifySink が null 参照 (Nothing) です。

ArgumentException asmFileName が空の文字列です。

または

asmFileName の長さが MAX_PATH を超えています。

InvalidOperationException flags が PrimaryInteropAssembly ではありません。

または

publicKeykeyPair が null 参照 (Visual Basic では Nothing) です。

ReflectionTypeLoadException 生成されたメタデータには、型の読み込みを妨げているエラーがあります。

解説

アセンブリの厳密な名前を生成しない場合は、 flagsTypeLibImporterFlags.PrimaryInteropAssembly と等しくない限り、 publicKeykeyPair を null 参照 (Visual Basic では Nothing) にすることができます。それ以外の場合は、少なくとも 1 つのパラメータを指定する必要があります。 publicKey が null 参照 (Nothing) の場合、 keyPair の公開キーは、対象アセンブリのマニフェスト メタデータで設定され、署名はアセンブリの内容に基づいて生成されます。 keyPair が null 参照 (Nothing) の場合、 publicKey は対象アセンブリのマニフェスト メタデータで設定され、署名は生成されません。両方のパラメータを指定できますが、通常は役に立たず、無効な署名が生成される可能性があります。

ITypeLib の詳細については、MSDN ライブラリの既存のドキュメントを参照してください。

必要条件

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

参照

TypeLibConverter クラス | TypeLibConverter メンバ | System.Runtime.InteropServices 名前空間 | TypeLibConverter.ConvertTypeLibToAssembly オーバーロードの一覧