Начало основного контента

Веселье с type erasure + раскладываем данные из абстрактной структуры в параметры функции

День 4

RU

Иногда хочется магии, которая бы вызывала обработчик и раскладывала поля запроса в параметры функции за тебя, например:

{
  "request": "baz",
  "count": 1,
  "id": "two",
  "payload": { "three": 3 }
}

public class Program
{
  public static void foo()
  { }
  public static void bar([Name("count")] int i)
  { }
  public static void baz([Name("count")] int i,
                         [Name("id")] string s,
                         [Name("payload")] JsonElement p)
  { }
} 

Еще сильнее этого хочется, когда обработчиков со множеством параметров становится много.

В этом докладе мы сконцентрируемся на type erasure, чтобы создать удобный и дружелюбный для разработчика способ организации обработчиков запросов.
Разберем несколько подходов, их профит, как их можно улучшить и что ещё с этим можно сделать. Предупреждение: будет много кода.

Спикеры