检测程序集中的 DllImportAttribute 及其数据

发布于 2024-12-07 09:58:27 字数 260 浏览 0 评论 0原文

我试图(在运行时)找到 p/invokes 及其信息:1)Dll 名称 2)EntryPoint。

我尝试了这样的方法: Assembly.GetExecutingAssembly().GetCustomAttributesData(); 但由于某种原因,我没有看到那里列出的类型 DllImportAttribute 尽管我有 ap/invoke集会。

我很确定这里遗漏了一些东西。有什么想法吗?

谢谢!

I am trying to find (at runtime) the the the p/invokes along with their information: 1) Dll name 2) EntryPoint.

I tried something like this: Assembly.GetExecutingAssembly().GetCustomAttributesData(); but for some reason I dont see the type DllImportAttribute listed there although I have a p/invoke in that assembly.

I am pretty sure am missing something here. Any ideas?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦在深巷 2024-12-14 09:58:27
var pinvokes = from type in Assembly.GetExecutingAssembly().GetTypes()
               from method in type.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
               let dllImport = (DllImportAttribute)method.GetCustomAttributes(typeof(DllImportAttribute), false).FirstOrDefault()
               where dllImport != null
               select new
               {
                   DllName = dllImport.Value,
                   EntryPoint = dllImport.EntryPoint,
               };
var pinvokes = from type in Assembly.GetExecutingAssembly().GetTypes()
               from method in type.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
               let dllImport = (DllImportAttribute)method.GetCustomAttributes(typeof(DllImportAttribute), false).FirstOrDefault()
               where dllImport != null
               select new
               {
                   DllName = dllImport.Value,
                   EntryPoint = dllImport.EntryPoint,
               };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文