Расширение Visual Studio с помощью пользовательского конструктора

Как создать собственный конструктор пользовательского интерфейса Visual Studio 2008 для файла C#?

Например, если дважды щелкнуть набор данных в обозревателе решений, появится экран пользовательского интерфейса, позволяющий редактировать набор данных, даже если он определен в XML/коде (который можно щелкнуть правой кнопкой мыши и выбрать «Просмотреть код»).

Обычно этот код каким-либо образом отделяется от пользовательского кода либо по региону («Сгенерированный код Windows Forms Designer»), либо по генератору кода («g.cs» для XAML-файлов WPF), либо каким-либо другим способом, например разделяемыми классами.


person Michael    schedule 10.06.2010    source источник


Ответы (2)


Некоторые советы по расширяемости Visual Studio см. в разделе «Надстройка Visual Studio 2010 для написания статей/руководств. ?". Пакет Visual Studio SDK может содержать необходимую информацию.

person John Saunders    schedule 10.06.2010

Что ж, вам придется купить модель расширения Visual Studio. Есть вещи, которые вы можете делать с классом EnvDTE. Однако они довольно ограничены, недостаточно хороши, чтобы делать то, что вы хотите.

Следующая остановка — неуправляемая модель расширяемости, основанная на COM. Это требует написания неуправляемого COM-кода на основе интерфейсов IVxxxx. Доступно для сторонних разработчиков дополнений, таких как компания, которая делает Resharper. Вы должны получить лицензию на написание такого кода, Microsoft не будет уверена, что вы не сломаете их продукт, пока вы не продемонстрируете какое-то доказательство того, что знаете, что делаете. Придется звонить, кажется, это называется лицензия VSIP. Это возможно, очевидно, это было сделано.

Попросите юрисконсульта вашей компании позаботиться об этих препятствиях.

person Hans Passant    schedule 10.06.2010
comment
Спасибо, но я думаю, что это может быть излишним с новыми версиями Visual Studio. Я нашел пример проекта под названием StoryBoardDesigner на CodePlex, который кажется хорошей отправной точкой (и не требует привлечения MS для лицензирования). - person Michael; 11.06.2010