在 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());
我正在尝试使用 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());