public static string GetFullNestedTypePrefix(SyntaxNode node, out bool nested) { string ns = GetFullNamespace(node); List <string> nestedTypeParts = new List <string>(); while (SyntaxNodeHelper.TryGetParentSyntax(node, out ClassDeclarationSyntax cds)) { nestedTypeParts.Add(cds.Identifier.ToFullString().Trim()); node = cds; } string nestedTypeStr = string.Join("+", nestedTypeParts); if (string.IsNullOrEmpty(ns)) { nested = true; return(nestedTypeStr); } else { if (string.IsNullOrEmpty(nestedTypeStr)) { nested = false; return(ns); } else { nested = true; return(ns + "." + nestedTypeStr); } } }
public static string GetFullNamespace(SyntaxNode node) { if (!SyntaxNodeHelper.TryGetParentSyntax(node, out NamespaceDeclarationSyntax namespaceDeclarationSyntax)) { return(string.Empty); // or whatever you want to do in this scenario } string namespaceName = namespaceDeclarationSyntax.Name.ToString(); return(namespaceName); }