WCF使用Svcutil.exe生成客户端代理2013-12-10svcutil.exe参数1 /async/async 同时生成同步和异步方法签名。默认设置:只生成同步方法签名。缩写形式:/a2 /tcv:Version35/tcv:Version35 指定应用程序针对 .NET Framework 的哪个版本。有效值为:Version30 和 Version35。默认值为 Version30。缩写形式:/tcvVersion30:如果为使用 .NET Framework 3.0 的客户端生成代码,则使用 /tcv:Version30。Version35:如果为使用 .NET Framework 3.5 的客户端生成代码,则使用 /tcv:Version35。如果将 /tcv:Version35与 /async 开关一起使用,则会同时生成基于事件的异步方法和基于回调/委托的异步方法。3/collectionType:<类型>/collectionType:<类型>从架构中生成代码时,指定要用作集合数据类型的完全限定或程序集限定名称。缩写形式:/ct4/reference:<文件路径>/reference:<文件路径>引用指定程序集中的类型。在生成客户端时,使用此选项来指定可能包含类型的程序集,这些类型表示所导入的元数据。无法使用此开关指定消息协定和 XmlSerializer 类型。如果引用了 DateTimeOffset,则会使用此类型,而不是生成新类型。如果应用程序是使用 .NET Framework 3.5 编写的,则 SvcUtil.exe 会自动引用 DateTimeOffset。缩写形式:/r
5/enableDataBinding/enableDataBinding在所有数据协定类型上实现 INotifyPropertyChanged 接口以启用数据绑定。缩写形式:/edb示例:1生成同步,带事件的异步代码,集合使用System.Collections.ObjectModel.ObservableCollection集合,指定程序集引用
svcutil /a /d:d:/temp http://localhost:1998/Implement/AgriProductService.svc /ser:DataContractSerializer/tcv:Version35 /ct:System.Collections.ObjectModel.ObservableCollection`1 /reference:C:/"ProgramFiles"/"Reference Assemblies"/Microsoft/Framework/.NETFramework/v4.0/WindowsBase.dll
生成同步,带事件的异步代码,集合使用System.Collections.Generic.List集合
svcutil /a /d:d:/temp http://localhost:1998/Implement/AgriProductService.svc /ser:DataContractSerializer/tcv:Version35 /ct:System.Collections.Generic.List`1
生成同步,带事件的异步代码,集合映射为数组
svcutil /a /d:d:/temp http://localhost:1998/Implement/AgriProductService.svc /ser:DataContractSerializer/tcv:Version35
关于svcutil.exe的详细介绍。ServiceModel 元数据实用工具 (Svcutil.exe)如果生成的代理类是要给silverlight用,还需要手动修改一下。因为silverlight不支持同步操作,所有需要删除代理类中的同步操作的代码,只保留异步的代码,还有就是需要添加下面的代码,用于open和close客户端的代码。