Просто начав работу с NVelocity (v1.1.1), и, похоже, он работает нормально.NVelocity: «Невозможно прочитать из закрытого TextReader»
Есть только одна маленькая вещь, которая меня раздражает. Я настроил 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 Count)
в NVelocity.Runtime.Parser.VelocityCharStream.FillBuff() в C: \ ... \ SRC \ NVelocity \ время выполнения \ Parser \ VelocityCharStream.cs: строка 313
У вас нет ответа на ваш вопрос, но если вы хотите погрузиться в него, кажется, [исходный код доступен] (http://nvelocity.codeplex.com/). – Jeroen
Спасибо, я искал исходный код сам, однако проект, с которым вы связываетесь, является вилкой оригинального проекта NVelocity. Я * мог * проверить версию, чтобы увидеть, могу ли я найти источник проблемы. Вы знаете, доступен ли исходный код версии 1.1.1? – bernhof
@Jeroen: это не репозиторий NVelocity. Авторитетный репозиторий находится по адресу https://github.com/castleproject/MonoRail/tree/master/MR2/NVelocity. Тот, который находится в кодеплексе, является незакрепленной вилкой. –