Web Service示例程序
Below is the C# code used to create our sample web service:
namespace RelevantCodes.TestingWebServices
{
using System;
using System.Web.Services;
using System.Xml;
using System.Xml.Serialization;
using System.Text;
[WebService(Namespace = "localhost")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[Serializable]
public class Temperature : WebService
{
private double Degree;
private string Unit;
[WebMethod]
public XmlDocument Conversion(double Degrees, string Unit)
{
Unit = Unit.ToUpper();
this.Degrees = Degrees;
this.Unit = Unit;
StringBuilder stringBuilder = new StringBuilder();
using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder));
{
XmlWriter newXmlWriter = Conversion(xmlWriter);
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(stringBuilder.ToString());
return xmlDocument;
}
}
private XmlWriter Conversion(XmlWriter xmlWriter)
{
Scale scale = new Scale();
switch (Unit)
{
case "K":
scale.Celsius = Degree - 273.15; break;
case "R":
scale.Celsius = (Degree - 491.67) * 5 / 9; break;
case "F":
scale.Celsius = (Degree - 32) * 5 / 9; break;
default:
scale.Celsius = Degree; break;
}
scale.Degrees = Degrees;
scale.Unit = Unit;
scale.Fahrenheit = scale.Celsius * 1.8 + 32;
scale.Kelvin = scale.Celsius + 273.15;
scale.Rankine = (scale.Celsius + 273.15) * 1.8;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Conversion");
xmlWriter.WriteStartElement("Input");
xmlWriter.WriteElementString("Degrees", Degrees.ToString());
xmlWriter.WriteElementString("Unit", Unit);
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("Output");
xmlWriter.WriteAttributeString("Time", DateTime.Now.ToString());
xmlWriter.WriteElementString("Celsius", scale.Celsius.Tostring());
xmlWriter.WriteElementString("Fahrenheit", scale.Fahrenheit.ToString());
xmlWriter.WriteElementString("Kelvin", scale.Kelvin.ToString());
xmlWriter.WriteElementString("Rankine", scale.Ranking.ToString());
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
return xmlWriter;
}
public struct Scale
{
public double Degrees;
public string Unit;
public double Celsius;
public double Kelvin;
public double Rankine;
public double Fahrenheit;
}
}
}