我今天遇到了一个奇怪的问题,Visual Studio 没有显示 C# 项目中引用的 DLL 中的某些函数。
具体来说,我有一个引用 DLL 的 C# 项目SASInterop.DLL
,其中包含一个 interface ILibref
,我知道这个接口应该有一个名为 something 的函数,类似于ListMembers
. 但是,Intellisense 不知道这样的功能,当将对象浏览器指向引用时,它与 Intellisense 一致;不存在这样的功能。
但经过多次试验和戳,我在 IL DASM 中打开了 DLL,果然,有一个函数ListDataSets
与 Visual Studio 未显示的一对其他函数一起命名。在代码中使用此函数非常有效,鼠标悬停工具提示甚至显示正确的签名。
查看 IL DASM 中的各种功能,我看不出有什么可以将 Intellisense 识别的功能与那些不识别的功能区分开来。任何人都可以对此有所了解吗?我对 DLL 的主题不是很精通,我的 google-fu 让我失望了。