Exemplo n.º 1
0
 public override SyntaxNode VisitBlock(BlockSyntax node)
 {
     if (_applicationStart)
     {
         _applicationStart = false;
         if (_notPartialClass)
         {
             using (var globalModelSR = new StreamReader(_globalAsaxCsModelPath))
             {
                 _globalModel = globalModelSR.ReadToEnd();
             }
             _globalModelCompilationUnit = SyntaxFactory.ParseCompilationUnit(_globalModel);
             var globalModelNamespace = _globalModelCompilationUnit.ChildNodes().OfType<NamespaceDeclarationSyntax>().First();
             var globalModelClass = globalModelNamespace.ChildNodes().OfType<ClassDeclarationSyntax>().First();
             var globalModelApplicationStart = globalModelClass.ChildNodes().OfType<MethodDeclarationSyntax>().First(m => m.Identifier.ValueText == "Application_Start");
             var globalModelApplicationStartBody = globalModelApplicationStart.Body;
             node = node.AddStatements(globalModelApplicationStartBody.Statements.ToArray());
         }
         return node.AddStatements(SyntaxFactory.ParseStatement("Global." + _edmxName + "ApplicationStart(unityContainer);"));
     }
     return base.VisitBlock(node);
 }