Совместное использование объектов DTO между службами WCF
Вопрос
Я чувствую, что это глупый вопрос еще до того, как задавать его, но мой мозг сейчас работает не слишком хорошо. У меня есть две службы WCF "CountryService" и "FloristService". Р>
Теперь CountryService имеет следующий метод:
IList<CountryDTO> GetAllCountries();
Кроме того, у FloristService есть метод:
bool AddFlorist(FloristDTO florist);
Пока все хорошо, но проблема в том, что FloristDTO ссылается на CountryDTO, т. е.
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string City { get; set; }
public string Postcode { get; set; }
public CountryDTO Country { get; set; }
public string Name { get; set; }
Это нормально, но если я использую утилиту для генерации прокси-сервера службы с Visual Stuidos (т. е. Добавить ссылку > Добавить ссылку на службу), то я получаю две созданные версии CountryDTO: ieFloristService.CountryDTO и CountryService.CountryDTO.
Теперь я могу придумать несколько способов преодолеть это, но некоторые из них кажутся правильными. Я задавался вопросом, что является "правильным" Подход к этому будет такой: можно ли что-нибудь сделать с инструментом генерации прокси, чтобы он использовал общие DTO?
Ура, Крис
Решение
Другие советы
Статья " Как повторно использовать типы в конечных точках службы " предлагает на стороне клиента вручную обновить файл Reference.svcmap, включив в него несколько объектов и NamespaceMappings.
В качестве альтернативы svcutil позволяет вам указывать несколько конечных точек одновременно и использовать параметры / r (/ reference) и / n (/ namespace). Р>