打开不属于项目的cs文件的任何方式使Intellisense工作?

时间:2009-01-30 11:52:23

标签: c# visual-studio visual-studio-2008 xaml vsx

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


上下文

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

我们正在将文档连接到Running文档表,并使用IVSRunningDocumentTable接收诸如Saving,Close和all之类的事件。效果很好。

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

整个番茄的Visual Assist X是VS的一个插件,我已经使用了很多年。当你打开它时,它会给你智能感知和更多。