zoukankan      html  css  js  c++  java
  • 生成复杂参数类型的客户端代理

    生成复杂参数类型的客户端代理
    •使用GenerateScriptTypeAttribute标记要生成代理的参数类型
    •可以标记在类、接口以及方法上
    •生成的代理中将包括客户端类型的代理
    •调用方法时可以创建“具体类型”
    –new [Namespaces].ClassName()
    –没有其他构造方法(构造函数)

    aspx
        <form id="form1" runat="server">
            
    <asp:ScriptManager ID="ScriptManager1" runat="server">
                
    <Services>
                    
    <asp:ServiceReference Path="ColorService.asmx" InlineScript="true" />
                
    </Services>
            
    </asp:ScriptManager>
            
            
    <input type="button" value="Reverse Color" onclick="ReverseColor()" />
            
            
    <script language="javascript" type="text/javascript">
                function ReverseColor()
                {
                    
    // var color = {"Red" : 50, "Green" : 100, "Blue" : 200};
                    var color = new ComplexType.Color();
                    color.Red 
    = 50;
                    color.Green 
    = 100;
                    color.Blue 
    = 200;
                    ColorService.Reverse(color, onSucceeded);
                }
                
                function onSucceeded(result)
                {
                    alert(String.format(
                        
    "Red: {0}\nGreen: {1}\nBlue: {2}",
                        result.Red,
                        result.Green,
                        result.Blue));
                }
            
    </script>
        
    </form>

    Color.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    namespace ComplexType
    {
        
    /// <summary>
        
    /// Summary description for Color
        
    /// </summary>
        public class Color
        {
            
    public Color() { }

            
    public Color(byte red, byte green, byte blue)
            {
                
    this.Red = red;
                
    this.Green = green;
                
    this.Blue = blue;
            }

            
    public byte Red;

            
    public byte Green;

            
    public byte Blue;
        }
    }


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

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

    [WebService(Namespace 
    = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
    [ScriptService]
    public class ColorService  : System.Web.Services.WebService
    {
        [WebMethod]
        [GenerateScriptType(
    typeof(Color))]
        
    public Color Reverse(Color color)
        {
            
    return new Color(
                (
    byte)(255 - color.Red),
                (
    byte)(255 - color.Green),
                (
    byte)(255 - color.Blue));
        }
        
    }
    注意这里的ColorService类方法Reverse设置了[GenerateScriptType(typeof(Color))]标记要生成代理的参数类型,这样才可以使用Color作为参数的类型
  • 相关阅读:
    linux 硬盘满了 怎么优化
    Mysql 忘记密码 Linux
    嵌入式新闻早班车-第18期
    《安富莱嵌入式周报》第225期:2021.08.09--2021.08.15
    【DSP教程】第43章 IIR滤波器的Matlab设计
    【DSP教程】第42章 IIR无限冲击响应滤波器设计
    嵌入式新闻早班车-第17期
    《安富莱嵌入式周报》第224期:2021.08.02--2021.08.08
    H7-TOOL重大更新,发布WiFi版,新增暗黑主题,脱机烧录增加大唐半导体,自此高速USB,以太网和WiFi方式全部打通(2021-08-07)
    【STM32H7的DSP教程】第41章 FIR滤波器的群延迟(重要)
  • 原文地址:https://www.cnblogs.com/timy/p/1173065.html
Copyright © 2011-2022 走看看