|
编程方式配置客户端 如果不借助于配置文件,客户端也可以通过编程方式创建匹配服务终结点的地址与绑定对象,并将它们传递给代理类的构造函数。既然代理的泛型类型参数就是契约,因此不必为构造函数提供契约。为了表示地址,客户端需要实例化EndpointAddress类,定义如下: public class EndpointAddress 例1-20演示了编程方式配置客户端的技术,所示代码的功能与例1-16等价,它们使用的目标服务则为例1-9的定义。 例1-20:编程方式配置客户端 Binding wsBinding = new WSHttpBinding(); 与在配置文件中使用绑定节的方法相似,客户端可以通过编程方式配置绑定属性: WSHttpBinding wsBinding = new WSHttpBinding(); 注意,使用Binding类的具体子类,是为了访问与绑定相关的属性,例如事务流。 编程方式配置与管理方式配置 目前介绍的配置客户端与服务的两种技术各有所长,相辅相成。管理配置方式允许开发者在部署服务之后,修改服务与客户端的主要特性,而不需要重新编译或重新部署。主要缺陷则是不具备类型安全,只有在运行时才能发现配置的错误。 如果配置的决策完全是动态的,那么编程配置方式就体现了它的价值,它可以在运行时基于当前的输入或条件对服务的配置进行处理。如果判断条件是静态的,而且是恒定不变的,就可以采取硬编码方式。例如,如果我们只关注于进程内托管的调用,就可以采取硬编码方式,使用NetNamePipeBinding以及它的配置。不过,大体而言,大多数客户端和服务都会使用配置文件。 |