2011-01-08 61 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