NVelocity:“;无法从关闭的TextReader中读取“”;

本文关键字:TextReader 读取 NVelocity | 更新日期: 2023-09-27 18:27:48

刚刚开始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:line 313

NVelocity:“;无法从关闭的TextReader中读取“”;

这是第一次出现的异常。您可以在源代码中看到,此异常随后在NVelocity代码中被捕获。