2009-02-20 11 views
5

Mamy garść szablonów NVelocity w zasobach osadzonych, których używamy do wiadomości e-mail. Chcemy przenieść te szablony do DB, aby mogły być łatwo konfigurowane przez użytkowników.Czy oprogramowanie NVelocity nie obsługuje już szablonów ciągów?

Wygląda jednak na to, że NVelocity (port Castle) nie obsługuje ciągów jako szablonów. Czy ktoś wie, jak to zrobić.

Aby być jasne, to jest to, co chcę zrobić (składnia może być niedokładny, idę przez pamięć) ...

string templateString = "Hello $!user"; 
Template template = new Template(templateString); 
string results = template.Merge(....); 

Odpowiedz

15

Działa to dla mnie:

using System.Collections; 
using System.IO; 
using NUnit.Framework; 
using NVelocity; 
using NVelocity.App; 

[Test] 
public void StringParsing() 
{ 
    var h = new Hashtable { 
     { "foo", "Template" }, 
     { "bar", "is working" }, 
     { "foobar", new[] { "1", "2", "3" } } }; 
    Velocity.Init(); 
    var c = new VelocityContext(h); 
    var s = new StringWriter(); 
    Velocity.Evaluate(c, s, "", 
     "$foo $bar: #foreach ($i in $foobar)$i#end"); 
    Assert.AreEqual("Template is working: 123", s.ToString()); 
} 
+0

brak dobrej dokumentacji NVelocity jest przygnębiające, ponieważ jest tak potężny i użyteczne biblioteki. Za dużo czasu zajęło mi znalezienie odpowiedzi, dlatego oznaczyłem to pytanie jako ulubione, by móc się z nim zapoznać w przyszłości, a następnie głosować na Twoją odpowiedź i pytanie. –

+0

Dziękuję. Uważam jednak, że warto spojrzeć na inne silniki szablonów, ponieważ NVelocity jest bliskie opuszczonemu, dość powolnemu i odrobinę zbyt ograniczonemu. – Bergius

Powiązane problemy