Is there anyway to check if a method uses PInvoke ? I'm looping through all the methods in an assembly using MethodBase but I want to check if the method is using PInvoke. Here is the code I'm using :
foreach (MethodBase bases in mtd.GetType().GetMethods())
{
//check if the method is using pinvoke
}
Also if it is possible how can is there a way I can check for the DLL being used and the function/entrypoint that is being called?
You can check to see if a method is decorated with DllImportAttribute. If so, it's using PInvoke.
foreach (MethodBase methodBase in mtd.GetType().GetMethods())
{
if (methodBase.CustomAttributes.Any(cad => cad.AttributeType == typeof(DllImportAttribute))
{
// Method is using PInvoke
}
}