2017-12-19 27 views
0

일부 방법에 사용자 지정 코드를 주입하는 사용자 지정 IL Rewriter를 만들었습니다. 이 주입의 일부인 List<int>의 객체를 인스턴스화하려고합니다. 이미 List ~ 1에 대한 mdTokenRef를 찾았습니다.TypeRef에서 TypeNet을 정의하십시오. IL

이 mdTokenRef에서 TypeSpec을 정의하거나 얻으려면 어떻게해야합니까? 아래에 나와있는 것처럼 TypeSpecBlog를 정의 할 수 있습니다. 그러나 ICorProfiler API를 찾고 TypeSpec을 찾으십시오.

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

답변

0

당신은 mdTokenRef에서 TypeSpec를 정의 할 수 없습니다,하지만 당신은 IMetaDataEmit 객체를 사용하고 GetTokenFromTypeSpec 기능을 통해 TypeSpec을 정의 할 수 있습니다.

가 IMetaDataEmit 객체를 얻으려면, 당신은 IMetaDataImport를 사용할 수 있습니다, 그 QueryInterface를 기능을 제공

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