rafaelturon/blockchain-investments

View on GitHub
src/Blockchain.Investments.Core/Infrastructure/DependencyResolver.cs

Summary

Maintainability
A
0 mins
Test Coverage
using CQRSlite.Config;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;

namespace Blockchain.Investments.Core.Infrastructure
{
    public class DependencyResolver : IServiceLocator
    {
        private readonly IServiceProvider _serviceProvider;

        public DependencyResolver(IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
        }

        public T GetService<T>()
        {
            return (T)GetService(typeof(T));
        }

        public object GetService(Type serviceType)
        {
            if (serviceType == null)
            {
                return null;
            }
            try
            {
                return _serviceProvider.GetService(serviceType);
            }
            catch
            {
                return null;
            }
        }

        public IEnumerable<object> GetServices(Type serviceType)
        {
            return _serviceProvider.GetServices(serviceType);
        }
    }
}