ASP.NET :WebService 服务支持数据类型的实例

因为WEB服务的实现是建立在XML序列化结构的基础之上的,因此它支持相当多的数据类型。当使用SOAP协议时,按值参数和按引用参数都受支持。按引用参数可以沿两个方向发送值:向上发送到服务器和向下发送给客户端。当使用HTTP-GET和HTTP-POST将输入参数传递给XML WEB服务时,只支持一组有限的数据类型,并且他们必须是按值参数。下面这个实例演示几种数据类型的封装。

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.Xml;
using System.Data.SqlClient;


/// <summary>
/// DataTypeWS 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
public class DataTypeWS : System.Web.Services.WebService
{

    
public DataTypeWS()
    {

        
//如果使用设计的组件,请取消注释以下行 
        
//InitializeComponent(); 
    }

    [WebMethod]
    
public string HelloWorld()
    {
        
return "Hello World";
    }


    [WebMethod]
  
public string Hello(Person p)
  {
   
return "Hello,"+p.Name;
  }

  [WebMethod]
  
public int[] GetIntArray()
  {
   
int[] a=new int[5];
   
for(int i=0;i<5;i++)
    a[i]
=i*10;
   
return a;
  }

  [WebMethod]
  
public Mode GetMode()
  {
   
return Mode.Off;
  }

  [WebMethod]
  
public Order GetOrder()
  {
   Order myOrder
=new Order();
   myOrder.Price
=34.5;
   myOrder.OrderID
=323232;
   
return myOrder;
  }

  [WebMethod]
  
public Order[] GetOrders()
  {
   Order[] myOrder
=new Order[2];

   myOrder[
0]=new Order();
   myOrder[
0].Price=34.5;
   myOrder[
0].OrderID=323232;
   myOrder[
1]=new Order();
   myOrder[
1].Price=99.9;
   myOrder[
1].OrderID=646465;
   
return myOrder;
  }

  [WebMethod]
  
public DataSet GetDataSet()
  {
   SqlConnection myconn
=new SqlConnection();
   myconn.ConnectionString
="data source=.;initial catalog=DATABASENAME;uid=sa;pwd=sa";

   SqlCommand mycmd
=new SqlCommand();
   mycmd.Connection
=myconn;
   mycmd.CommandType
=CommandType.Text;
   mycmd.CommandText
="select * from employee";

   SqlDataAdapter adapter
=new SqlDataAdapter();
   adapter.SelectCommand
=mycmd;
   
//adapter.MissingSchemaAction=MissingSchemaAction.AddWithKey;

   DataSet ds
=new DataSet();
   adapter.Fill(ds,
"employee");

   
return ds;
  }

  [WebMethod]
  
public XmlElement GetXmlNode()
  {
   XmlDocument doc
=new XmlDocument();
   XmlElement node;
   node
=doc.CreateElement("Hello");
   node.InnerXml
="XiaoHua";
   
return node;
  }

 
public enum Mode
 {
  On
=1,
  Off
=0
 }
    
public struct Order
 {
  
public int OrderID;
  
public double Price;
 }
    
public class Person
    {
        
private string name;
        
public string Name
        {
            
get
            {
                
return name;
            }
            
set
            {
                name 
= value;
            }
        }
    }



}

原文地址:https://www.cnblogs.com/Fooo/p/1524704.html