• wcf几种调用方式的性能讨论


    最近一直在研究WCF ,所以在这里和大家讨论一些小想法,

    一、之前做过几个项目 WPF和Silverlight的 都用到了WCF做服务支持,感觉WCF不错,但是框架都不是我写的,所以最近一直在看这方面的资料,个人比较爱好web项目,之前一直用的是三层架构,所以有一个想法是用web项目+WCF+EF4 实现B/S结构的搭建 ,在网上看这么用的人特别少,不知道是为什么,大家说说看法??

    二、在网上看了很多WCF调用的例子,所以我也写了一个

    服务接口如下:

    namespace FIS.Contracts
    {
    [ServiceContract]
    public interface ICalculator
    {
    [OperationContract]
    string Add(double x, double y);
    }
    }

    我在客户端调用的时候专门做了一层代理

    namespace Client.Proxy
    {
    public class ProxyCalculatorClient : BaseClientProxy<ICalculator>, ICalculator
    {
    public ICalculator ICalculator
    {
    get {
    return Channel;
    }
    }

    public ICalculator GetICalculator()
    {
    return Channel;
    }

    public string Add(double x, double y)
    {
    return Channel.Add(x, y);
    }
    }
    }


    我的问题来了,客户端调用Add方法的时候有以下3种方法

    ProxyCalculatorClient c = new ProxyCalculatorClient();

    // 调用1
    c.ICalculator.Add(8,3)

    // 调用2
    c.GetICalculator().Add(8, 3);

    // 调用3
    c.Add(8, 3);

    以上3个方式都可以实现 Add方法,为什么我看大多数的写法都是去实现接口然后把方法一个一个分开,

    个人认为其实第一种方式或第二种方式比较简单,直接把接口返回就行了,客户端想用哪个方法就用哪个方法,这里就是个人不明白的地方

    请大虾们指点一下 以上3种方法的差别,不太了解调用WCF服务通道是什么时候打开的什么时候关闭的,是不是和以上的写法有直接关系, 主要考虑的性能方面有什么区别????

  • 相关阅读:
    C#的访问修饰符
    C#的数据类型
    iOS--小结系列八(继续)
    ios--小结系列八 控制器管理
    ios--小结系列八 程序启动原理
    ios--小结系列七 通知机制
    ios--小结系列六继续-UITableViewCell
    ios--小结系列六
    ios--小结系列五
    ios--小结系列四
  • 原文地址:https://www.cnblogs.com/sujingnan/p/SJN.html
Copyright © 2020-2023  润新知