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

3

我一直想使用优秀的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。

有谁能帮我弄清楚这里发生了什么吗?
非常感谢您的帮助,
- Chris
1个回答

11

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

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接