Совместное использование объектов DTO между службами WCF

StackOverflow https://stackoverflow.com/questions/1637218

  •  06-07-2019
  •  | 
  •  

Вопрос

Я чувствую, что это глупый вопрос еще до того, как задавать его, но мой мозг сейчас работает не слишком хорошо. У меня есть две службы 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?

Ура, Крис

Это было полезно?

Решение

Вы можете повторно использовать типы в svcutil:

Другие советы

Статья " Как повторно использовать типы в конечных точках службы " предлагает на стороне клиента вручную обновить файл Reference.svcmap, включив в него несколько объектов и NamespaceMappings.

В качестве альтернативы svcutil позволяет вам указывать несколько конечных точек одновременно и использовать параметры / r (/ reference) и / n (/ namespace).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top