public override CodeBuilderResult Build() { var writer = new CSharpCodeWriter(); if (!Host.DesignTimeMode && !string.IsNullOrEmpty(Context.Checksum)) { writer.Write("#pragma checksum \"") .Write(Context.SourceFile) .Write("\" \"") .Write(Sha1AlgorithmId) .Write("\" \"") .Write(Context.Checksum) .WriteLine("\""); } using (writer.BuildNamespace(Context.RootNamespace)) { // Write out using directives AddImports(Tree, writer, Host.NamespaceImports); // Separate the usings and the class writer.WriteLine(); new CSharpClassAttributeVisitor(writer, Context).Accept(Tree.Chunks); using (BuildClassDeclaration(writer)) { if (Host.DesignTimeMode) { writer.WriteLine("private static object @__o;"); } var csharpCodeVisitor = CreateCSharpCodeVisitor(writer, Context); new CSharpHelperVisitor(csharpCodeVisitor, writer, Context).Accept(Tree.Chunks); new CSharpTypeMemberVisitor(csharpCodeVisitor, writer, Context).Accept(Tree.Chunks); new CSharpDesignTimeHelpersVisitor(csharpCodeVisitor, writer, Context).AcceptTree(Tree); new CSharpTagHelperFieldDeclarationVisitor(writer, Context).Accept(Tree.Chunks); BuildConstructor(writer); // Add space inbetween constructor and method body writer.WriteLine(); using (writer.BuildDisableWarningScope(DisableAsyncWarning)) { using (writer.BuildMethodDeclaration("public override async", "Task", Host.GeneratedClassContext.ExecuteMethodName)) { csharpCodeVisitor.Accept(Tree.Chunks); } } } } return(new CodeBuilderResult(writer.GenerateCode(), writer.LineMappingManager.Mappings)); }
public override CodeBuilderResult Build() { var writer = new CSharpCodeWriter(); using (writer.BuildNamespace(Context.RootNamespace)) { // Write out using directives AddImports(Tree, writer, Host.NamespaceImports); // Separate the usings and the class writer.WriteLine(); new CSharpClassAttributeVisitor(writer, Context).Accept(Tree.Chunks); using (BuildClassDeclaration(writer)) { if (Host.DesignTimeMode) { writer.WriteLine("private static object @__o;"); } new CSharpHelperVisitor(writer, Context).Accept(Tree.Chunks); new CSharpTypeMemberVisitor(writer, Context).Accept(Tree.Chunks); new CSharpDesignTimeHelpersVisitor(writer, Context).AcceptTree(Tree); BuildConstructor(writer); // Add space inbetween constructor and method body writer.WriteLine(); using (writer.BuildDisableWarningScope(DisableAsyncWarning)) { using (writer.BuildMethodDeclaration("public override async", "Task", Host.GeneratedClassContext.ExecuteMethodName)) { new CSharpCodeVisitor(writer, Context).Accept(Tree.Chunks); } } } } return(new CodeBuilderResult(writer.GenerateCode(), writer.LineMappingManager.Mappings)); }
public override CodeBuilderResult Build() { var writer = new CSharpCodeWriter(); using (writer.BuildNamespace(Context.RootNamespace)) { // Write out using directives AddImports(Tree, writer, Host.NamespaceImports); // Separate the usings and the class writer.WriteLine(); new CSharpClassAttributeVisitor(writer, Context).Accept(Tree.Chunks); using (BuildClassDeclaration(writer)) { if (Host.DesignTimeMode) { writer.WriteLine("private static object @__o;"); } new CSharpHelperVisitor(writer, Context).Accept(Tree.Chunks); new CSharpTypeMemberVisitor(writer, Context).Accept(Tree.Chunks); new CSharpDesignTimeHelpersVisitor(writer, Context).AcceptTree(Tree); BuildConstructor(writer); // Add space inbetween constructor and method body writer.WriteLine(); using (writer.BuildDisableWarningScope(DisableAsyncWarning)) { using (writer.BuildMethodDeclaration("public override async", "Task", Host.GeneratedClassContext.ExecuteMethodName)) { new CSharpCodeVisitor(writer, Context).Accept(Tree.Chunks); } } } } return new CodeBuilderResult(writer.GenerateCode(), writer.LineMappingManager.Mappings); }