改变客户端访问时的方法名
生活随笔
收集整理的這篇文章主要介紹了
改变客户端访问时的方法名
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?客戶端無法重載方法(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由于不支持重載,最后生成的方法就會覆蓋前面生成的方法
–可以通過判斷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由于不支持重載,最后生成的方法就會覆蓋前面生成的方法
轉載于:https://www.cnblogs.com/timy/archive/2008/04/30/1178263.html
總結
以上是生活随笔為你收集整理的改变客户端访问时的方法名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞信聊天记录相关类
- 下一篇: SQL改變字符串標識符