微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

依赖注入 – Asp.Net Core中的属性注入

我正在尝试将asp.net应用程序移植到asp.net核心.我在我的UnitOfWork实现上有属性注入(使用ninject).
[Inject]
public IOrderRepository OrderRepository { get; set; }
[Inject]
public ICustomerRepository CustomerRepository { get; set; }

有没有办法在.net核心上使用DI构建来实现相同的功能?是否可以使用基于约定的绑定?

不,内置的DI / IoC容器在使用和功能方面都有意保持简单,为其他DI容器插件提供了基础.

因此,没有内置支持自动发现,自动注册,装饰器或注入器,或基于约定的注册.据我所知,目前还没有计划将其添加到内置容器中.

您必须使用具有属性注入支持的第三方容器.

请注意,在98%的场景中,属性注入被认为是错误的,因为它隐藏了依赖关系,并且无法保证在创建类时将注入对象.

使用构造函数注入,您可以通过构造函数强制执行此操作并检查null,而不是创建类的实例.使用属性注入这是不可能的,并且在单元测试期间,当它们未在构造函数中定义时,类不需要哪些服务/依赖项,因此很容易错过并获得NullReferenceExceptions.

我发现属性注入的唯一正当理由是将服务注入到由第三方库生成的代理类中,即从您无法控制对象创建的接口创建的WCF代理.

在其他地方避免它.

原文地址:https://www.jb51.cc/netcore/282018.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐