2011-01-08 6 views
3

Ich wollte die große DotLiquid verwenden und versuchte, Beispiel (von mir selbst geschrieben) ohne großen Erfolg zu folgen.C# DotLiquid Einfaches Beispiel Unit Test funktioniert nicht wie erwartet

internal class AuthorDrop : Drop { 
    private String lname; 

    public String ToGive { get { return lname; } } 


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

mit dem entsprechenden Test

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

Doch dieser leades mit dem Ausgang

hallo

statt hallo-Test 123

Kann mir jemand helfen, herauszufinden, was hier vor sich geht?

Vielen Dank im Voraus,

- Chris

Antwort

10

standardmäßig DotLiquid verwendet für Methoden und Eigenschaften Rubys Namenskonvention. In Ihrem Beispiel wird ToGive als to_give "umbenannt". Wenn Sie es vorziehen, können Sie stattdessen C# Namenskonvention verwenden, indem die statische propery Einstellung DotLiquid.Template.NamingConvention = new DotLiquid.NamingConventions.CSharpNamingConvention();

HTH

+0

Nun Vielen Dank. Das ist einfach episch :) – Trefex

Verwandte Themen