コード例 #1
0
        public CompilationUnitSyntax GenerateCompilationUnit(CompilationUnitSyntax root, ClassDeclarationSyntax classDeclaration, string namespaceOfSourceClass, string FileName)
        {
            var diagnostics = classDeclaration.GetDiagnostics().Where(n => n.Severity == Microsoft.CodeAnalysis.DiagnosticSeverity.Error);

            if (diagnostics.Count() > 0)
            {
                return(null);
            }
            NamespaceDeclarationSyntax NamespaceDecl = SyntaxFactory.NamespaceDeclaration(SyntaxFactory.ParseName(namespaceOfSourceClass + "Tests"));
            var methods = classDeclaration.DescendantNodes().OfType <MethodDeclarationSyntax>().Where(method => method.Modifiers.Any(SyntaxKind.PublicKeyword));
            var unit    = SyntaxFactory.CompilationUnit()
                          .AddUsings(GenerateUsings(root))
                          .AddMembers(NamespaceDecl
                                      .AddMembers(GenerateClass(FileName)
                                                  .AddMembers(GenerateMethods(methods)
                                                              )));

            return(unit.NormalizeWhitespace());
        }