c# - 引用 COM DLL 时帮助文本丢失

标签 c# .net visual-studio-2010 com

我对 COM 几乎一无所知,但我会尽量把问题说清楚。

我有一个 .NET 4.0 项目并且正在引用一个用 VBScript 编写的旧 COM DLL。

当我在代码中使用此 DLL 时,我在 VS2010 中没有获得任何描述方法和类的自定义帮助文本。它们在对象浏览器中也不可用。

我想这与 .NET 应用于 COM 库的自动包装器有关。帮助文本似乎在这个过程中丢失了。

当我直接在VS的对象浏览器中查看dll时,我可以看到方法等的文本。

有没有办法保留描述文本以使用引用的 COM dll 进行编码?

最佳答案

您指的是可用于 .NET 类的内联帮助文档而不是参数类型信息吗?如果是这样,我会分享你的沮丧。为了 C# 程序员通过 COM 互操作使用我的 COM 对象的好处,我付出了很多努力在我的 IDL 中编写帮助字符串注释,发现它们都没有在类型库导入中幸存下来。

Adam Nathan 的书“.NET 和 COM:完整的互操作性指南”中的“常见问题解答:类型库导入程序为何不自动将帮助字符串内容保存在 DescriptionAttribute 中?”下对此行为进行了解释。我发现这本书对学习 COM 互操作非常有帮助,尽管它已经很老了。它也可以 Kindle、epub 和 pdf 格式购买。

Adam Nathan 的解释是 helpstring 属性没有被翻译成 System.ComponentModel.DescriptionAttribute对象,因为 DescriptionAttributes 适用于 Windows 窗体控件并且不可本地化。

就我个人而言,我仍然更喜欢 helpstring 属性被翻译。也许该功能可以添加到上面链接的 codeplex 类型库导入器中,如果它还没有这样做的话。

关于c# - 引用 COM DLL 时帮助文本丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7012045/

相关文章:

c# - .Any() 上的 Linq 和 EF

c# - Mootools 幻灯片

.net - C#中的三重DES加密

c++ - 如何编写此西北方法的代码

c# - 为什么 C# 中的 Dispose 模式不像 C++ 中的 RAII 那样工作

c# - 打开 Chrome 浏览器放大?

c# - 如何: Adding Multi tables on Word with .网

.net - .NET中非常简单的JSON序列化

winforms - 利用 Windows Azure 进行 ClickOnce 发布

visual-studio - Visual Studio 在发布时崩溃