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

ama*_*int 5 c# vsx xaml visual-studio-2008 visual-studio

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


语境:

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

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

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

And*_*are 3

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

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