在 Scrutor 中多次使用 AddClasses

Using AddClasses more than once in Scrutor

我正在尝试使用 Scrutor 来简化 DI 在 asp.net 核心 3.1 应用程序中的注册,如下所示

services.Scan(scan => scan
                .FromAssembliesOf(typeof(IDataAccess),
                    typeof(IService))
                 .AddClasses(classes => classes.InNamespaces("MyNamespace1", 
                 "MyNamespace2",
                 "MyNamespace3"))
                 .AddClasses(classess => classess.AssignableTo<IMyInterface1>())
                .UsingRegistrationStrategy(RegistrationStrategy.Skip)
                .AsImplementedInterfaces()
                .WithTransientLifetime());

不幸的是,第二个 AddClasses() 覆盖了第一个。无论如何,我可以同时使用这两种约定来检测 类?

您可以试试这个代码:

services.Scan(scan => scan
            .FromAssembliesOf(typeof(IDataAccess),
                typeof(IService))
             .AddClasses(classes => classes.InNamespaces("MyNamespace1", 
             "MyNamespace2",
             "MyNamespace3"))
             .AsImplementedInterfaces()
             .WithTransientLifetime()

            .AddClasses(classess => classess.AssignableTo<IMyInterface1>())
            .UsingRegistrationStrategy(RegistrationStrategy.Skip)
            .AsImplementedInterfaces()
            .WithScopedLifetime());