5

理想情况下,我们需要了解 Microsoft 如何处理 XAML 生成的代码(那些 *.g.cs 文件)。如果您使用 XAML 代码,即使 *.g.cs 文件不是项目的一部分,intellisense 也可以工作!!


语境:

在自定义 VS 包中,我们需要有一些逻辑来在 VS IDE 中打开一个 CS 文件(不使其成为项目的一部分),以允许用户对其进行编辑。

我们正在使用 IVSRunningDocumentTable 将文档连接到 Running 文档表并接收保存、关闭等事件。效果很好。

现在的问题是,当打开文档时,Intellisense 无法工作,原因很简单,打开的文档不是项目的一部分(遗憾的是,我们不能这样做,我们不能让它后面的代码) .

4

2 回答 2

3

Intellisense 由标识符和类型的内存缓存驱动。这些类型根据您所在的项目和该项目具有的引用进行缓存。如果您正在编辑的代码文件不是项目的一部分,Visual Studio 将不得不加载所有可能的程序集并为整个 .NET 框架中的每种类型创建智能感知数据,因为它无法知道您的代码文件是否需要它。

我猜 Visual Studio可以根据文件的内容加载智能感知,但这不是它目前的工作方式。

于 2009-01-30T13:50:58.063 回答
0

Whole Tomato 的 Visual Assist X 是我多年来一直使用的 VS 的插件。当你打开它时,它会给你智能感知等等。

于 2009-01-30T18:58:49.767 回答