Исключение при инициализации CodeRefactoringProvider при попытке импорта DTE - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю пользовательский поставщик рефакторинга кода как расширение для 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...