#c# #.net #wcf #repository-pattern #service-layer
#c# #.net #wcf #репозиторий-шаблон #service-layer
Вопрос:
У меня есть API (DLL), который имеет различные методы, которые возвращают объекты / коллекции элементов.
Я хотел бы создать веб-сервис, который возвращал бы элементы вызывающему клиенту.
Итак, каков наилучший подход, вызвать каталог моих методов в моем API и преобразовать их в DTO с помощью automapper и вернуть их веб-службе?
Внутренне мой API использует уровень сервиса / репозитория.
Информация, которая возвращается из моего API, не всегда в правильном формате. Поэтому мне пришлось бы внести некоторые коррективы или написать новые методы.
Итак, было бы лучшей идеей иметь мой собственный уровень сервиса / репозитория, который запрашивал бы каталог базы данных для моей службы WCF, а не использовал API.
Или использовать API для большинства элементов, которые я могу, и реализовать собственный Сервис / репозиторий для элементов, которые недоступны из API.
Я не хочу дублировать свою работу, но я действительно не вижу вариантов.
Может быть, сервис / репозиторий должен быть общим для моего WCF и моего API?
Ответ №1:
Кажется, что самый быстрый способ реализовать это, сохраняя при этом удобство обслуживания (скажем, так быстро 3 раза), — это использовать ваш API из вашего сервиса. Итак, методы вашего веб-сервиса будут вызывать ваш API.
Если то, что вы возвращаете вызывающему, является сериализуемыми объектами, а не EntityObjects (предполагая Entity Framework), вам не нужно сопоставлять с DTO. Просто верните объекты, и WCF автоматически вернет DTO.