//using WIDESEA.Core.Enums; //using WIDESEA.Entity.DomainModels.ResponseEntity; //using WIDESEA.Entity.SystemsModels; //using Microsoft.AspNetCore.Http; //using Newtonsoft.Json; //using System; //using System.IO; //using System.Net; //using System.Text; //using System.Threading.Tasks; //using System.Xml.Serialization; //namespace WIDESEA.Core.Extensions.Middleware //{ // public class ExceptionHandlerMiddleWare // { // private readonly RequestDelegate next; // public ExceptionHandlerMiddleWare(RequestDelegate next) // { // this.next = next; // } // public async Task Invoke(HttpContext context) // { // try // { // await next(context); // } // catch (Exception ex) // { // await HandleExceptionAsync(context, ex); // } // } // private static async Task HandleExceptionAsync(HttpContext context, Exception exception) // { // if (exception == null) return; // await WriteExceptionAsync(context, exception).ConfigureAwait(false); // } // private static async Task WriteExceptionAsync(HttpContext context, Exception exception) // { // Logger.WriteLog(LogEnum.Exception, null, exception.Message + exception.StackTrace, null); // var response = context.Response; // if (exception is UnauthorizedAccessException) // response.StatusCode = (int)HttpStatusCode.Unauthorized; // else if (exception is Exception) // // response.StatusCode = (int)HttpStatusCode.BadRequest; // response.StatusCode = (int)HttpStatusCode.InternalServerError; // response.ContentType = context.Request.Headers["Accept"]; // //if (response.ContentType.ToLower() == "application/xml") // response.ContentType = "application/json"; // ResponseData responseData = new ResponseData(); // responseData.SetResponseValue(ResponseType.ServerError); // string reslutMsg = JsonConvert.SerializeObject(responseData); // await response.WriteAsync(reslutMsg, Encoding.UTF8).ConfigureAwait(false); // } // /// // /// 对象转为Xml // /// // /// // /// // private static string Object2XmlString(object o) // { // StringWriter sw = new StringWriter(); // try // { // XmlSerializer serializer = new XmlSerializer(o.GetType()); // serializer.Serialize(sw, o); // } // catch // { // //Handle Exception Code // } // finally // { // sw.Dispose(); // } // return sw.ToString(); // } // } //}