Проверьте, использует ли метод PINVOOKE
-
12-12-2019 - |
Вопрос
Есть в любом случае, чтобы проверить, использует ли метод pinvoke? Я зацикливаю все методы в сборе с использованием методика метода, но я хочу проверить, использует ли метод pinvoke. Вот код, который я использую:
foreach (MethodBase bases in mtd.GetType().GetMethods())
{
//check if the method is using pinvoke
}
.
Также, если это возможно, как можно существовать, я могу проверить для используемой DLL и функции / въездную точку, которая называется?
Решение
Вы можете проверить, будет ли метод украшен dlliMportattribute .Если это так, это использует pinvoke.
foreach (MethodBase methodBase in mtd.GetType().GetMethods())
{
if (methodBase.CustomAttributes.Any(cad => cad.AttributeType == typeof(DllImportAttribute))
{
// Method is using PInvoke
}
}
. Другие советы
Вы можете использовать этот метод расширения:
public static bool IsPinvoke(this MethodBase method)
{
return method.Attributes.HasFlag(MethodAttributes.PinvokeImpl);
}
. Не связан с StackOverflow