0

我正在尝试在客户端和 WCF 服务之间共享来自我的数据层程序集的 DTO。这在使用 svcutil 时有效,但在使用 VS2008 时不起作用。VS2008 生成它自己的 DTO 对象,而 svcutil 使用共享数据类型。

我使用的 svcutil 参数是:

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil" 
          /serializer:DataContractSerializer
          /language:vb 
          /out:ServiceClient.cs
          /namespace:*,CommonWCF 
          /noconfig
          /reference:"D:\trunk\DataLayer\bin\Debug\DataLayer.dll"
          /collectionType:System.Collections.Generic.List`1
          http://localhost:3371/Common.svc

我读到 VS2008 只是在幕后调用 svcutil,那么为什么它不起作用呢?我真的想避免在构建过程中添加手动过程。

4

3 回答 3

4

只需使用ClientFactory<T>.

您实际上不需要 svcutil 或服务参考。他们生成的代码只是 ClientFactory 的一个臃肿的包装器,几乎没有添加任何功能。

于 2008-12-29T15:52:45.743 回答
0

如果您避免使用服务引用,而只包含对 svcutil 生成的代码的引用,那么这应该可以避免这个问题。我们的 DTO 在共享程序集中。

于 2008-11-14T05:21:15.947 回答
0

我创建了一个调用 svcutil 的批处理文件并将其添加为预构建任务,以避免这是手动操作。这解决了我的问题,但我仍然不确定为什么 svcutil 和 vs2008 gui 方法之间存在不同的行为。

于 2008-11-15T10:04:49.603 回答