Я пытаюсь добавить несколько новых функций в пакет, разработанный для нашей компании. Одна из этих функций заключается в создании нового файла на основе файла, выбранного в обозревателе решений, и выбранного пункта меню. Я создал свои элементы динамического меню, которые находятся в обозревателе решений, и похоже, что мне нужно использовать IVsSingleFileGenerator, как показано в этом примере.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы получить файл, который я выбрал, и либо прочитать его, либо передать в один генератор файлов. Я предпочел бы создать файл из этого контекстного меню, а не из пользовательского действия инструмента.
Похоже, это даст мне путь к файлу
UIHierarchy solutionExplorer = _applicationObject.ToolWindows.SolutionExplorer;
var items = solutionExplorer.SelectedItems as Array;
if (items == null || items.Length != 2)
{
return;
}
String strFile1 = String.Empty;
UIHierarchyItem item1 = items.GetValue(0) as UIHierarchyItem;
foreach (UIHierarchyItem hierarchyItem in items)
{
ProjectItem prjItem = hierarchyItem.Object as ProjectItem;
string prjPath = prjItem.Properties.Item("FullPath").Value.ToString();
}
который я затем могу использовать для передачи в функцию генерации генератора одного файла ivs.
Это лучший подход?