ICorProfilerInfo2::GetClassIDInfo2 메서드
지정된 제네릭 클래스의 부모 모듈과 메타데이터 토큰, 해당 부모 클래스의 ClassID 및 클래스의 각 형식 인수에 대한 ClassID(있는 경우)를 가져옵니다.
HRESULT GetClassIDInfo2(
[in] ClassID classId,
[out] ModuleID *pModuleId,
[out] mdTypeDef *pTypeDefToken,
[out] ClassID *pParentClassId,
[in] ULONG32 cNumTypeArgs,
[out] ULONG32 *pcNumTypeArgs,
[out] ClassID typeArgs[]);
매개 변수
classId
[in] 관련 정보를 가져올 해당 클래스의 ID입니다.pModuleId
[out] 클래스의 부모 모듈 ID에 대한 포인터입니다.pTypeDefToken
[out] 클래스의 메타데이터 토큰에 대한 포인터입니다.pParentClassId
[out] 부모 클래스의 ID에 대한 포인터입니다.cNumTypeArgs
[in] typeArgs 배열의 크기입니다.pcNumTypeArgs
[out] 사용할 수 있는 총 요소 수에 대한 포인터입니다.typeArgs
[out] 클래스의 형식 인수 ID를 나타내는 각 ClassID 값이 들어 있는 배열입니다. 메서드가 반환되면 사용 가능한 ClassID 값의 일부 또는 전부가 typeArgs에 포함됩니다.
설명
GetClassIDInfo2 메서드는 ICorProfilerInfo::GetClassIDInfo 메서드와 비슷하지만 GetClassIDInfo2는 제네릭 형식에 대한 추가 정보를 가져옵니다.
프로파일러 코드는 ICorProfilerInfo::GetModuleMetaData를 호출하여 지정한 모듈에 대한 메타데이터 인터페이스를 가져올 수 있습니다. pTypeDefToken이 참조하는 위치에 반환된 메타데이터 토큰은 클래스의 메타데이터에 액세스하는 데 사용할 수 있습니다.
GetClassIDInfo2가 반환된 후 typeArgs 버퍼가 모든 ClassID 값을 포함할 만큼 충분히 큰지 확인해야 합니다. 이렇게 하려면 pcNumTypeArgs가 가리키는 값을 cNumTypeArgs 매개 변수의 값과 비교합니다. pcNumTypeArgs가 cNumTypeArgs보다 큰 값을 가리키면 더 큰 typeArgs 버퍼를 할당하고 더 큰 새 값으로 cNumTypeArgs를 업데이트한 다음 다시 GetClassIDInfo2를 호출합니다.
또는 길이가 0인 typeArgs 버퍼를 사용하여 GetClassIDInfo2를 먼저 호출해 올바른 버퍼 크기를 얻을 수 있습니다. 그런 다음 typeArgs 버퍼 크기를 pcNumTypeArgs에서 반환된 값으로 설정하고 GetClassIDInfo2을 다시 호출할 수 있습니다.
이러한 두 접근 방식에 대한 자세한 내용은 프로파일링 API 메서드 규칙를 참조하십시오.
요구 사항
플랫폼: .NET Framework 시스템 요구 사항 참조
헤더: CorProf.idl, CorProf.h
라이브러리: CorGuids.lib
.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0