我的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