Compruebe si el método usa PineVoke
-
12-12-2019 - |
Pregunta
¿Hay alguna otra parte para verificar si un método usa PineVoke? Estoy en bucle a través de todos los métodos en un conjunto usando METHEBASE, pero quiero verificar si el método está usando PineVoke. Aquí está el código que estoy usando:
foreach (MethodBase bases in mtd.GetType().GetMethods())
{
//check if the method is using pinvoke
}
Además, si es posible, ¿cómo puede ver la forma en que puedo verificar la DLL que se está utilizando y la función / punto de entrada que se llama?
Solución
Puede verificar si se decore un método con dllimportattribute .Si es así, está usando PineVoke.
foreach (MethodBase methodBase in mtd.GetType().GetMethods())
{
if (methodBase.CustomAttributes.Any(cad => cad.AttributeType == typeof(DllImportAttribute))
{
// Method is using PInvoke
}
}
Otros consejos
Puede usar este método de extensión:
public static bool IsPinvoke(this MethodBase method)
{
return method.Attributes.HasFlag(MethodAttributes.PinvokeImpl);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow