使用轻量依赖注入工具Scrutor

有时候可能并不需要使用像Autofac这样功能这么多的DI框架,可以考虑使用Sructor,很贴近原生DI框架,十分轻量。
举例:
注册所有继承自ITransient,ISingleton,IScoped接口的类。同时按照接口注册和注册自身,或者按照类名称去筛选注册。

services.Scan(scan =>
            {
                //当前程序集
                scan.FromAssemblyOf()
                //筛选Class,任意条件
                .AddClasses(classes => classes.Where(e => e.Name.EndsWith("Service")))
                //按照接口去进行注册
                .AsImplementedInterfaces()
                //注册自身
                .AsSelf()
                //.AsMatchingInterface()
                //注册的生命周期类型
                .WithScopedLifetime()
                .AddClasses(classes => classes.AssignableTo(typeof(ITranscient)))
                .AsImplementedInterfaces()
                .AsSelf()
                .WithTransientLifetime()
                .AddClasses(classes => classes.AssignableTo(typeof(IScope)))
                .AsImplementedInterfaces()
                .AsSelf()
                .WithScopedLifetime()
                .AddClasses(classes => classes.AssignableTo(typeof(ISingleton)))
                .AsImplementedInterfaces()
                .AsSelf()
                .WithSingletonLifetime();
            });

你可能感兴趣的:(使用轻量依赖注入工具Scrutor)