Заменить значения словаря в движке шаблонов Scriban - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь использовать механизм шаблонов Scriban для замены значений словаря. Например,

string bodyText = "Hi,
           The following service(s) has reported issues.
           {{emailContent}}
        Thanks " ;
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>()
{
   {"emailContent",  "UserManagement has following unhealthy subservice(s)"}
};
 

 var template1 = Template.Parse(bodyText);
  var result1 = template1.Render(new { emailContent = keyValuePairs[emailContent] });
  Console.WriteLine(result1.ToString());

Но я получаю сообщение об ошибке в строке Render. В основном хочу заменить это emailContent на Dictionary. ценности. Я знаю, что делаю некоторые ошибки на линии рендеринга. Может ли кто-нибудь указать на мою ошибку или дать какое-то решение. Спасибо

1 Ответ

0 голосов
/ 14 июля 2020

В коде есть несколько ошибок. Я не уверен, пытаетесь ли вы также иметь список подуслуг, как показано в тексте. Если это так, см. Эту ссылку: { ссылка }.

var bodyText = @"Hi,
The following service(s) has reported issues:{{ for service in services }}
    ""{{ service.key }}"": ""{{service.value}}""{{end}}
Thanks ";
var keyValuePairs = new Dictionary<string, string>()
{
    {"UserManagement",  "UserManagement has following unhealthy subservice(s)"},
    {"DNS",  "Network has following unhealthy subservice(s)"}
};


var template1 = Template.Parse(bodyText);
var result1 = template1.Render(new { services = keyValuePairs });
Console.WriteLine(result1.ToString());

Это приведет к следующему:

Hi,
The following service(s) has reported issues:
    "UserManagement": "UserManagement has following unhealthy subservice(s)"
    "DNS": "Network has following unhealthy subservice(s)"
Thanks 
...