如何查找包含特定类的 C# 组件

Posted

技术标签:

【中文标题】如何查找包含特定类的 C# 组件【英文标题】:How to find the C# component that contains a particular class 【发布时间】:2011-05-04 10:37:05 【问题描述】:

我正在使用 C# 创建一个 Internet Explorer 插件。我一直在关注一个教程,其中代码导入了几个我没有的类,即:

using System.Windows;
using SHDocVw;

我意识到我需要将相关组件添加到我的项目中,但我不确定如何找到包含这些类的组件。也许某处有搜索?

【问题讨论】:

教程站没有源码吗? 它列出了源代码,但没有提到您需要添加到项目中的引用。 msmvps.com/blogs/vcsjones/archive/2010/05/23/… 【参考方案1】:

这两个示例都是位于需要引用的程序集中的命名空间。幸运的是,添加这些引用非常简单:

对于 System.Windows:

    右键单击您的项目。 选择“添加参考...” 选择“.NET”选项卡并找到 System.Windows 程序集。 双击添加。

对于 SHDocVw:

    右键单击您的项目。 选择“添加参考...” 选择“浏览”标签。 导航到 C:\Windows\System32 查找 SHDocVw.dll 双击添加。

【讨论】:

非常感谢,当您不熟悉开发语言/环境时,最好有明确的说明。我遇到的一个问题是 System.Windows 在 .NET 选项卡中不存在。我有 System.Windows.Presentation、..ndows.Input.Manipulations、..ndows.Forms.DataVisualization 和 ..ndows.Forms。我确实设法通过创建一个 WPF 应用程序来解决这个问题,该应用程序似乎包括开箱即用的必要程序集。 System.Windows 仍然没有在参考文献中列出。 @opsb - System.Windows 实际上可能是一个 Silverlight 程序集。我的错。但是不要忘记,命名空间可以跨越多个程序集,因此通过创建 WPF 项目,它添加了其他程序集引用,这些引用也包含属于 System.Windows 命名空间的类。如果您知道您需要什么类而不是您要查找的命名空间,则更容易判断需要添加哪个程序集。 是的,我想避免使用 WPF,因为我不想包含所有必要的组件。事实证明,必要的组件称为 WindowsBase,也可以在 .NET 选项卡上找到。【参考方案2】:

首先,您发布的代码不是类,而是命名空间。

您可以通过查看命名空间的文档来确定要添加的组件。 在命名空间名称之后谷歌,你会在 MSDN 上找到答案。

【讨论】:

啊,我是从 java 来的,我没有意识到你也可以使用这种语法来导入命名空间。【参考方案3】:

它的 Microsoft Web 浏览器控件。

你应该在你的电脑上拥有它,名称为

shdocvw32.dll

在您的项目中引用它。

问候,

马扎尔·卡里米

【讨论】:

我发现了一些可能做类似工作的文件。 shodocvw.dll、Microsoft.ShDocVw.dll、AxInterop.ShDocVw.dll 和 Interop.ShDocVw.dll。我怎么知道该选择哪一个?另外,如果我指的是保存在文件系统的某个随机部分中的 dll,我如何与其他开发人员共享该项目?

以上是关于如何查找包含特定类的 C# 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中访问查找所有控件和所有组件到表单中?

(Visual C#) 在RichTextBox中实现查找特定字符并返回结果的功能

如何使用漂亮的汤和重新找到包含特定文本的特定类的跨度?

xpath按元素和属性查找节点,其中包含具有特定id的子元素

C#:如何查找两个字符串数组是不是包含相同的值

如何在 JavaScript/jQuery 中查找数组是不是包含特定字符串?