Общий пользовательский метод для преобразования одного типа объекта в другой в c # - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь реализовать универсальный метод для преобразования одного объекта в другой объект в c #.

Вот код, который я пробовал

 public interface IDTOMapper<TSource, TDestination>
        {
            TDestination Convert(TSource source_object);
        }


    public class DtoMapper<TSource, TDestination> : IDTOMapper<TSource, TDestination>
        {
            public TDestination Convert(TSource source_object)
            {
           // How to write the code to convert one class object to another

            }
        }

Код, который я использовал внутриМетод convert имеет много ошибок. Может кто-нибудь сообщить мне, как реализовать с объектами любого типа класса.В одном примере, который я обнаружил, есть конкретное преобразование объекта класса.

Когда я обнаружил, что в Google есть библиотека автоматического сопоставления I, я не хочу использовать библиотека автоматического сопоставления .Просто хочу написать собственный обобщенный метод

Некоторые из справочников

Лучшие практики для сопоставления одного объекта другому

https://softwareengineering.stackexchange.com/questions/301580/best-practices-regarding-type-mapping-and-extension-methods

Общий метод для отображения объектов различных типов

https://www.codeproject.com/Tips/781202/Csharp-Custom-Mapper

1 Ответ

0 голосов
/ 21 декабря 2018

Вы говорите, что не хотите использовать авто-картограф, но то, что вы пытаетесь написать, это то же самое.Вы просто собираетесь заново изобрести колесо и написать свой собственный авто-картограф.

Я настоятельно рекомендую использовать существующую библиотеку, такую ​​как AutoMapper.Это будет быстрее и будет меньше ошибок.

Если бы не это, я бы сам не пытался автоматизировать эту задачу.Для каждого класса ViewModel добавьте метод CopyFromBusiness и напишите код для копирования вручную.Да, это довольно повторяющееся, но написание вашего собственного авто-картографа будет почти такой же работой, и результат всегда будет хуже, чем в существующей библиотеке.Написанный вручную метод CopyFromBusiness будет самым быстрым вариантом (во время выполнения), и в будущем код будет намного проще поддерживать, потому что не будет никакой скрытой магии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...