Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 试着将dotluid与c结合使用#_C#_Dotliquid - Fatal编程技术网

C# 试着将dotluid与c结合使用#

C# 试着将dotluid与c结合使用#,c#,dotliquid,C#,Dotliquid,我无法在中执行示例:使用C#。 我有相同的示例,并尝试使用以下代码执行它: var template = DotLiquid.Template.Parse(myTemplate); Message.Body = template.Render(DotLiquid.Hash.FromAnonymousObject(user)); 其中myTemplate与示例中的完全相同: <p>{{ user.name | upcase }} has to do:</p> <ul

我无法在中执行示例:使用C#。 我有相同的示例,并尝试使用以下代码执行它:

var template = DotLiquid.Template.Parse(myTemplate);
Message.Body = template.Render(DotLiquid.Hash.FromAnonymousObject(user));
其中myTemplate与示例中的完全相同:

<p>{{ user.name | upcase }} has to do:</p>
<ul>
{% for item in user.tasks -%}
  <li>{{ item.name }}</li>
{% endfor -%}
</ul>
{{user.name | upcase}}必须执行以下操作:

    {%用于user.tasks-%}
  • {{item.name}
  • {%endfor-%}
但当点击“渲染”时,我收到错误: mscorlib.dll中发生“System.Reflection.TargetParameterCountException”类型的异常,但未在用户代码中处理 内部信息是:参数计数不匹配

我所说的数据类型与示例中的相同:

public class User : DotLiquid.Drop
{
    public string Name { get; set; }
    public List<Task> Tasks { get; set; }
}

public class Task
{
    public string Name { get; set; }
}
公共类用户:dotluide.Drop
{
公共字符串名称{get;set;}
公共列表任务{get;set;}
}
公开课任务
{
公共字符串名称{get;set;}
}
我创建这样的对象:

var user = new User
{
    Name = "Tim Jones",
    Tasks = new List<Task>
    {
        new Task { Name = "Documentation" },
        new Task { Name = "Code comments" }
    }
};
var user=新用户
{
Name=“Tim Jones”,
任务=新列表
{
新任务{Name=“Documentation”},
新任务{Name=“Code comments”}
}
};
我想不出我的代码有什么问题。
非常感谢您的帮助。

您正在使用的
Hash.FromAnonymousObject
需要匿名对象(顾名思义)

因此,请传递一个匿名对象:

template.Render(DotLiquid.Hash.FromAnonymousObject(new
        {
            user = new User
            {
                Name = "Tim Jones",
                Tasks = new List<Task>
                {
                    new Task { Name = "Documentation" },
                    new Task { Name = "Code comments" }
                }
            }
        }));

您正在使用的是
Hash.FromAnonymousObject
,它需要一个匿名对象(顾名思义)

因此,请传递一个匿名对象:

template.Render(DotLiquid.Hash.FromAnonymousObject(new
        {
            user = new User
            {
                Name = "Tim Jones",
                Tasks = new List<Task>
                {
                    new Task { Name = "Documentation" },
                    new Task { Name = "Code comments" }
                }
            }
        }));