Skip to content

TemplateEngine

mbsoftlab edited this page Jan 1, 2021 · 2 revisions

Examples for using TemplateEngine implementation

Load the template and fill with data from modell

// Create a modell class for data
 TemplateDataModel templateDataModel = new TemplateDataModel
 {
     ProjectName = "Projektname"
 };

***

string template = "<MyTag>${ProjectName}</MyTag>";

TemplateEngine templateEngine = new TemplateEngine(templateDataModel,template);
string outputString = templateEngine.CreateStringFromTemplate();

Console.Write(outputString); // Output: <MyTag>ProjectName</MyTag> 

Load template from file

    TemplateDataModel templateDataModel = new TemplateDataModel
    {
      ProjectName = "Projektname",
      CustomerId = "1234",
      ProjectUrl = "https://google.com"
    };

     TemplateEngine templateEngine = new TemplateEngine(templateDataModel);
     templateEngine.LoadTemplateFromFile("Html.template.html");
     string outputString = templateEngine.CreateStringFromTemplate();

     Console.WriteLine(outputString);

Template and model over PropertyInjection

 TemplateDataModel templateDataModel = new TemplateDataModel
 {
     ProjectName = "Projectname",
     CustomerId = "1234",
     ProjectUrl = "https://google.com"
 };

 string template = "<p>${ProjectName}</p>";
 TemplateEngine templateEngine = new TemplateEngine();
 templateEngine.TemplateDataModel = templateDataModel;
 templateEngine.TemplateString = template;
 Console.WriteLine(templateEngine.CreateStringFromTemplate());

Template and model over DependencyInjection

  TemplateDataModel templateDataModel = new TemplateDataModel
  {
      ProjectName = "Projectname",
      CustomerId = "1234",
      ProjectUrl = "https://google.com"
  };

  string template = "<p>${ProjectName}</p>";
  TemplateEngine templateEngine = new TemplateEngine(templateDataModel,template);
  Console.WriteLine(templateEngine.CreateStringFromTemplate());

TemplateEngine with PropertyInjection and generic type

 TemplateDataModel templateDataModel = new TemplateDataModel
 {
     ProjectName = "Projectname",
     CustomerId = null,
     ProjectUrl = "https://google.de"
 };

 string template = "<p>{{ProjectName}}</p><p>{{CustomerId}}</p>";
 TemplateEngine<TemplateDataModel> templateEngine = new TemplateEngine<TemplateDataModel>()
 {
     TemplateDataModel = templateDataModel,
     TemplateString = template,
     OpeningDelimiter = "{{",
     CloseingDelimiter = "}}",
     NullStringValue = "???"
 };
 Console.WriteLine(templateEngine.CreateStringFromTemplate());

Datatype compatibility

  • ✔ String
  • ✔ Byte
  • ✔ Short
  • ✔ UShort
  • ✔ Long
  • ✔ ULong
  • ✔ SByte
  • ✔ Char
  • ✔ UInt16
  • ✔ Int32
  • ✔ UInt64
  • ✔ Int16
  • ✔ Int32
  • ✔ Int64
  • ✔ Decimal
  • ✔ Double
  • ✔ DateTime
  • ✔ Boolean
  • ❌ Object
  • ❌ CustomClasses
  • ❌ IList, List, Dictionary, IEnumerable, etc..