public static string Build(string source, TemplatedGenerator generator) { var builder = new StringBuilder(); using (var stream = new StringWriter(builder)) using (var writer = new IndentedTextWriter(stream, " ")) { generator.Generate(GenerateContext(source), writer); } return builder.ToString(); }
static void Rebuild(string text, string fullPath) { var dsl = text; var generator = new TemplatedGenerator() { Namespace = "SaaS", GenerateInterfaceForEntityWithModifiers = "?", TemplateForInterfaceName = "public interface I{0}Aggregate", TemplateForInterfaceMember = "void When({0} c);", ClassNameTemplate = @" [DataContract(Namespace = ""SaaS"")] public partial class {0}", MemberTemplate = "[DataMember(Order = {0})] public {1} {2} {{ get; private set; }}", }; var prefix = @" using System; using System.Collections.Generic; using System.Runtime.Serialization; "; File.WriteAllText(Path.ChangeExtension(fullPath, "cs"), prefix + GeneratorUtil.Build(dsl, generator)); }