zoukankan      html  css  js  c++  java
  • 改变客户端访问时的方法名

    •客户端无法重载方法(overload)
    –可以通过判断arguments数量来模拟重载
    •如果服务器端出现了方法重载?
    –使用WebServiceAttribute指定客户端方法名
    –使用和真正的WebService相同的做法
    –[WebMethod(MessageName = “…")]
    •并非出现重载时才能改变方法名称


    aspx
        <form id="form1" runat="server">
            
    <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug">
                
    <Services>
                    
    <asp:ServiceReference Path="Services/MethodOverloadedService.asmx" InlineScript="true" />
                
    </Services>
            
    </asp:ScriptManager>
            
            
    <input type="button" value="Get Random" onclick="getRandom()" />
            
    <input type="button" value="Get Range Random" onclick="getRandom(50, 100)" />
            
            
    <script language="javascript" type="text/javascript">
                function getRandom(minValue, maxValue)
                {
                    
    if (arguments.length != 2)
                    {
                        MethodOverloadedService.GetRandom(onSucceeded);
                    }
                    
    else
                    {
                        MethodOverloadedService.GetRangeRandom(minValue, maxValue, onSucceeded);
                    }
                }
                
                function onSucceeded(result)
                {
                    alert(result);
                }
            
    </script>
        
    </form>

    MethodOverloadedService.asmx
    <%@ WebService Language="C#" Class="MethodOverloadedService" %>

    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Web.Script.Services;

    [WebService(Namespace 
    = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
    [ScriptService]
    public class MethodOverloadedService  : WebService
    {
        [WebMethod]
        
    public int GetRandom()
        {
            
    return new Random(DateTime.Now.Millisecond).Next();
        }

        [WebMethod(MessageName
    ="GetRangeRandom")]
        
    public int GetRandom(int minValue, int maxValue)
        {
            
    return new Random(DateTime.Now.Millisecond).Next(minValue, maxValue);
        }
        
    }
    WebServervice方法中使用[WebMethod(MessageName="GetRangeRandom")]就可以改变客户端访问时使用的方法名,JavaScript不支持重载,如果服务器端使用了重载,就一定要改变重载的方法客户端访问时的方法名,否则的话在JavaScript由于不支持重载,最后生成的方法就会覆盖前面生成的方法
  • 相关阅读:
    让Mootools的语法结构像Jquery那样
    從此不再談jquery,马上忘掉他开始学Mootools
    解决Firefox的Sync不能同步的问题
    用php做模糊而又精确的查找
    Jquery弹出层插件和拖拽插件的结合使用范例
    Jquery优化效率 提升性能解决方案
    该死的百度部落格又做了什么改动?
    想念
    硬盘出现“I/O设备错误的解决方法
    jquery插件 弹出层的效果实现代码
  • 原文地址:https://www.cnblogs.com/timy/p/1178263.html
Copyright © 2011-2022 走看看