C#: конвертирование Enum’ов
Время от времени приходится писать весьма стандартный код, когда есть два Enum'а с абсолютно одинаковым содержимым, но находящиеся в разных неймспейсах.
Подключать лишние зависимости - нельзя (ну, по архитектурным соображениям), поэтому возникает вот такой вот (прямо скажем, не особо остроумный) код:
в namespace1:
public enum InTheRace
{
First,
Second,
Third
}
в namespace2:
public enum OnThePedestal
{
First,
Second,
Third
}
И наконец, есть код "конвертера", который преобразует значения из одного неймспейса в другое: (сам "конвертер" содержится в таком месте, где есть ссылки на оба немспейса)
public static OnThePedestal ToOnThePedestal (InTheRace src)
{
switch (src)
{
case InTheRace.First:
return OnThePedestal.First;
case InTheRace.Second:
return OnThePedestal.Second;
case InTheRace.Third:
return OnThePedestal.Third;
}
}
Что то мне подсказывает, что человечество давно уже изобрело для таких смешных преобразований что то типа автомэппера.
Можно мне подсказать, как это делать "по умному"?
Спасибо!