asp.net-core - 在 Scrutor 中多次使用 AddClasses
问题描述
我正在尝试使用 Scrutor 来简化 asp.net core 3.1 应用程序中的 DI 注册,如下所示
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());
推荐阅读
- json - Invoke-WebRequest 返回十进制而不是 Json
- python - 如何获取列表中重复字母的次数
- wordpress - 添加 acf 新字段导致我的现有函数出错
- 3d - 在 obj 文件中更改面部表情?
- php - 在 s[np]printf 调用 Laravel 8 中指定了非法长度修饰符“f”
- nginx - 使用 Cloudflare 和 Nginx 的多区域/多语言网站
- javascript - 实现 Javascript 图像调整大小
- css - 网格放置问题:网格容器中的网格项目不会让步
- c# - 在本地化表单之间共享附属程序集
- amazon-web-services - dynamodb batchwriteitems api错误`在不期望的地方找到结构或地图的开始`