在 .NET Core 中结合 UniversalFrame.Core 开发轻量级 WebApi(下篇)

前言

为了方便开发轻量级WebApi服务,作者早在 .NET Framework 4.5 的时候就提供了 UniversalFrame。但是因为.NET Framework Web 需要在iis上搭建,并不能达到轻量级的运行,于是转移战场到了 .NET Core 至此达到了高效轻量。

示例

为了更好的让大家理解,我已经提供了一个 Git 仓库,上面有一份代码,方便大家理解。
项目地址: https://github.com/ni-xue/UniversalFrame

下面是相关代码:

Startup类下面注册。

前面我们使用了两种方式,本别都能实现api的效果。接下来我们来说一下相关支持和服务。

		public void ConfigureServices(IServiceCollection services)
        {
            services.AddAshx(o => o.IsAsync = true)//先添加服务。
            .AddHttpContext();//注册静态方式的HttpContext对象获取。

			//大家看见这个AddHttpContext 就有点懵逼了,不知道他是干嘛的,这里作者接受一下,他等同于
			//services.AddHttpContextAccessor(); 这一句,但是为啥不直接用这一句了? 因为使用
			//AddHttpContext 可以同步内部实现:HttpContextExtension.Current 或 HttpContextExtension.Accessor
			//Current 这个关键字应该很熟些,这就是Framework 下面的 HttpContext.Current 对象。
			//Accessor = 等于 IHttpContextAccessor 该接口。

			services.AddObject(任何变量);// 用于注册类型值,实现服务获取。
        }
		public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
        	var 任何变量 = app.GetService(任何变量);//取值。
		}

在控制器中获取服务

 	public class RiskController : Controller
    {
		var readonly 类型 任何变量;
        public RiskController(类型 任何变量) 
        {
            this.任何变量 = 任何变量;
        }
    }

在 MinApi 或 ApiAshx Api 获取服务

	public class Servers : ApiAshx
    {
        public void Get() //正常实现
        {
        	对象 dx = Context.GetService<对象>();//这是获取服务的一种方式,扩展支持。
			 
			Json(new { msg = "暂无数据。", code = 200 });
        }

        public async Task GetAsync() //异步实现
        {
            await JsonAsync(new { msg = "暂无数据。", code = 200 });
        }
    }
	public class Servers : MinApi
    {
    	//这里的这个对象,只有是api的第一个参数才会生效,否则无效。
        public IApiOut Get(HttpContext Context) 
        {
        	对象 dx = Context.GetService<对象>();//这是获取服务的一种方式,扩展支持。
        	
			return ApiOut.Json(new { msg = "暂无数据。", code = 200 });
        }

        public async Task<IApiOut> GetAsync(HttpContext Context) //一样可以
        {
            return await ApiOut.JsonAsyn(new { msg = "暂无数据。", code = 200 });
        }
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值