IL для методов P / Invoke выглядит следующим образом (например, kernel32!LockFile
):
.method assembly hidebysig static pinvokeimpl("kernel32.dll" lasterr winapi)
bool LockFile (
class Microsoft.Win32.SafeHandles.SafeFileHandle handle,
int32 offsetLow,
int32 offsetHigh,
int32 countLow,
int32 countHigh
) cil managed preservesig
{
}
Mono.Cecil отражает метаданные pinvokeimpl
в классе PInvokeInfo
, причем первая строка упакована как ModuleReference
. Следовательно, method.PInvokeInfo.Module.Name
дает имя DLL / dylib.