Asp.net core 在Scrutor中多次使用AddClass
我正在尝试使用Scrutor简化asp.net core 3.1应用程序中的DI注册,如下所示Asp.net core 在Scrutor中多次使用AddClass,asp.net-core,scrutor,Asp.net Core,Scrutor,我正在尝试使用Scrutor简化asp.net core 3.1应用程序中的DI注册,如下所示 services.Scan(scan => scan .FromAssembliesOf(typeof(IDataAccess), typeof(IService)) .AddClasses(classes => classes.InNamespaces("MyNamespa
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());
services.Scan(扫描=>Scan
.FromAssembliesOf(类型)(IDataAccess),
类型(副)
.AddClasses(classes=>classes.InNamespaces(“MyNamespace1”),
“MyNamespace2”,
“MyNamespace3”))
.AddClasses(classess=>classess.AssignableTo())
.使用RegistrationStrategy(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());
services.Scan(扫描=>Scan
.FromAssembliesOf(类型)(IDataAccess),
类型(副)
.AddClasses(classes=>classes.InNamespaces(“MyNamespace1”),
“MyNamespace2”,
“MyNamespace3”))
.AsImplementedInterfaces()
.WithTransientLifetime()
.AddClasses(classess=>classess.AssignableTo())
.使用RegistrationStrategy(RegistrationStrategy.Skip)
.AsImplementedInterfaces()
.使用ScopedLifeTime());
是。谢谢我也明白了。谢谢你的意见