0

我读关于如何使VSPackage的全球服务这个文档:VSPackage的全球服务生活方式

https://msdn.microsoft.com/en-us/library/bb166804(v=vs.100).aspx

我想创建结构排序会通过我的inplementation ICompletionSource使用“缓存”的。如果我理解了正确实施ICompletionSourceProviderICompletionSource的新事物,则会使用新的编辑器窗口/完成会话。我希望跨所有会话进行缓存,一次加载数据,然后在需要时进行更新,但不会因每个会话/编辑器而消失。

这给我带来了问题。什么是全球服务实例生活

我要寻找某种“单身”对象是在包初始化创建的,会超越ICompletionSource情况下,为它应该提供预先缓存数据。如果对象能够订阅项目更改事件(主要是添加/删除文件),那也不错。 VsPackage全球服务适用于此?这里最好的做法是什么?

我正在努力做我的阅读,但有很多东西要看这里。

回答

1

所以通过它的声音,你真的在​​MEF世界的东西与ImportExport属性。对于VS中的MEF,任何东西(除非另有说明,否则您控制的)都是一个单独的东西,一旦创建就会在该过程的整个过程中生活。 MEF导出并内部导入内部类型以提供对共享状态的访问是很常见的。