在WCF服务之间共享DTO对象

时间:2009-10-28 13:24:09

标签: wcf dto

我觉得这是一个愚蠢的问题,甚至在提问之前,但我的大脑现在工作得不好。我有两个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的工具(即添加参考&gt;添加服务参考),那么我得到两个版本的CountryDTO被创建ieFloristService.CountryDTO和CountryService.CountryDTO。

现在我可以想出几种方法来克服这个问题,但是他们看起来并不正确。我想知道对于这种方法的“正确”方法是什么,我能用代理生成工具做些什么来使它共享常见的DTO?

干杯,克里斯

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:0)

文章"How to reuse types across service endpoints"建议客户端手动更新Reference.svcmap以包含多个和NamespaceMappings。

或者,svcutil允许您一次指定多个端点并使用/ r(/ reference)和/ n(/ namespace)参数。