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) 可以在服務提供者上呼叫 IServiceProvider.QueryService 方法,並使用服務的服務 SVsRunningDocumentTable 標識碼和介面的 IVsRunningDocumentTable GUID 來存取 RDT。
這個類別藉由隱藏實用方法集合背後的介面詳細數據 IVsRunningDocumentTable ,簡化對 VSPackages 的 RDT 存取。 請注意,類別 <xref:Microsoft.VisualStudio.Package.RunningDocumentTable> 僅用於存取文件資訊。 如果您想要追蹤 RDT 事件,您必須透過IServiceProvider.QueryService服務提供者上的方法自行取得IVsRunningDocumentTable介面 () ,並使用AdviseRunningDocTableEvents自己的IVsRunningDocTableEvents介面實作呼叫 方法, (或其衍生) 。
類別 Source 會在建置工作視窗的錯誤工作專案清單時,使用此類別來取得檔的擁有專案。
給呼叫者的注意事項
具現化這個類別,以取得開啟文件的相關信息。 產生的物件通常會快取以增強效能。 請注意,這個類別不提供 RDT 的完整存取權。
建構函式
RunningDocumentTable() |
具現化 RunningDocumentTable 的新實例。 |
RunningDocumentTable(IServiceProvider) |
初始化 Microsoft.VisualStudio.Package.RunningDocumentTable 類別的新執行個體。 |
RunningDocumentTable(IVsRunningDocumentTable) |
可讓您存取執行中的文件數據表, (RDT) ,以追蹤 Visual Studio 中所有目前開啟的檔。 |
方法
明確介面實作
IEnumerable.GetEnumerator() |
列舉執行中文件數據表中的檔。 |
擴充方法
EmptyIfNull<T>(IEnumerable<T>) |
如果此列舉不是 Null,則傳回此列舉。 如果是 null,則傳回空列舉。 |