如何查找包含特定类的 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# 组件的主要内容,如果未能解决你的问题,请参考以下文章
(Visual C#) 在RichTextBox中实现查找特定字符并返回结果的功能