Просто начинаем работать с 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