.net webapi 全域性設定
阿新 • • 發佈:2021-10-14
using Newtonsoft.Json.Serialization; using Sfq.WebApi.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web.Http.Cors; namespace Sfq.WebApi { public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API 配置和服務 // json格式化時,[Serializable]會導致讀取到私有屬性,此處取消讀取私有屬性 config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver(); // 刪除xml返回格式 GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); // 新增json返回格式(可省略,刪除XML後,預設以json格式返回) GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add( new System.Net.Http.Formatting.QueryStringMapping("datatype", "json", "application/json")); // 開啟Token全域性驗證服務 config.Filters.Add(new AuthorizeAttribute()); // Web API 路由 config.MapHttpAttributeRoutes(); // 日期格式 ReturnDataFormatInJsonSerializersSettings(); // 配置跨域 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); } private static void ReturnDataFormatInJsonSerializersSettings() { var settings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings; settings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local; settings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // long轉string settings.Converters.Add(new Int64ToStringConverter()); } } }
歲月無情催人老,請珍愛生命,遠離程式碼!!!