RunningDocumentTable 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供对正在运行的文档表的访问 (RDT) ,用于跟踪 Visual Studio 中当前打开的所有文档。
public ref class RunningDocumentTable : System::Collections::Generic::IEnumerable<Microsoft::VisualStudio::Shell::RunningDocumentInfo>
public class RunningDocumentTable : System.Collections.Generic.IEnumerable<Microsoft.VisualStudio.Shell.RunningDocumentInfo>
type RunningDocumentTable = class
interface seq<RunningDocumentInfo>
interface IEnumerable
Public Class RunningDocumentTable
Implements IEnumerable(Of RunningDocumentInfo)
- 继承
-
RunningDocumentTable
- 实现
示例
此示例演示如何使用语言服务中的此类来获取编辑器中当前打开的文件的所属项目。
using Microsoft.VisualStudio.Package;
namespace MyLanguagePackage
{
public class MyLanguageService : LanguageService
{
IServiceProvider serviceProvider;
public IVsHierarchy GetOwningProject(Source src)
{
RunningDocumentTable rdt = new RunningDocumentTable(this.serviceProvider);
string filename = src.GetFilePath();
return rdt.GetHierarchyItem(filename);
}
}
}
注解
运行的文档表用于跟踪当前在 Visual Studio 中打开的所有文档,无论这些文档是否可见。 VSPackage (请参阅 VSPackages) 可以通过使用服务 ID SVsRunningDocumentTable 和接口的 GUID IVsRunningDocumentTable 在服务提供程序上调用 IServiceProvider.QueryService 方法来访问 RDT。
此类通过隐藏有用方法集合后面的接口详细信息 IVsRunningDocumentTable ,简化了对 VSPackage 的 RDT 的访问。 请注意, <xref:Microsoft.VisualStudio.Package.RunningDocumentTable> 类仅用于访问文档信息。 如果要跟踪 RDT 事件,则必须通过IServiceProvider.QueryService服务提供商) 上的 方法自行 (获取IVsRunningDocumentTable接口,并使用自己的接口IVsRunningDocTableEvents实现 (或其派生) 调用AdviseRunningDocTableEvents方法。
在 Source 为任务窗口生成错误任务项列表时, 类使用此类获取文档的所属项目。
调用方说明
实例化此类以获取有关打开的文档的信息。 生成的对象通常会缓存以增强性能。 请注意,此类不提供对 RDT 的完全访问。
构造函数
RunningDocumentTable() |
实例化 RunningDocumentTable 的新实例。 |
RunningDocumentTable(IServiceProvider) |
初始化 Microsoft.VisualStudio.Package.RunningDocumentTable 类的新实例。 |
RunningDocumentTable(IVsRunningDocumentTable) |
提供对正在运行的文档表的访问 (RDT) ,用于跟踪 Visual Studio 中当前打开的所有文档。 |
方法
显式接口实现
IEnumerable.GetEnumerator() |
枚举正在运行的文档表中的文档。 |
扩展方法
EmptyIfNull<T>(IEnumerable<T>) |
如果枚举不为 null,则返回此枚举。 如果为 null,则返回空枚举。 |