背景 我去冒充我的实际问题之前,这里提供的背景:MVC4 C#项目:在应用程序提供一个对象的单个实例
我在一个ASP.NET MVC 4项目合作在C#中。我目前忙于开发的任务是在此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上的文章,夏侯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上网站查看更多代码示例。
以此为背景,我的问题如下:
什么是提供RazorMachine对象的单个实例,以我的MVC应用程序的最佳方式?
让我声明我意识到Singleton和Factory模式及其可能的实现。然而,使用辛格尔顿似乎并不正确,因为我不是从头开始编写这个类,这个类已经存在。工厂似乎也不完全合适,但我想听听其他人说什么。
所有的输入将不胜感激。
感谢@halcharger。这是非常容易和快速实施。我想时间会告诉它是否表现良好。 – Ozzy 2015-02-06 10:11:57