【发布时间】:2015-02-06 08:31:26
【问题描述】:
背景 在提出我的实际问题之前,我将在这里提供背景:
我正在使用 C# 编写一个 ASP.NET MVC 4 项目。我目前忙于开发的任务是在这个 Web 应用程序中实现 RazorMachine (https://github.com/jlamfers/RazorMachine),以便在我的应用程序层(而不是纯粹在 MVC Web 层)中利用 Razor 引擎。我已经在一系列测试装置中成功实现了 RazorMachine,一切都运行良好。现在,我需要在我的应用层内将它实现到我的应用架构中。
在关于 RazorMachine (http://www.codeproject.com/Articles/423141/Razor-2-0-template-engine-supporting-layouts) 的 CodeProject 文章中,Jaap Lamfers 指出“请注意,通常出于性能原因,在任何应用程序中,您都会创建 RazorMachine 的单例实例(因为内部实例绑定 JIT 创建的类型缓存)” .
一个非常基本的代码示例如下:
RazorMachine rm = new RazorMachine();
ITemplate template = rm.ExecuteContent("Razor says: Hello @Model.FirstName @Model.LastName",
new {FirstName="John", LastName="Smith"});
Console.WriteLine(template.Result);
您可以在 CodeProject 网站上查看更多代码示例。
以此为背景,我的问题如下:
向我的 MVC 应用程序提供 RazorMachine 对象的单个实例的最佳方式是什么?
让我声明我知道单例模式和工厂模式及其可能的实现。但是,使用 Singleton 似乎并不合适,因为我不是从头开始编写课程,课程已经存在。工厂似乎也不完全合适,但我想听听别人怎么说。
我们将不胜感激。
【问题讨论】:
标签: c# asp.net-mvc razor singleton factory