PRSettingsProvider
using PRTelegramBot.Interfaces;
using PRTelegramBot.Providers;
using PRTelegramBot.Wrappers;
/// <summary>
/// Провайдер глобальных настроек.
/// </summary>
public class PRSettingsProvider : IPRSettings
{
#region IPRSettings
/// <inheritdoc />
public IPRSerializer Serializator { get; set; } = new JsonSerializerWrapper();
#endregion
#region Поля и свойства
/// <summary>
/// Lazy инициализация глобального экземпляра настроек.
/// </summary>
private static Lazy<IPRSettings> instance = new Lazy<IPRSettings>(() => new PRSettingsProvider());
/// <summary>
/// Глобальный экземпляр настроек.
/// </summary>
public static IPRSettings Instance => instance.Value;
#endregion
#region Методы
/// <summary>
/// Установить новый экземпляр глобальных настроек.
/// </summary>
/// <param name="settings"></param>
public static void SetSettings(IPRSettings settings)
{
instance = new Lazy<IPRSettings>(() => settings);
}
/// <inheritdoc />
public void SetSerializator(IPRSerializer serializator)
{
Serializator = serializator;
}
#endregion
#region Конструкторы
/// <summary>
/// Конструктор.
/// </summary>
private PRSettingsProvider() { }
#endregion
}
Last updated