【问题标题】:RazorEngine Razor.Parse(...) throws exception about ServiceStack and Markdown?RazorEngine Razor.Parse(...) 抛出关于 ServiceStack 和 Markdown 的异常?
【发布时间】:2011-12-09 00:13:36
【问题描述】:

我从网站上运行了这个简单的示例,当它调用 Razor.Parse 时出现以下错误。我该如何解决这个问题???

http://razorengine.codeplex.com/

string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });

错误 CS0234:命名空间“ServiceStack”中不存在类型或命名空间名称“Markdown”(您是否缺少程序集引用?)

【问题讨论】:

  • 检查默认命名空间。

标签: c# .net asp.net-mvc-3 email razor


【解决方案1】:

不知道你为什么链接到http://razorengine.codeplex.com

“ServiceStack”错误假定您要在 ServiceStack 中使用 Markdown 引擎,在这种情况下,您应该引用 ServiceStack 附带的 RazorEngine.dll 而不是 razorengine.codeplex.com 中的那个这就是这里所做的。

【讨论】:

  • 我不想使用 Markdown。我做了一个 NuGet 来获取 RazorEngine 包,它引用了 thos dll。我在项目的其他部分使用 ServiceStack 处理其他一些不相关的 JSON 内容。我只是不明白为什么它试图加载它。我认为这是一个反射问题。我认为也许在 app.config 中放置一个程序集依赖部分可能会修复它。但我仍然对其他想法持开放态度
  • 如果你只想使用 JsonSerializer 你应该 NuGet 卸载 ServiceStack 并且只 nuget install ServiceStack.Text 代替。
  • 你不明白我的问题。问题是为什么 RazorEngine 要求 servicestack markdown 的东西?
  • 我怀疑这就是正在发生的事情。听起来您引用了 RazorEngine.dll 的 ServiceStack 版本。你能提供一个列表或显示你的 projs 引用的屏幕截图吗?
【解决方案2】:

我想发生了两件事中的一件。在您的配置文件中,命名空间已添加到 <razorEngine> 配置部分中,或者在某处调用 AddNamespace 方法以在编译模板中包含命名空间导入。

最终结果是命名空间被添加到生成的类文件中,但缺少引用。 RazorEngine 将自动引用 AppDomain 中任何已加载的程序集。

【讨论】:

  • 这让我很头疼,终于发现当我调用 .Parse() 时,我在视图中使用的程序集必须位于应用程序域中。..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 2013-05-24
  • 2016-06-02
  • 1970-01-01
  • 2013-06-24
相关资源
最近更新 更多