using Mogafa.Common.Ioc; using Mogafa.Common.Logging; using Mogafa.Common.Storages; using UnityEngine; using ILogger = Mogafa.Common.Logging.ILogger; namespace Mogafa.Unity.Common { public abstract class MogafaMonoBehaviourBase : MonoBehaviour { private ILocalStorage localStorage; protected ILocalStorage LocalStorage { get { if (localStorage != null) { return localStorage; } if(!IocContainer.TryResolve(out localStorage)) { return EmptyLocalStorage.Instance; } return localStorage; } } private ILogger logger; public ILogger Logger { get { if (logger != null) { return logger; } if(!IocContainer.TryResolve(out logger)) { return EmptyLogger.Instance; } if (logger is LoggerAbstract) { (logger as LoggerAbstract).Tag = this.GetType().Name; } return logger; } } } }