0

カスタム コードをいくつかのメソッドに挿入するカスタム IL リライターを作成しました。この注入の一部として、 のオブジェクトをインスタンス化したいと思いますList<int>。List~1 の mdTokenRef は既に見つかりました。

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

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

1 に答える 1

0

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

IMetaDataEmit オブジェクトを取得するには、QueryInterface 関数を提供する IMetaDataImport を使用できます。

IMetaDataImport* mdImport;
....
IMetaDataEmit* mdEmit;
HRESULT hr = mdImport->QueryInterface(IID_IMetaDataEmit, (void**)&mdEmit);
于 2018-01-10T10:28:43.737 に答える