예제 #1
0
 public static async Task <object[]> GetObjects(this HttpListenerContext context, MethodInfo action)
 {
     return((await context.GetQueryData(action))
            .Concat(await context.GetRouteData(action))
            .Concat(await context.GetBodyData(action))
            .ToDictionary
            (
                kvp => kvp.Key,
                kvp => kvp.Key.ParameterType.IsPrimitive
                 ? kvp.Value.ChangeType(kvp.Key.ParameterType)
                 : JsonSerializer.Deserialize(kvp.Value, kvp.Key.ParameterType)
            )
            .OrderBy(kvp => kvp.Key.Position)
            .Select(kvp => kvp.Value)
            .ToArray());
 }