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") }))); 
    }

但是,这会导致输出

你好

而不是你好测试123。

谁能帮我弄清楚这里发生了什么?

非常感谢你,

- 克里斯

4

1 回答 1

11

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

高温高压

于 2011-01-08T14:57:51.633 回答