You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To render a dynamic object, use the dynamic object as an Anonymous object.
You create anonymous types by using the new operator together with an object initializer.
public string Render(string text, object obj)
{
var template = Template.Parse(text);
var result= template.Render( obj , member => member.Name);
Console.WriteLine("Result: \n {0}",result);
return result;
}
How to use:
var test= "Hi {{d.Name}}";
Console.WriteLine("Template string: {0}",test);
//using dynamic
dynamic d=new {Name="world"};
var result=Render(test, new {d});
//using ExpandoObject
dynamic MyDynamic = new System.Dynamic.ExpandoObject();
MyDynamic.Name = "Jack";
result=Render(test, new {d=MyDynamic});
public static string RenderTemplateByFilename(string filename, dynamic obj)
{
try
{
TemplateHolder t = GetTemplateByFileName(filename + ".html");
var template = Template.Parse(t.TemplateCode);
return template.Render( obj ); <----- Fails.
}
catch (Exception ex)
{
return ex.Message;
}
at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at Scriban.Runtime.ScriptObjectExtensions.Import(IScriptObject script, Object obj, ScriptMemberImportFlags flags, MemberFilterDelegate filter, MemberRenamerDelegate renamer) in C:\projects\scriban\src\Scriban\Runtime\ScriptObjectExtensions.cs:line 267
at Scriban.Runtime.ScriptObjectExtensions.Import(IScriptObject script, Object obj, MemberFilterDelegate filter, MemberRenamerDelegate renamer) in C:\projects\scriban\src\Scriban\Runtime\ScriptObjectExtensions.cs:line 64
at Scriban.Template.Render(Object model, MemberRenamerDelegate memberRenamer, MemberFilterDelegate memberFilter) in C:\projects\scriban\src\Scriban\Template.cs:line 195
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at PresenTVCore.TemplateEngine.Model.TemplateModel.RenderTemplateByFilename(String filename, Object obj)
The text was updated successfully, but these errors were encountered: