C # DotLiquid Простой пример Unit Test не работает должным образом - PullRequest
3 голосов
/ 08 января 2011

Я давно хотел использовать великий 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

вместо hi Test 123.

Может кто-нибудь помочь мне выяснить, что здесь происходит?

Заранее большое спасибо,

- Крис

1 Ответ

10 голосов
/ 08 января 2011

По умолчанию DotLiquid использует соглашение об именах Ruby для методов и свойств.В вашем примере ToGive «переименован» в to_give.Если вы предпочитаете, вы можете вместо этого использовать соглашение об именах C #, задав статические свойства DotLiquid.Template.NamingConvention = new DotLiquid.NamingConventions.CSharpNamingConvention();

HTH

...