zoukankan      html  css  js  c++  java
  • 关于WCF客户端之ABC全配置的思考

    前言

        WCF客户端的ABC中间Address和Binding可以动态配置似乎已经不是什么新鲜事情了,WCF的配置就非常清晰的描述了如何动态配置A和B,但是Contract哪?

    Contract包含哪些内容

        在一个常规WCF下的Contract有下列部分组成:

    • ServiceContract
    • OperationContract
    • DataContract/MessageContract

    如何获得契约

        常规的情况下,有下面几种方式获得契约:

    • 通过VS中的Add ServiceReference
    • 通过SvcUtil.exe创建cs文件
    • 直接引用契约的程序集
    • 动态根据wsdl生成契约类型

        不难发现所有这些方式都需要契约类型。

    思考

        想想类型为我们带来了什么?

    • 优点:把对象和通讯用的Xml隔离
    • 缺点:类型不能方便动态配置

        如果需要高度动态配置契约的WCF客户端,契约的类型化只会会我们带来不必要的麻烦。

    WCF——幻想曲

        WCF在传输层本质上传的就是各种形式的Xml(排除那些比较特殊的Binding),当然这个Xml可以是文本编码的常规形式,也可以是Mtom形式,甚至是.net专有的二进制形式。

        那么为什么不用Xml本身作为WCF的契约形式?

        在这里,我先提出一个XCF的假想概念,用于描述一个基于Xml定义的契约WCF客户端。并且不同于动态生成契约类型,本质上不需要生成任何类型,而仅仅依赖固定的类库和Xml定义。

        当然,目前仅仅出于假说阶段,也许基于当前的WCF很难实现,抑或很容易实现,只是没人想到。

    后记

        为何限定为WCF客户端?

        很简单,如果是服务端,在不知道契约的情况下实现契约似乎有点不太可能,或者说,能这样实现的服务端也没多大的意义。

  • 相关阅读:
    Linux服务器安装JDK运行环境教程
    Oracle数据库通过DBLINK实现远程访问
    Java中的Number和Math类简单介绍
    使用Netty3或Netty4发布Http协议服务
    同步(Synchronous)和异步(Asynchronous)的概念
    通过注解实现Spring 声明式事务管理
    Spring事务管理入门与进阶
    vmware虚拟机安装CentOS教程
    记录自己的一次pjax性能优化
    让你的网页"抖起来"?!?
  • 原文地址:https://www.cnblogs.com/vwxyzh/p/1789591.html
Copyright © 2011-2022 走看看