| name | Transplator |
| nuget | https://www.nuget.org/packages/Transplator/ |
| link | https://github.com/atifaziz/Transplator/ |
| author | Atif Aziz |
The Transplator is a small fast rendering engine to allow you to make rendering from any class instance. The code that you start with is
{%
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Rendering;
static partial class EmployeeRendering
{
public static string Render(params Employee[] employees)
{
var sb = new StringBuilder();
int i= 0;
-%}
Number Employees: {% employees?.Length %}
{%~ foreach (var emp in employees) {
i++;
~%}
{% i %}. {% emp.Name %} it is in {% emp.Department?.Name %}
{%~ } ~%}
{%
return sb.ToString();
void WriteText(string value) => sb.Append(value);
void WriteValue(object value) => sb.Append(value);
}
}
~%}
The code that you will use is
var IT = new Department();
IT.Name = "IT";
var e = new Employee();
e.ID = 10;
e.Name = "Andrei Ignat";
e.Department = IT;
var render = EmployeeRendering.Render(e);
Console.WriteLine(render);
The code that is generated is
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Rendering;
static partial class EmployeeRendering
{
public static string Render(params Employee[] employees)
{
var sb = new StringBuilder();
int i= 0;
WriteText(@"Number Employees: ");
WriteValue(employees?.Length);
WriteText(@"
");
foreach (var emp in employees) {
i++;
WriteText(@" ");
WriteValue(i);
WriteText(@". ");
WriteValue(emp.Name);
WriteText(@" it is in ");
WriteValue(emp.Department?.Name);
WriteText(@"
");
}
return sb.ToString();
void WriteText(string value) => sb.Append(value);
void WriteValue(object value) => sb.Append(value);
}
}
Example Code: https://github.com/ignatandrei/RSCG_Examples/tree/main/TemplateRender
Leave a Reply