소스 검색

add json dispatcher.

master
yangxiaodong 7 년 전
부모
커밋
dc9250ca04
1개의 변경된 파일37개의 추가작업 그리고 0개의 파일을 삭제
  1. +37
    -0
      src/DotNetCore.CAP/Dashboard/JsonDispatcher.cs

+ 37
- 0
src/DotNetCore.CAP/Dashboard/JsonDispatcher.cs 파일 보기

@@ -0,0 +1,37 @@
using System;
using System.Net;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;

namespace DotNetCore.CAP.Dashboard
{
internal class JsonDispatcher : IDashboardDispatcher
{
private readonly Func<DashboardContext, object> _command;

public JsonDispatcher(Func<DashboardContext, object> command)
{
_command = command;
}

public async Task Dispatch(DashboardContext context)
{
var request = context.Request;
var response = context.Response;

object result = _command(context);
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
Converters = new JsonConverter[] { new StringEnumConverter { CamelCaseText = true } }
};
var serialized = JsonConvert.SerializeObject(result, settings);

context.Response.ContentType = "application/json";
await context.Response.WriteAsync(serialized);
}
}
}

불러오는 중...
취소
저장