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无法工作,原因很简单,打开的文档不是项目的一部分(遗憾的是,我们不能这样做,我们不能让代码落后) .
智能感知由标识符和类型的内存缓存驱动。这些类型根据您所在的项目以及该项目具有的引用进行缓存。如果您正在编辑的代码文件不是项目的一部分,Visual Studio 将必须加载每个可能的程序集并为整个 .NET 框架中的每种类型创建智能感知数据,因为它无法知道您的代码文件是否存在需要它。
我猜想 Visual Studio可以根据文件的内容加载智能感知,但这不是它当前的工作方式。