星空网 > 软件开发 > ASP.net

ASP.NET Web API 中的返回数据格式以及依赖注入

 

本篇涉及ASP.NET Web API中的返回数据合适和依赖注入。

获取数据

 

public IEnumerable<Food> Get(){  var results = reop.GetAllFoods()    .OrderBy(f => f.Description)    .Take(25)    .ToList();  return results;}

 

默认情况下,ASP.NET API控制器方法返回json数据格式。在请求的时候可以要求其它的格式,比如:

User-Agent:Fiddler
Host:localhost:8000
Accept:text/
请求数据也可以要求多个格式,比如:

User-Agent:Fiddler
Host:localhost:8000
Accept:text/
此时,服务端首先查看客户端所能接受的类型数组,然后与服务端能接受的类型数组匹配,而服务端优先默认返回json,所以,以上请求返回json数据。返回的json数据类似如下:

Description:'dddd'

也就是首字母大写。如何让首字母变成小写呢?

当然可以通过让视图模型的属性名第一个字母小写而实现。不过,还可以自定义Formatter。

自定义返回数据的格式

在WebApiConfig.cs文件中。

 

using Newtonsoft.Json.Serialization;public static class WebApiConfig{  public static void Register(HttpConfiguration config)  {    config.Routes.MapHttpRoute(      name: "DefaultApi",      routeTemplate: "api/{controller}/{id}",      defaults: new {id = RouteParameter.Optional}    );        var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().FirstOrDefault();    jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();  }}

 

此时, 返回的数据格式大致是:

description:'dddd'

依赖注入 Dependency Injection

比如在controller中,我们希望通过构造函数注入repoitory接口。

 

public class FoodsController : ApiController{  IFoodRepository _reop;    public FoodsController(IFoodRepository reop)  {    _repo = repo;  }}

 

此时运行会报错:System.InvalidOperaitonException

如何让API支持这种通过构造函数的依赖注入呢?

安装Ninject.MVC3

安装后,会在App_Data文件中多了一个NinjectWebCommon类。在其RegisterServices中可以注册依赖。

 

private static void RegisterServices(IKernel kernel){  kernel.Bind<IFoodRepository>().To<FoodRepository>();}

 

在这里,我们告诉IOC Container, 当有请求过来要求IReposiotory的时候,就返回Repository实例。

最后,我们需要告诉API Ninject的存在。


NinjectWebCommon类的CreateKernel方法中。

安装WebApiContrib.IoC.Ninject

 

using WebApiContrib.IoC.Ninject;...private static IKernel Createkernel(){  var kernel = new StandardKernel();    //支持API  GlobalConfiguraiton.Configuration.DependencyResolver = new NinjectResolver(kernel);}

 




原标题:ASP.NET Web API 中的返回数据格式以及依赖注入

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

外贸爱分享:https://www.goluckyvip.com/tag/10916.html
成本核算:https://www.goluckyvip.com/tag/10917.html
国外节日:https://www.goluckyvip.com/tag/10918.html
字节跳动:https://www.goluckyvip.com/tag/10919.html
天猫淘宝海外:https://www.goluckyvip.com/tag/1092.html
黑色:https://www.goluckyvip.com/tag/10920.html
Temu引发家庭矛盾?年轻一代为何对低价商品集体摇头:https://www.xlkjsw.com/news/94308.html
如何通过 9 个步骤建立商业信用:https://www.kjdsnews.com/a/1842262.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流