МЕ
Size: a a a
МЕ
SP
SP
P🤔
NT
/// <summary>
/// TODO Заложить в этот класс все необходимые для каждого сервисв свойства и методы
/// </summary>
public abstract class ApplicationServiceBase
{
protected ApplicationServiceBase(ILoggerFactory loggerFactory)
{
Logger = loggerFactory?.CreateLogger(GetType().FullName);
}
public IServiceProvider ServiceProvider { get; set; }
protected readonly object ServiceProviderLock = new object();
protected TService LazyGetRequiredService<TService>(ref TService reference)
=> LazyGetRequiredService(typeof(TService), ref reference);
protected TRef LazyGetRequiredService<TRef>(Type serviceType, ref TRef reference)
{
if (reference == null)
{
lock (ServiceProviderLock)
{
if (reference == null)
{
reference = (TRef)ServiceProvider.GetService(serviceType);
}
}
}
return reference;
}
//https://stackify.com/net-core-loggerfactory-use-correctly/
protected ILoggerFactory LoggerFactory => LazyGetRequiredService(ref _loggerFactory);
private ILoggerFactory _loggerFactory;
protected ILogger Logger;
//protected ILogger Logger => _lazyLogger.Value;
//private Lazy<ILogger> _lazyLogger => new Lazy<ILogger>(() => LoggerFactory?.CreateLogger(GetType().FullName) ?? NullLogger.Instance, true);
}
NT
_
J
RS
β🎀
/// <summary>
/// TODO Заложить в этот класс все необходимые для каждого сервисв свойства и методы
/// </summary>
public abstract class ApplicationServiceBase
{
protected ApplicationServiceBase(ILoggerFactory loggerFactory)
{
Logger = loggerFactory?.CreateLogger(GetType().FullName);
}
public IServiceProvider ServiceProvider { get; set; }
protected readonly object ServiceProviderLock = new object();
protected TService LazyGetRequiredService<TService>(ref TService reference)
=> LazyGetRequiredService(typeof(TService), ref reference);
protected TRef LazyGetRequiredService<TRef>(Type serviceType, ref TRef reference)
{
if (reference == null)
{
lock (ServiceProviderLock)
{
if (reference == null)
{
reference = (TRef)ServiceProvider.GetService(serviceType);
}
}
}
return reference;
}
//https://stackify.com/net-core-loggerfactory-use-correctly/
protected ILoggerFactory LoggerFactory => LazyGetRequiredService(ref _loggerFactory);
private ILoggerFactory _loggerFactory;
protected ILogger Logger;
//protected ILogger Logger => _lazyLogger.Value;
//private Lazy<ILogger> _lazyLogger => new Lazy<ILogger>(() => LoggerFactory?.CreateLogger(GetType().FullName) ?? NullLogger.Instance, true);
}
β🎀
J
NT
_
NT
NT
J
P

AI