1
我正在編寫一個應用程序,它將密鑰轉換爲使用RESX文件中的資源。此代碼與局部變量是工作前:羅斯林檢查如果字段聲明已分配給
public static void AnalyzeConstDeclaration(SyntaxNodeAnalysisContext context)
{
var fieldDeclaration = (FieldDeclarationSyntax)context.Node;
if (false == IsValidFieldDeclaration(context, fieldDeclaration))
{
return;
}
var firstVariable = fieldDeclaration.Declaration.Variables.FirstOrDefault();
var dataFlowAnalysis = context.SemanticModel.AnalyzeDataFlow(firstVariable);
var variableSymbol = context.SemanticModel.GetDeclaredSymbol(firstVariable);
if (dataFlowAnalysis.WrittenOutside.Contains(variableSymbol))
{
return;
}
var firstSymbol = context.SemanticModel.GetDeclaredSymbol(firstVariable);
context.ReportDiagnostic(Diagnostic.Create(Rule, context.Node.GetLocation(), firstSymbol.Name));
}
然而,當我試圖讓dataFlowAnalysis我收到一個錯誤:
Additional information: statementOrExpression is not a StatementSyntax or an ExpressionSyntax.
如何在理想情況下只需要看看是否有人已寫入該變量宣言之外。