Зачем надо:
Как минимум для простановки where TEnum:Enum (
по запросу _NN_Автор: _NN_
Дата: 18.05.16
) —
https://github.com/Fody/ExtraConstraints
Как работает: включаем nuget-пакет, размечаем атрибутами код для обновления. Всё.
При компиляции fody уберёт и атрибуты, и ссылки на библиотеки реврайтеров.
Appveyor работает из коробки, пруф —
https://ci.appveyor.com/project/ig-sinicyn/codedrafts/build/artifacts
было:
public static TEnum TestEnum<[EnumConstraint] TEnum>(TEnum value)
where TEnum : struct, IComparable, IFormattable, IConvertible
{
return value;
}
стало:
public static class EnumHelper
{
public static TEnum TestEnum<TEnum>(TEnum value) where TEnum : struct, Enum
{
return value;
}
}
Ещё полезняшки (из того, что пригождалось):
https://github.com/Fody/AssertMessage
https://bitbucket.org/skwasiborski/mixins.fody/wiki/Home
https://github.com/distantcam/ConfigureAwait
https://github.com/Fody/JetBrainsAnnotations
https://github.com/Fody/Stamp
+ у меня давно был план генерить перегрузки для params, но это в совсем отдалённых планах.