看着
似乎创建WCF客户端的最佳做法是创建代理(非自动生成).
我一直在网上看了一段时间,我没有找到任何完整的例子(代理类,web.config)
你能提供资源的例子或链接吗?
Tad*_*ghe 19
我相信这篇文章正是你要问的问题:
但是,分享完成后,手动创建代理可能并不总是最好的利用时间.这篇文章介绍了这样做的一些很好的理由 - 你肯定会有更多的控制权,你的客户可能会有更轻松的时间等等.但总的来说,像这样手动操作需要更多的时间,并向用户解释服务到底如何使用您提供的代理可能会很痛苦.
WCF允许元数据交换和发现是有原因的,VS会自动为您创建代理.
无论哪种方式,它都是一篇很酷的文章和值得学习的技巧.
Igb*_*man 11
我就是这样做的.
获得服务合同和数据合同
如果我有权访问服务代码,我就拥有所有合同.如果没有,我可以使用svcutil或Add Service Reference来生成它们.
制作配置
我使用Add Service Reference来获取app.config文件.然后我删除它生成的所有其他内容.根据需要编辑app.config.
定义工厂
说我有服务合同IFooService:
interface IFooServiceChannel : IFooService, IClientChannel { }
Run Code Online (Sandbox Code Playgroud)
这就是字面意思.没有会员.
创建工厂
fooServiceFactory = new ChannelFactory<IFooServiceChannel>(
"NetTcpBinding_IFooService");
Run Code Online (Sandbox Code Playgroud)
字符串"NetTcpBinding_IFooService"是app.config中元素的name属性binding.
创建频道
fooService = fooServiceFactory.CreateChannel();
Run Code Online (Sandbox Code Playgroud)
用它
fooService.DoSomething();
Run Code Online (Sandbox Code Playgroud)
最棘手的部分是让app.config正确.您需要了解绑定和端点.这有点学习曲线,但没什么大不了的.
以下是基本步骤.
真的很简单.没有自动生成的代码,没有服务引用.使用异步调用和Silverlight会有点复杂,但不会太多.
| 归档时间: |
|
| 查看次数: |
33327 次 |
| 最近记录: |