namespace MbSoftLab.TemplateEngine.Core
{
public class TemplateEngine : TemplateEngine<object>{}
public class TemplateEngine<T>{...}
}
The TemplateEngine replaces values from properties of C# classes in template strings. The C# class with the data holding properties is called the TemplateDataModel class. The string with the placeholders is called a string template or template string.
You can bind the value from your C-property to your string template by using ${YourPropertyName}
.
You can set a custom delimiters. Use the OpeningDelimiter
and CloseingDelimiter
properties to handle this.
Also you can access parameterless public methods of TemplateDataModell classes by using ${MethodName()}
in your template.
The default is ${
for the start delimiter and }
for the end delimiter.
Person person = new Person
{
FirstName = "Jo",
LastName="Doe"
};
string template = "<MyTag>${FirstName}, ${LastName}</MyTag>";
TemplateEngine templateEngine = new TemplateEngine(person,template);
string outputString = templateEngine.CreateStringFromTemplate();
Console.Write(outputString); // Output: <MyTag>Jo, Doe</MyTag>
NuGet Package: https://www.nuget.org/packages/MbSoftLab.TemplateEngine.Core/
PM> Install-Package MbSoftLab.TemplateEngine.Core
Methodname | Description |
---|---|
string CreateStringFromTemplate([string template]) |
Creates a String from Datamodell and Template |
void LoadTemplateFromFile(string filename) |
Loads a Stringtemplate from file. |
TemplateEngine() |
Constructor |
TemplateEngine(object templateDataModel, string stringTemplate) |
Constructor |
TemplateEngine(object templateDataModel) |
Constructor |
TemplateEngine<T>() |
Constructor |
TemplateEngine<T>(T templateDataModel, string stringTemplate) |
Constructor |
TemplateEngine<T>(T templateDataModel) |
Constructor |
Propertyname | Datatype | Description |
---|---|---|
OpeningDelimiter |
String | Set the beginning delimiter for propertyreplacement |
CloseingDelimiter |
String | Set the ending delimiter for propertyreplacement |
TemplateDataModel |
Generic / object | Modell with Properys for Dataholding |
TemplateString |
string | Templatestring |
NullStringValue |
string | String for NULL-Values |
CultureInfo |
CultureInfo | Culture for Double and DateTime values |
// 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>
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);
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());
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());
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());
- ✔ 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..