【发布时间】:2012-03-15 11:00:31
【问题描述】:
刚刚开始使用 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 行
【问题讨论】:
-
对你的问题不太有答案,但如果你愿意深入研究,它似乎是source code is available。
-
谢谢,我自己一直在寻找源代码,但是您链接到的项目是原始 NVelocity 项目的一个分支。我可以查看分叉版本,看看是否能找到问题的根源。不知道有没有1.1.1版本的源代码?
-
@Jeroen :那不是佳能 NVelocity 存储库。权威存储库位于 github.com/castleproject/MonoRail/tree/master/MR2/NVelocity 。 codeplex 的分支是一个无人维护的分支。
-
@MauricioScheffer 啊,是的,我现在明白了,对于错误信息,我们深表歉意!
标签: c# .net nvelocity textreader