Autofac Dependency Resolver

PHOTO EMBED

Tue Jan 28 2025 22:57:21 GMT+0000 (Coordinated Universal Time)

Saved by @digicjm #c#

using Origami.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac;

namespace OrigamiService.Dependency_Injection
{
    public class AutofacDependencyResolver : IResolver
    {
        private readonly IContainer _serviceProvider;

        public ServiceProviderDependencyResolver(IContainer serviceProvider)
        {
            _serviceProvider = serviceProvider;
        }



        public T GetService<T>() => _serviceProvider.Resolve<T>();
        public object GetService(Type serviceType) => _serviceProvider.Resolve(serviceType);

        public T GetRequiredService<T>() => GetScopedServiceProvider().GetRequiredService<T>();
        public object GetRequiredService(Type type) => GetScopedServiceProvider().GetRequiredService(type);

        public IEnumerable<T> GetServices<T>() => _serviceProvider.re;
        public IEnumerable<object> GetServices(Type serviceType) => GetScopedServiceProvider().GetServices(serviceType);

        public IEnumerable<T> GetRequiredServices<T>() => GetScopedServiceProvider().GetServices<T>();
        public IEnumerable<object> GetRequiredServices(Type type) => GetScopedServiceProvider().GetServices(type);



        private IContainer GetScopedServiceProvider()
        {
            var scope = _serviceProvider.
            return scope.ServiceProvider;
        }
    }
}
content_copyCOPY