2017-12-19 10 views
0

カスタムILリライタをビルドして、いくつかのメソッドにカスタムコードを挿入しました。この注入の一部は、私はList<int>のオブジェクトをインスタンス化したい。私はすでにList〜1のmdTokenRefを見つけました。TypeRefから.Net ILのTypeSpecを定義します。

このmdTokenRefから、TypeSpecを定義または取得するにはどうすればよいですか?そのために以下に示すようにTypeSpecBlogを定義することができます。しかし、TypeSpecを見つけるためのICorProfiler APIを探しています。

COR_SIGNATURE sigListInt[] = { ELEMENT_TYPE_GENERICINST, ELEMENT_TYPE_CLASS, tdList, 0x01, ELEMENT_TYPE_I1 }; 

答えて

0

あなたはmdTokenRefからTypeSpecを定義することはできませんが、IMetaDataEmitオブジェクトを使用してGetTokenFromTypeSpec機能を介して、あなたのTypeSpecを定義することができます。 QueryInterface関数に

IMetaDataImport* mdImport; 
.... 
IMetaDataEmit* mdEmit; 
HRESULT hr = mdImport->QueryInterface(IID_IMetaDataEmit, (void**)&mdEmit); 
を提供

IMetaDataEmitオブジェクトを取得するには、あなたがIMetaDataImportを使用することができ、

関連する問題