public static async ValueTask <string> RenderAsync(this IFluidTemplate template, TemplateContext context, TextEncoder encoder) { if (context == null) { ExceptionHelper.ThrowArgumentNullException(nameof(context)); } if (template == null) { ExceptionHelper.ThrowArgumentNullException(nameof(template)); } var sb = StringBuilderPool.GetInstance(); var writer = new StringWriter(sb.Builder); // A template is evaluated in a child scope such that the provided TemplateContext is immutable context.EnterChildScope(); try { await template.RenderAsync(writer, encoder, context); writer.Flush(); return(sb.ToString()); } finally { sb.Dispose(); writer.Dispose(); context.ReleaseScope(); } }
public static async Task <string> RenderAsync(this IFluidTemplate template, TextEncoder encoder, TemplateContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (template == null) { throw new ArgumentNullException(nameof(template)); } using (var sb = StringBuilderPool.GetInstance()) { using (var writer = new StringWriter(sb.Builder)) { await template.RenderAsync(writer, encoder, context); return(writer.ToString()); } } }