src/NetCore/Autofac/AutofacConfig.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Autofac;
using Autofac.Core;
using Autofac.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Reflection;

namespace YL.NetCore.Autofac
{
    public class AutofacConfig
    {
        private static readonly ContainerBuilder containerBuilder = new ContainerBuilder();

        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="instance"></param>
        /// <param name="lifetime"></param>
        public static void Register<T>(T instance, AutofacLifetime lifetime = AutofacLifetime.SingleInstance) where T : class
        {
            //containerBuilder.Register(r => instance).SingleInstance();
            switch (lifetime)
            {
                case AutofacLifetime.InstancePerDependency:
                    containerBuilder.RegisterInstance(instance).InstancePerDependency();
                    break;

                case AutofacLifetime.InstancePerLifetimeScope:
                    containerBuilder.RegisterInstance(instance).InstancePerLifetimeScope();
                    break;

                case AutofacLifetime.SingleInstance:
                    containerBuilder.RegisterInstance(instance).SingleInstance();
                    break;
            }
        }

        public static void Register<T>(AutofacLifetime lifetime = AutofacLifetime.SingleInstance) where T : class
        {
            switch (lifetime)
            {
                case AutofacLifetime.InstancePerDependency:
                    containerBuilder.RegisterType<T>().InstancePerDependency();
                    break;

                case AutofacLifetime.InstancePerLifetimeScope:
                    containerBuilder.RegisterType<T>().InstancePerLifetimeScope();
                    break;

                case AutofacLifetime.SingleInstance:
                    containerBuilder.RegisterType<T>().SingleInstance();
                    break;
            }
        }

        public static void Register(IModule instance)
        {
            containerBuilder.RegisterModule(instance);
        }
后面还有 65 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。