Я создаю пользовательский поставщик рефакторинга кода как расширение для Visual Studio 2017 и хочу, чтобы он получил доступ к службе DTE
.Чтобы получить его, я использую ImportingConstructorAttribute
и объявляю сервису параметр:
[ExportCodeRefactoringProvider( LanguageNames.CSharp, Name = nameof( MyCodeRefactoringProvider ) )]
[Shared]
internal class MyCodeRefactoringProvider : CodeRefactoringProvider {
private readonly DTE m_dte;
[ImportingConstructor]
public MyCodeRefactoringProvider( DTE dte ) {
m_dte = dte;
}
public sealed override async Task ComputeRefactoringsAsync( CodeRefactoringContext context ) {
//...
}
}
Однако, когда я запускаю провайдера в экспериментальном экземпляре Visual Studio, провайдер не создается.
Поставщик рефакторинга работает нормально, если я не пытаюсь импортировать поставщика услуг.Та же проблема возникает, если я использую ImportAttribute
в свойстве вместо ImportingConstructorAttribute
.
В файле ActivityLog.xml Visual Studio также ничего не было.
Как импортироватьDTE
через MEF?