Я пытаюсь написать планировщик для XML-кода в VS (расширение, использующее их SDK из шаблона VSIX), и я хотел бы получать вызов события всякий раз, когда пользователь переходит на другой код/документ.
Затем я планирую проверить тип документа, создать и отобразить интерактивную схему, если это действительно XML-документ.
Как мне создать такой хук и нужен ли он вообще?
ИЗМЕНИТЬ
Я попытался реализовать следующую реализацию, но мне сказали, что объект не содержит определения для «GetGlobalService».
using System;
using System.Runtime.InteropServices;
using EnvDTE;
using Microsoft.VisualStudio.Shell;
[Guid("bc4c5e8f-a492-4a44-9e57-ec9ad945140e")]
public class OutlineWindow : ToolWindowPane
{
private DTE dte;
public OutlineWindow() : base(null)
{
this.Caption = "OutlineWindow";
this.Content = new OutlineWindowControl();
dte = Package.GetGlobalService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
dte.Events.WindowEvents.WindowActivated += OnWindowActivated;
}
private void OnWindowActivated(Window gotFocus, Window lostFocus)
{
throw new NotImplementedException();
}
}