如何让Intellisense在打开不属于项目的cs文件时工作?

5
我们需要知道微软如何处理生成的XAML代码(那些*.g.cs文件)。如果您进入一个XAML代码后台,即使*.g.cs文件不是项目的一部分,智能感知也会起作用!!
背景: 在自定义的VS包中,我们需要一些逻辑来在VS IDE中打开CS文件(而无需将其作为项目的一部分),以允许用户编辑它。
我们将文档连接到运行时文档表,并使用IVSRunningDocumentTable接收保存、关闭等事件。 运行良好。
现在问题是,当打开文档时,智能感知无法工作,原因很简单,打开的文档不是项目的一部分(可悲的是,我们无法做到这一点,我们不能将其作为代码后台)。

我相信有一种方法可以做到这一点,但可能需要一些时间来想出它。在内存中创建临时项目并将文件添加到其中可能是一种选择,理论上可行。 - Vin
2个回答

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

这是非常清楚的,谢谢。问题是,是否有办法将手动打开的文档与缓存绑定,就像 xaml 代码后置文件一样。 - amazedsaint

0

Whole Tomato 的 Visual Assist X 是我多年来一直在使用的 VS 插件。当你打开它时,它将为你提供智能感知和更多功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接