2008-11-13 32 views
0

我想从客户端和WCF服务之间的数据层组件中共享DTO's。这使用svcutil,但在使用VS2008时不起作用。 VS2008生成它自己的DTO对象,而svcutil使用共享数据类型。使用VS 2008在WCF中共享类型不起作用

我使用的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工具在幕后,所以为什么不工作?我真的想避免在构建过程中添加手动过程。

回答

0

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

0

如果您避免使用服务引用,并且仅包含对svcutil生成的代码的引用,则应该避免此问题。我们的DTO在共享组件中。

4

只需使用ClientFactory<T>

你不需要svcutil也不需要服务引用。它们生成的代码只是ClientFactory的一个臃肿的包装,几乎没有添加任何功能。

+0

这是一个巨大的帮助,它使我在正确的方向处理一个问题,导致我们的问题几天!谢谢! – 2009-12-09 16:02:25