1
に割り当てられている場合のRoslynチェック私は、キーをRESXファイルからリソースを使用するように変換するアプリケーションを作成しています。このコードは、前のローカル変数で働いていた:私はdataFlowAnalysisを取得しようとすると、フィールド宣言が
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));
}
は、しかし、私はエラーが表示されます。
Additional information: statementOrExpression is not a StatementSyntax or an ExpressionSyntax.
はどのように理想的には誰もがこの変数に書かれているかどうかを確認する必要がありますすることができます宣言の外側にある。