public override void VisitNamespaceDeclaration(NamespaceDeclarationSyntax node) { try { var namespaceHierarchy = node.AncestorsAndSelf().OfType <NamespaceDeclarationSyntax>().Reverse(); var @namespace = namespaceHierarchy.Aggregate("", (acc, curr) => acc + "." + curr.Name.WithoutTrivia().ToString()); Context.Namespace = @namespace.StartsWith(".") ? @namespace.Substring(1) : @namespace; base.VisitNamespaceDeclaration(node); } finally { Context.Namespace = string.Empty; } }