C#DotLiquid简单示例单元测试未按预期工作

时间:2011-01-08 12:27:16

标签: c# .net-4.0 template-engine liquid

我一直想要使用伟大的DotLiquid并尝试遵循示例(由我自己编写)而没有取得任何重大成功。

internal class AuthorDrop : Drop {
    private String lname;

    public String ToGive { get { return lname; } }


    public AuthorDrop(String t) {
        lname = t;
    }
}

与相应的测试

[Test]
    public void TestFirstStep() {
       Template tpl = Template.Parse("hi {{ author2.togive }}");  
       Console.WriteLine(tpl.Render(Hash.FromAnonymousObject(new { author2 = new AuthorDrop("Test 123") }))); 
    }

然而,这涉及到输出

  

而不是hi test 123。

任何人都可以帮我弄清楚这里发生了什么吗?

提前非常感谢,

- 克里斯

1 个答案:

答案 0 :(得分:10)

默认情况下,DotLiquid使用Ruby的方法和属性命名约定。在您的示例中,ToGive被“重命名”为to_give。 如果您愿意,可以通过设置静态属性DotLiquid.Template.NamingConvention = new DotLiquid.NamingConventions.CSharpNamingConvention();

来使用C#命名约定

HTH