zoukankan      html  css  js  c++  java
  • WCF方法重载

    一、服务端重载

      一般写法直接重载,但是会报错,如下。

    [ServiceContract]
        public interface IService1
        {
    
            [OperationContract]
            string GetData(int value);
    
            [OperationContract]
            string GetData(string value);
    
            [OperationContract]
            CompositeType GetDataUsingDataContract(CompositeType composite);
    
            // TODO: 在此添加您的服务操作
        }

      修改后如下

    ServiceContract]
        public interface IService1
        {
    
            [OperationContract(Name ="GetDataInt")]
            string GetData(int value);
    
            [OperationContract(Name ="GetDataString")]
            string GetData(string value);
    
            [OperationContract]
            CompositeType GetDataUsingDataContract(CompositeType composite);
    
            // TODO: 在此添加您的服务操作
        }

     发现可以了

    自动生成代理,方法名字和方法契约名字一样了。

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService1/GetDataInt", ReplyAction="http://tempuri.org/IService1/GetDataIntResponse")]
            string GetDataInt(int value);
            
            [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService1/GetDataInt", ReplyAction="http://tempuri.org/IService1/GetDataIntResponse")]
            System.Threading.Tasks.Task<string> GetDataIntAsync(int value);
            
            [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService1/GetDataString", ReplyAction="http://tempuri.org/IService1/GetDataStringResponse")]
            string GetDataString(string value);
            
            [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IService1/GetDataString", ReplyAction="http://tempuri.org/IService1/GetDataStringResponse")]
            System.Threading.Tasks.Task<string> GetDataStringAsync(string value);

    二、客户端方法重载

    代理类中方法,进行修改

    修改前(代码中可以new一个服务实例,然后把方法打出来,F12过去)

     public string GetDataInt(int value) {
                return base.Channel.GetDataInt(value);
            }
            
            public System.Threading.Tasks.Task<string> GetDataIntAsync(int value) {
                return base.Channel.GetDataIntAsync(value);
            }
            
            public string GetDataString(string value) {
                return base.Channel.GetDataString(value);
            }

    修改后

     public string GetData(int value) {
                return base.Channel.GetDataInt(value);
            }
            
            public System.Threading.Tasks.Task<string> GetDataIntAsync(int value) {
                return base.Channel.GetDataIntAsync(value);
            }
            
            public string GetData(string value) {
                return base.Channel.GetDataString(value);
            }

  • 相关阅读:
    数据类型
    泛型
    如何同步ORACLE和sqlserver的数据
    JBOss 端口没占用!
    Oracle数据库启动流程
    无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
    数组的选择排序和冒泡排序
    Java条形码生成方案及二维码要点
    更改表字段的长度
    jquery 产品查看放大镜组件
  • 原文地址:https://www.cnblogs.com/wudequn/p/7081143.html
Copyright © 2011-2022 走看看