【发布时间】:2016-07-02 02:04:31
【问题描述】:
我创建了Classifier、ErrorTagger、SignatureHelp 和TextCompletion 类。都是由提供者创建的,它们是 VS 发现的 MEF 组件。
问题是,我想在这些组件之间共享一个 C# 对象以共享状态,并允许我从每个组件中重新解析相同的文本。我怎样才能做到这一点?我需要这个状态是每个正在编辑的文件。
VS 发现提供者并使用它们创建我的组件。但是,我如何在它们之间传递或共享状态?我确实使用了全局单例,但是当我在 VS 中编辑多个文件时,它们都共享同一个单例,但我需要为每个正在编辑的文件使用不同的实例。
【问题讨论】:
-
IServiceProvider应该可以解决问题。但是考虑到所有东西都在同一个应用程序域中与较新的 VS 一起运行,静态变量也应该可以工作......
标签: c# visual-studio visual-studio-2015 visual-studio-extensions vsix