明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
随笔 - 1277, 文章 - 0, 评论 - 214, 阅读 - 320万
  博客园  :: 首页  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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

Posted on   且行且思  阅读(831)  评论(0编辑  收藏  举报

 

因为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;
            }
        }
    }



}

复制代码
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示