You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
865 B
29 lines
865 B
using System; |
|
using System.Collections.Generic; |
|
using System.Text; |
|
using System.Text.RegularExpressions; |
|
|
|
namespace ReZero.TextTemplate |
|
{ |
|
public class MemberDirective : IDirective |
|
{ |
|
public string Execute(string input, object data, ITemplateEngine templateEngine) |
|
{ |
|
string pattern = @"\{\{([\s\S]*?)\}\}"; |
|
MatchCollection matches = Regex.Matches(input, pattern); |
|
foreach (Match match in matches) |
|
{ |
|
string expression = match.Groups[1].Value; |
|
string value = Evaluate(expression).ToString(); |
|
input = input.Replace(match.Value, value); |
|
} |
|
return input; |
|
} |
|
|
|
private string Evaluate(string expression) |
|
{ |
|
expression = $"\"+{expression}+@\""; |
|
return expression; |
|
} |
|
} |
|
}
|
|
|