📄 stockwebservice.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 + -