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;

    }

  }

}

posted @ 2013-11-22 20:18  dushuai  阅读(162)  评论(0编辑  收藏  举报