Совместное использование объектов DTO между службами WCF - PullRequest
5 голосов
/ 28 октября 2009

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

Теперь я могу придумать несколько способов преодолеть это, но некоторые из них кажутся правильными. Я задавался вопросом, каким будет «правильный» подход к этому, есть ли что-нибудь напуганное, что я могу сделать с инструментом генерации прокси, чтобы он разделял общие DTO?

Ура, Крис

Ответы [ 2 ]

5 голосов
/ 28 октября 2009

Вы можете повторно использовать типы в svcutil: http://blogs.msdn.com/youssefm/archive/2009/10/09/reusing-types-in-referenced-assemblies-with-svcutil-s-r-switch.aspx

0 голосов
/ 24 июля 2011

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

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

...