5

我什至在问之前就觉得这是一个愚蠢的问题,但是我的大脑现在运转得不太好。我有两个 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,即 FloristService.CountryDTO 和 CountryService.CountryDTO。

现在我可以想出一些方法来克服这个问题,但似乎没有一个是正确的。我想知道“正确”的方法是什么,我可以用代理生成工具做些什么来让它共享常见的 DTO?

干杯,克里斯

4

2 回答 2

5

您可以在 svcutil 中重用类型:http: //blogs.msdn.com/youssefm/archive/2009/10/09/reusing-types-in-referenced-assemblies-with-svcutil-sr-switch.aspx

于 2009-10-28T13:27:49.297 回答
0

文章“如何跨服务端点重用类型” 建议在客户端手动更新 Reference.svcmap 以包含多个和 NamespaceMappings。

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

于 2011-07-24T11:48:00.663 回答