Я хочу создать шаблон элемента Visual Studio, который генерирует элемент (например, пользовательскую .aspx-страницу) в решении, выполнив шаблон T4, добавив его в решение. Для этого я использую эту ссылку: http://msdn.microsoft.com/en-us/library/gg586947.aspx Может ли кто-нибудь сказать мне, как получить поставщика услуг, о котором говорится в коде в приведенной выше ссылке. Чтобы решить эту проблему, я написал:Вызов преобразования текста в VS-расширение
EnvDTE.DTE DTE = (EnvDTE.DTE) Package.GetGlobalService (TypeOf (EnvDTE.DTE)); // Получить поставщика услуг - как это сделать, зависит от контекста:
IServiceProvider ServiceProvider = новый Microsoft.VisualStudio.Shell.ServiceProvider (DTE в Microsoft.VisualStudio.OLE.Interop.IServiceProvider);
Но Его дает мне ошибку пустого исключения arguement, поскольку переменная DTE остается пустым. Почему это null? Я не знаю, делаю ли я это правильно или неправильно. Пожалуйста, предложите, как мне выполнить serviceprovider, указанный в коде в приведенной выше ссылке, чтобы я мог двигаться вперед. Если возможно, предоставьте мне пример кода.
Пожалуйста, укажите,
Спасибо, Mayur
Спасибо Garath, мог бы вы предоставить мне код или любой пример проект. Я сделал то, что вы предложили, но все же я получаю значение ITextTemplating T4 как null. Код, который я написал, выглядит следующим образом: IServiceProvider serviceProvider = Package.GetGlobalService (typeof (STextTemplating)) как IServiceProvider; ITextTemplating t4 = serviceProvider.GetService (typeof (STextTemplating)) как ITextTemplating; – Mayur
Даже я пробовал: ITextTemplating t4 = Package.GetGlobalService (typeof (STextTemplating)) как ITextTemplating; ** Если возможно, plz предоставит мне код или ссылку, которые помогут мне выбраться из этого ... – Mayur
Мне интересно, используете ли вы VS2008? Кажется, я помню, что Package.GetGlobalService не работал так хорошо в этой версии. – GarethJ