ну в целом так - слишком много хэндлеров, сложности со спецификой Enum в некоторых кейсах, атрибуты переименования и игнорирования, проблемы с приведением измененных типов. Можно было сделать через TypHandler, но появилось бы много неочевидной магии и сложнее.
ну в целом так - слишком много хэндлеров, сложности со спецификой Enum в некоторых кейсах, атрибуты переименования и игнорирования, проблемы с приведением измененных типов. Можно было сделать через TypHandler, но появилось бы много неочевидной магии и сложнее.
Часть статьи описывает причину.
В Dapper
var rows = await dbTransaction.QueryAsync(query, commandTimeout: context.CommandTimeout)
rows будут IEnumerable<dynamic> с именованием свойств 1:1 как вернула БД.
вот эти динамические объекты и маппятся на strong type.
Грубое сравнение рефлексии с Dynamitey тут: UsageReallyLateBinding · ekonbenefits/dynamitey Wiki · GitHub
в самом конце есть табличка сравнивающая CacheableInvocation с рефлексией, к тому же это просто менее громоздко синтаксически.