⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stockwebservice.asmx

📁 ASP.NET服务器控件与组件开发PDG电子书+随书源码
💻 ASMX
字号:
<%@ WebService Language="c#" Class="StockWebService" %>
<%@ Assembly Src="StockServer.cs" %>

using System;
using System.Collections;
using System.Web.Services;
using System.Xml.Serialization;
using BookWeb;

[WebService(Name="StockWebService", Namespace="http://localhost/BookWeb/Chapter18/StockWebService", Description="A very simple stock tracking simulation")]
public sealed class StockWebService {

    [WebMethod(Description="Returns a snapshot of the current stock data")]
    public StockDataSnapShot GetCurrentStockData(string stockSymbols) {
        if ((stockSymbols == null) || (stockSymbols.Length == 0)) {
            throw new ArgumentNullException("stockSymbols");
        }
        
        if (StockServer.Instance.IsStarted == false) {
            StockServer.Instance.Start();
        }

        string[] symbols = stockSymbols.Split(';');

        DateTime snapShotTime = StockServer.Instance.LastUpdateTime;
        ArrayList stocks = new ArrayList();

        for (int i = 0; i < symbols.Length; i++) {
            StockServer.StockInfo si = StockServer.Instance[symbols[i]];
            if (si != null) {
                stocks.Add(new StockData(si));
            }
        }        
        
        StockDataSnapShot snapShot = new StockDataSnapShot();
        snapShot._snapShotTime = snapShotTime;
        snapShot._stocks = (StockData[])stocks.ToArray(typeof(StockData));
        
        return snapShot;
    }
}

public sealed class StockDataSnapShot {
    [XmlElement("SnapShotTime")]
    public DateTime _snapShotTime;

    [XmlArray("Stocks")]
    public StockData[] _stocks;
}

public sealed class StockData {

    [XmlAttribute("Symbol")]
    public string _symbol;
    
    [XmlAttribute("Value")]
    public double _value;
    
    [XmlAttribute("Change")]
    public double _change;

    public StockData() {
    }
    
    public StockData(StockServer.StockInfo info) {
        _symbol = info.Symbol;
        _value = info.CurrentValue;
        _change = info.Change;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -