У меня есть интерфейс с именем IDeviceId, который я использую в своем домене. У меня также есть несколько конкретных классов, которые реализуют IDeviceId. Каждый конкретный класс содержит логику для определенного типа DeviceId. Например, у меня есть DeviceMacId, который является просто действительным MAC-адресом. Другим конкретным классом является DeviceShortMacId, который принимает последние 6 цифр действительного MAC-адреса и объединяет его с фиксированным 6-символьным префиксом для создания действующего MAC (несколько устаревших приложений используют только последние 6 цифр). У меня есть несколько других классов для выражения идентификатора, но большинство из них являются производными от одних и тех же данных.Как преобразовать один объект в другой?
Я хотел бы иметь возможность легко конвертировать из любого из этих классов в другой. Моя первая мысль заключалась в том, чтобы создать статический класс и сделать что-то вроде DeviceIdConverter.ToDeviceShortMacId (IDeviceId).
Каким образом можно легко принимать данные в одной форме, а затем конвертировать их в другую с возможностью повторяемости (через несколько приложений)?
Мое конечное решение оказалось более сложным (и довольно специфичным для домена), но этот подход лучше всего подходит для меня. Множество хороших вариантов в этой теме помимо этого. – GregB