手机版

Net Core在程序中任何地方使用和注入服务的方法

时间:2021-08-29 来源:互联网 编辑:宝哥软件园 浏览:

最近有人问我:如何在startup类之外注入我的服务,这个类是用Startup写的,看起来很乱;如何在程序的其他地方获得我注入的服务?让我们写一篇文章来帮助你学习。

1.如何在Stratup类之外注入服务

首先,如果我们查看启动类的ConfigureServices方法,我们会发现我们所有的服务都是使用IServiceCollection注入的

所以我们还是用这个接口在其他地方注入,不多说,去源码

我们首先定义一个静态类,然后在静态类中编写IServiceCollection的扩展方法,这样我们就可以像在启动时一样在这里注入它。

公共静态类ServiceConfiguration {公共静态IServiceCollection config services(此IServiceCollection服务){ service。AddTransientINavigation,NavigationLogic();服务。AddTransientIUserInfo,UserInfoLogic();退货服务;}}在编写完静态类之后,我们只需要将我们扩展的静态类注入staatup中,就可以使用这个类中注入的服务。

这样,我们就可以将所有服务注入到ServiceConfiguration类中。

第二,如何在程序的任何地方得到我注入的服务。

的默认注入。NET Core使用构造函数。如果我们想在任何地方获得服务,我们需要使用IServiceProvider接口

我们定义一个静态类,然后定义一个IServiceProvider静态属性

公共静态类CZHttpContext { public static IServiceProvider service provider { get;设置;};}然后我们把他注射到starup

使用方法,

var dbContext=CZHttpContext。service provider . GetServiCe(type of(CzDbContext))作为CzDbContext;这样,我们就可以得到上图中注入启动的CZDbContext

摘要

以上是使用服务并将服务注入的方法。Net Core在边肖介绍的程序的任何位置。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:Net Core在程序中任何地方使用和注入服务的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。