Esempio n. 1
0
        public object?GetOrCreateService(IServiceProvider services)
        {
            if (_disposed)
            {
                throw new ObjectDisposedException(typeof(Service).FullName);
            }

            if (_value is not null)
            {
                return(_value);
            }

            if (_type != typeof(object))
            {
                services.TryGetService(_type, out object?value);

                if (value is null && !_type.IsAbstract && !_type.IsInterface)
                {
                    value  = _activator.CreateInstance(_type, services);
                    _value = value;
                }

                return(value);
            }

            return(null);
        }