FileRegionReplace.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace HybridCLR.Generators
  8. {
  9. public class FileRegionReplace
  10. {
  11. private readonly string _tplFile;
  12. private readonly Dictionary<string, string> _regionReplaceContents = new Dictionary<string, string>();
  13. public FileRegionReplace(string tplFile)
  14. {
  15. _tplFile = tplFile;
  16. }
  17. public void Replace(string regionName, string regionContent)
  18. {
  19. _regionReplaceContents.Add(regionName, regionContent);
  20. }
  21. public void Commit(string outputFile)
  22. {
  23. string originContent = File.ReadAllText(_tplFile, Encoding.UTF8);
  24. string resultContent = originContent;
  25. foreach (var c in _regionReplaceContents)
  26. {
  27. resultContent = TemplateUtil.ReplaceRegion(resultContent, c.Key, c.Value);
  28. }
  29. var utf8WithoutBOM = new System.Text.UTF8Encoding(false);
  30. File.WriteAllText(outputFile, resultContent, utf8WithoutBOM);
  31. }
  32. }
  33. }