手机版

净核心简单使用手动音量调节内置的Ioc(续)

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

本文基于。网络核心2.0 .上一章《[.Net Core] 简单使用 Mvc 内置的 Ioc》 已经对日常手动音量调节中的国际奥委会的简单用法进行了说明,此外还有一些需要补充的内容。

接下来会围绕着这些疑问进行回答:AOP中过滤器和国际奥委会的结合使用是啥样子的呢?怎样直接获取国际奥委会中的实例对象,而不是以构造函数的方式进行获取呢?

目录

场景一:Ioc结合过滤器过滤器使用场景二:直接获取国际奥委会管理的对象

场景一:Ioc结合过滤器过滤器使用

先编写一个过滤器例外过滤器。cs,继承IExceptionFilter,主要是用于错误时记录日志,使用的命名空间是微软Mvc。过滤器。

使用微软AspNetCore。Mvc。过滤命名空间iocoredemo {公共类异常筛选器: IExceptionFilter {私有只读日志服务_日志服务;公共异常过滤器(LogServiCe LogServiCe){ _ LogServiCe=LogServiCe;} public void one异常(异常上下文上下文)上下文{ _logService .错误(上下文。异常。消息);} }}LogService.cs打印日志的类:

公共类日志服务{公共无效错误(字符串消息){控制台.WriteLine(消息);} }我在控制器演示4控制器。铯内部的索引()方法中显式的让它抛出尚未实现的异常来进行测试:

公共类演示4控制器:控制器{公共IActionResult Index(){抛出新的notimplementdexception();} }接下来,是在核心的Startup.cs中的配置服务()方法内修改代码,小编使用AddSingleton()作为示例方法进行注入:

public void ConfigureServices(IServiceCollection services){ services .AddSingleton(类型为(异常过滤器));//注入异常过滤器服务AddSingleton(类型为(LogServiCe));//注入日志服务服务AddMvc(x={ //创建一个ServiceProvider对象定义变量提供者=服务buildservice provider();定义变量筛选器=提供程序GetServiceExceptionFilter();//添加过滤器十.过滤器.添加(筛选器);});}

启动程序并跳转到路径http://localhost:port端口端口/demo4后,我们发现能够触发异常过滤器:

场景二:直接获取国际奥委会管理的对象

测试用的服务类Demo5Service.cs:

公共类Demo5Service {公共字符串测试(){ 0返回Guid .NewGuid().ToString();}}方法一

我们可以在控制器内通过这个http上下文。RequestSerVices。GetServiCe()的方式获取已经注入国际奥委会内的服务对象,如控制器Demo5Controller.cs:

公共类演示5控制器:控制器{公共IActionResult Index(){ var演示服务=(演示5服务)这.http上下文。RequestSerVices。getServiCe(Demo 5 ServiCe的类型));返回Json(demoService .test());} }不要忘记在Startup.cs中注入服务类:

执行结果:

方法二

通过场景一知道:ServiceProvider类中的GetService()方法可以获取已经注入的国际奥委会对象,这样我们可以考虑从如何获取该对象(服务提供商类对象)着手。

下面,我在Startup.cs类中添加一个静态的ServiceProvider类成员属性,方便可以从外部获取:

公共类启动{公共静态服务提供商服务提供商{ get私有集;} //此方法由运行时调用。使用此方法向容器添加服务public void ConfigureServices(IServiceCollection services){ services .AddMvc();服务addsingletondomo 5 ServiCe();ServiceProvider=服务buildservice provider();} //.}

之后,我们可以采取这样的方式获取国际奥委会中已经注入的对象:

公共类演示5控制器:控制器{公共IActionResult Index(){ var演示服务=(演示5服务)启动.ServiceProvider。GetService(类型为(demo 5 ServiCe));返回Json(demoService .test());} }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:净核心简单使用手动音量调节内置的Ioc(续)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。