2011-01-08 26 views
3

我一直想要使用伟大的DotLiquid,并尝试使用下面的示例(由我自己编写),但没有取得任何重大成功。C#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") }))); 
    } 

然而,这leades到输出喜

代替HI试验123.

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

非常感谢你提前,

- 克里斯

回答

10

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

HTH

+0

好非常感谢使用C#命名约定。这只是史诗:) – Trefex 2011-01-09 09:53:08