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

标签 c# pinvoke system.reflection methodbase

是否有检查方法是否使用 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,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677230/

相关文章:

c# - 使用 Global.asax asp.net 的自定义错误

c# - 无法在集成测试中在模拟的 InMemory 数据库中播种数据

C# PInvoke 传递无符号字符 *

c# - 如何通过反射获得 protected 内部方法

c# - 更改内容时控件显示为非事件状态

C#、.NET 4.5 : Unexplained parameter on XMLSerializer constructor overload ("location")

.net - 使用其他 DLL 的 PInvoke DLL - ClickOnce 问题

.net - 与所有网络计算机通信,无论 IP 地址如何

c# - 当外部库不向后兼容时检查属性是否存在

c# - 从类型名称的字符串表示形式强制转换为类型