2014-02-21 3 views
0

Я создаю надстройку Visual Studio и когда я выбираю узел подключения к данным в окне проводника сервера (или в таблице данных или в поле данных), есть способ получить значения свойств из окна свойств, показанного в визуальная студия с использованием EnvDTE?Получить свойства из окна свойств

Мне нужно, чтобы получить эти значения из этих полей: Connection string, Provider, Data type, Is Identity и т.д.

Thnx заранее

ответ

0

Вот некоторые примеры кода, которые демонстрируют, как получить доступ к выбор в собственности сетка. Обратите внимание, что может быть выбрано несколько объектов, а не только одно:

IVsMonitorSelection selection = (IVsMonitorSelection)yourSite.GetService(typeof(SVsShellMonitorSelection)); // or yourPackage.GetGlobalService 
IVsMultiItemSelect ms; 
IntPtr h; 
IntPtr pp; 
uint itemid; 

selection.GetCurrentSelection(out h, out itemid, out ms, out pp); 
if (pp != IntPtr.Zero) 
{ 
    try 
    { 
     ISelectionContainer container = Marshal.GetObjectForIUnknown(pp) as ISelectionContainer; 
     if (container != null) 
     { 
      uint count; 
      container.CountObjects((uint)Microsoft.VisualStudio.Shell.Interop.Constants.GETOBJS_SELECTED, out count); 
      if (count == 1) 
      { 
       object[] objs = new object[1]; 
       container.GetObjects((uint)Microsoft.VisualStudio.Shell.Interop.Constants.GETOBJS_SELECTED, 1, objs); 
       object selection = objs[0]; // selection is here 
      } 
     } 
    } 
    finally 
    { 
     Marshal.Release(pp); 
    } 
} 
+0

Вот и все. Я добрался до интерфейса ISelectionContainer, а затем Маршал убил меня :) – murga

Смежные вопросы