53 lines
1.3 KiB
C#
53 lines
1.3 KiB
C#
using System.Runtime.CompilerServices;
|
|
|
|
namespace Nop.Core.Infrastructure;
|
|
|
|
/// <summary>
|
|
/// Provides access to the singleton instance of the Nop engine.
|
|
/// </summary>
|
|
public partial class EngineContext
|
|
{
|
|
#region Methods
|
|
|
|
/// <summary>
|
|
/// Create a static instance of the Nop engine.
|
|
/// </summary>
|
|
[MethodImpl(MethodImplOptions.Synchronized)]
|
|
public static IEngine Create()
|
|
{
|
|
//create NopEngine as engine
|
|
return Singleton<IEngine>.Instance ?? (Singleton<IEngine>.Instance = new NopEngine());
|
|
}
|
|
|
|
/// <summary>
|
|
/// Sets the static engine instance to the supplied engine. Use this method to supply your own engine implementation.
|
|
/// </summary>
|
|
/// <param name="engine">The engine to use.</param>
|
|
/// <remarks>Only use this method if you know what you're doing.</remarks>
|
|
public static void Replace(IEngine engine)
|
|
{
|
|
Singleton<IEngine>.Instance = engine;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Properties
|
|
|
|
/// <summary>
|
|
/// Gets the singleton Nop engine used to access Nop services.
|
|
/// </summary>
|
|
public static IEngine Current
|
|
{
|
|
get
|
|
{
|
|
if (Singleton<IEngine>.Instance == null)
|
|
{
|
|
Create();
|
|
}
|
|
|
|
return Singleton<IEngine>.Instance;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
} |