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 ではありません。
または publicKey と keyPair が null 参照 (Visual Basic では Nothing) です。 |
ReflectionTypeLoadException | 生成されたメタデータには、型の読み込みを妨げているエラーがあります。 |
解説
アセンブリの厳密な名前を生成しない場合は、 flags が TypeLibImporterFlags.PrimaryInteropAssembly と等しくない限り、 publicKey と keyPair を 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 オーバーロードの一覧