Только начал работать с NVelocity (v1.1.1), и, похоже, все работает нормально.
Есть только одна маленькая вещь, которая меня раздражает. Я настроил VS2010 так, чтобы он прерывался каждый раз, когда возникает исключение, даже если оно где-то обрабатывается, и при выполнении следующего кода он всегда прерывается при вызове Evaluate, заявляя, что он «не может прочитать из закрытого TextReader» (ObjectDisposedException ). У меня нет исходного кода для NVelocity, поэтому я не могу отлаживать.
Я где-то пропустил настройку, которая вызывает это? Это просто безобидная ошибка в NVelocity? Результат получается отличный, мне просто кажется, что что-то не так.
var velocity = new VelocityEngine();
var properties = new ExtendedProperties();
var context = new VelocityContext(fieldValues);
properties.AddProperty("velocimacro.library", string.Empty); // no library
velocity.Init(properties);
using (var writer = new StringWriter())
{
velocity.Evaluate(context, writer, null, templateContents);
return writer.ToString();
}
Трассировка стека исключений:
в System.IO.__Error.ReaderClosed() в System.IO.StringReader.Read(Char[] буфер, индекс Int32, счетчик Int32)
в NVelocity.Runtime.Parser.VelocityCharStream.FillBuff() в c:\. ..\src\NVelocity\Runtime\Parser\VelocityCharStream.cs:строка 313