编程语言
首页 > 编程语言> > c# – 检查方法是否使用PInvoke

c# – 检查方法是否使用PInvoke

作者:互联网

反正有没有检查方法是否使用PInvoke?
我正在使用MethodBase循环遍历程序集中的所有方法,但我想检查该方法是否使用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
    }
}

标签:c,pinvoke,system-reflection,methodbase
来源: https://codeday.me/bug/20190613/1231646.html