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); }