public async Task <string> ConvertAsync(ConverterType converterType, string input, bool writeGeneratorHeader = true, StringWriter stringWriter = null) { bool dispose = false; if (stringWriter == null) { stringWriter = new StringWriter(); dispose = true; } if (writeGeneratorHeader) { stringWriter.WriteClassStudioHeader(); } await ConverterFactory.Get(converterType).ConvertAsync(input, stringWriter).ConfigureAwait(false); string result = stringWriter.ToString(); if (dispose) { await stringWriter.DisposeAsync(); } return(result); }