Я пытаюсь получить все регионы в моем классе и получить все утверждения внутри него.Когда я пытаюсь получить доступ к местоположению объекта SyntaxTrivia, приложение выдает NullReferenceException
. Я создал словарь для хранения начального и конечного местоположения регионов.Я зацикливаюсь на каждом регионе и пытаюсь получить местоположение.
private static void Analyze(SyntaxNodeAnalysisContext context)
{
ClassDeclarationSyntax classDeclaration = (ClassDeclarationSyntax)context.Node;
SyntaxTriviaList regions = classDeclaration.DescendantTrivia().ToImmutableList()
.FindAll(x => x.Kind().Equals(SyntaxKind.RegionDirectiveTrivia) || x.Kind().Equals(SyntaxKind.EndRegionDirectiveTrivia))
.ToSyntaxTriviaList();
Dictionary<Location, Location> regionLocations = new Dictionary<Location, Location>();
Location regionStart = classDeclaration.GetLocation();
foreach (SyntaxTrivia region in regions)
{
if (regions.IndexOf(region) / 2 == 0)
{
Location ll = region.GetLocation();
regionLocations.Add(region.GetLocation(), region.GetLocation());
regionStart = region.GetLocation();
}
else
{
regionLocations.Add(regionStart, region.GetLocation());
}
}
}