GetChangedDocumentAsync返回null,但应具有一个值

时间:2019-04-10 22:23:34

标签: roslyn-code-analysis

我的CodeFix返回一个文档,我可以通过Roslyn对其进行跟踪,直到GetChangeSolutionAsync。在调试器中查看时,ChangedDocument的文档带有正确的文本。但是下一行将ChangedDocument == null进行比较,它为null并退出返回null而不是我的文档的例程。

我已逐步完成GetChangedSoultionAsync并看到它在调试器中返回正确的值,但随后看到它以null返回

       protected async virtual Task<Solution> GetChangedSolutionAsync(CancellationToken cancellationToken)
        {
            var changedDocument = await GetChangedDocumentAsync(cancellationToken).ConfigureAwait(false);
            if (changedDocument == null)
            {
                return null;
            }

            return changedDocument.Project.Solution;
        }

在调试器中,更改await之后的文档如下所示

  

?changedDocument   Test0.vb      DocumentState:{Microsoft.CodeAnalysis.DocumentState}      FilePath:null      ID:(DocumentId,#860a1da9-991f-4262-9428-c50c7a9a912e-Test0.vb)      名称:“ Test0.vb”      项目:TestProject      服务:{Microsoft.CodeAnalysis.DefaultTextDocumentServiceProvider}      SourceCodeKind:常规      状态:{Microsoft.CodeAnalysis.DocumentState}   但是if语句为true,并且该函数返回null

0 个答案:

没有答案