频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

WCF开发指南之客户端开发

来源:华军软件园 作者:朱先忠编译 出处:巧巧读书 2008-03-21 进入讨论组

为了支持进程内宿主,应用程序配置文件应该列出服务和客户端节,见列表8(见本文相应下载源码)。注意,NetNamedPipeBinding被用于进程内调用。

WCF提供一个能够编辑宿主和客户端配置文件的配置文件编辑器SvcConfigEditor.exe(见图7)。在写本文时,SvcConfigEditor只是生成一些不可读的配置文件,因此,在纠正这一问题之前,你应该手工地编辑这个文件。

WCF开发指南之客户端开发(图二)
图7:SvcConfigEditor用于编辑宿主和客户端配置文件

三、创建和使用代理

SvcUtil生成的代理类派生自类ClientBase<T>,定义为:

public class ClientBase<T> : IDisposable
{
 protected ClientBase(string endpointConfigurationName);
 protected ClientBase(Binding binding,EndpointAddress remoteAddress);
 public void Close();
 public void Dispose();
 protected T InnerProxy{get;}
 //其它成员
}

这个InnerProxy属性是客户端需要消费的合同类型,并且SvcUtil生成的ClientBase<T>的子类简单地把它代理到方法调用(见列表5)。客户端需要实例化一个代理对象并且提供给其构造器端点信息-或者是来自配置文件的端点节名(见列表6)或者是在不使用一个配置文件时的端点地址和绑定对象。然后,该客户端可以使用代理方法来调用该服务,并且客户端完成后,它需要关闭该代理实例:

MyContractProxy proxy = new
MyContractProxy("MyEndpoint");
proxy.MyMethod();
proxy.Close();

关闭代理将终止与服务的会话并且关闭连接。作为选择,你可以使用代理的Dispose()方法来关闭它。Dispose()方法的优点在于,你可以使用using语句来调用它,即使在面临异常处理时:

using(MyContractProxy proxy = new MyContractProxy("MyEndpoint"))
{
 proxy.MyMethod();
}

在客户端配置文件中的每个合同类型的一个端点可以被指派为一个默认端点。默认端点是一个没有名字标志或只有一个空名("")的端点节:

<system.serviceModel>
<client>
<endpoint
...
contract="IMyContract"
/>
<endpoint name="OtherEndpoint"
...
contract="IMyContract"
/>
</client>
</system.serviceModel>

一个默认的端点仅仅是一种理想情况;当创建一个针对默认端点的代理时,你可以使用代理的默认构造器来让它使用默认端点:

MyContractProxy proxy = new MyContractProxy();
proxy.MyMethod();
proxy.Close();

四、可编程的客户端配置

不依赖于配置文件,客户端也可以通过编程方式来构建端点并且把它提供给代理构造器。列表9(见本文相应下载源码)展示了这一技术,其中展示了等价于列表6中的代码(针对列表2中的服务)。编程配置是很有用的:当端点决策或者是完全动态的-基于当前输入或在运行时刻使用;或当决策是静态的且从不更改时,你最好采用硬编码之。

五、WCF架构

到目前为止,本文讨论了建立和消费简单WCF服务所有要求的内容。然而,WCF还为可靠性、事务、安全和实例激活等提供了极其宝贵的支持,所有这些都依赖于WCF基于拦截的架构。

让客户端与代理交互意味着,WCF总是介于服务和客户端之间来拦截调用并且执行预调用和调用后处理。当代理把调用堆栈帧串行化为一条消息并且沿着一个通道链发送消息时,该解释即开始。

观看地址: http://www.qqread.com/other-devtool/j402369.html 更多文章 更多内容请看Wlan组网----家庭专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章