WebService接口数据交换标准--参数

本文介绍了WebService接口中参数的相关类,如TReturnManager用于转换不同类型数据为XML,TStrList封装一维表数据,TSvrException处理自定义异常。参数标准规定基本类型直接传递,复杂数据使用TStrList的XML格式,保证数据交换的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节对参数相关的定义做了详细说明,包括参数相关类以及参数标准。

参数相关类

TReturnManager

public class TReturnManager {

          
int returnNo = 0;

         
string returnMsg = "成功";

         ArrayList returnStr;

         TStrList returnHead;

         DataTable returnData;

 

         
//数据传输方式,true为使用DataTable序列化方式传输,false为使用TStrList方式传输

         
const bool XML_TYPE_SCHEMA = true

 

         
/// <summary>

         
/// 构造函数

         
/// </summary>


         
public TReturnManager( ) {}

 

         
/// <summary>

         
/// 根据TStrList构造

         
/// </summary>

         
/// <param name="sl">TStrList数据</param>


         
public TReturnManager( TStrList sl ) {}

 

         
/// <summary>

         
/// 根据DataTable构造

         
/// </summary>

         
/// <param name="dt">DataTable数据</param>


         
public TReturnManager( DataTable dt ) {}

 

         
private void decodeStrList(){}

 

         
/// <summary>

         
/// 设置返回值头部

         
/// </summary>

         
/// <param name="sl">头部数据列表</param>


         
public void setHead( TStrList sl){}

 

         
/// <summary>

         
/// 构造函数

         
/// </summary>

         
/// <param name="se">自定义异常类</param>


         
public TReturnManager( TSvrException se ) {}

 

         
/// <summary>

         
/// 构造函数

         
/// </summary>

         
/// <param name="e">系统异常类</param>


         
public TReturnManager( System.Exception e ) {}

 

         
/// <summary>

         
/// 返回XML格式数据,该函数为公开的函数,根据XML_TYPE_SCHEMA的值返回相应的数据

         
/// </summary>

         
/// <returns>返回的XML</returns>


 

         
public string returnXML(){}

 

         
/// <summary>

         
/// 返回XML格式数据

         
/// </summary>

         
/// <returns>返回的XML</returns>


         
private string returnXMLSL( ){}

 

         
/// <summary>

         
/// 返回DataTable格式数据

         
/// </summary>

         
/// <returns>返回的XML</returns>


         
private string returnXMLDT(){}

     }

 

该类负责将TStrListDataTableTSvrException(自定义的异常类,继承自System.Exception)、System.Exception空数据等不同类型数据转换成在Web Service接口上传输的XML数据。

 

TStrList

 public class TStrList 

     
{

         
private ArrayList FNameList;

         
private ArrayList FValueList;

         
private ArrayList FType;

         
private string FStrTitle = "NewStrList";

         
public int count {get ;}

 

         
/// <summary>

         
/// 编码为XML字符

         
/// </summary>

         
/// <returns></returns>


         
public string toXML( ){}

 

         
/// <summary>

         
/// 输出为Base64格式字符串

         
/// </summary>

         
/// <returns></returns>


         
public string toXMLBase64(){}

 

         
/// <summary>

         
/// 构建对象--字符串

         
/// </summary>

         
/// <param name="str">字符</param>

         
/// <param name="isxml">传入字符是否为XML格式的</param>


         
public TStrList( string str, bool isxml) {}

 

         
/// <summary>

         
/// 构建对象--字符串

         
/// </summary>

         
/// <param name="str">字符</param>

         
/// <param name="isxml">传入字符是否为XML格式的</param>

         
/// <param name="base64">传入字符是否为Base64编码的</param>


         
public TStrList( string str, bool isxml, bool base64) {}

 

         
/// <summary>

         
/// 构建对象--DataTable

         
/// </summary>

         
/// <param name="dt">传入的DataTable</param>

         
/// <param name="str">标题</param>


         
public TStrList( DataTable dt, string str) {}

 

         
/// <summary>

         
/// 系统数据类型转换成TStrList通用数据类型

         
/// </summary>

         
/// <param name="systype">系统数据类型</param>

         
/// <returns>TStrList通用数据类型</returns>


         
public string systypeToLocalType(System.Type systype){}

 

         
/// <summary>

         
/// 根据name值取得value

         
/// </summary>

         
/// <param name="namestr">字段名(不分大小写)</param>

         
/// <returns>字段值</returns>


         
public string valueByName( string namestr){}

 

         
/// <summary>

         
/// 根据name取得type

         
/// </summary>

         
/// <param name="namestr">字段名(不分大小写)</param>

         
/// <returns>字段类型</returns>


         
public string typeByName(string namestr ){}

 

         
/// <summary>

         
/// 增加新字段

         
/// </summary>

         
/// <param name="namestr">字段名</param>

         
/// <param name="valuestr">字段值</param>

         
/// <param name="typestr">字段类型</param>


         
public void addNew(string namestr, string valuestr, string typestr){}

 

         
/// <summary>

         
/// 增加新字段

         
/// </summary>

         
/// <param name="namestr">字段名</param>

         
/// <param name="valuestr">字段值</param>


         
public void addNew(string namestr, string valuestr){}

 

         
/// <summary>

         
/// 过滤空值

         
/// </summary>


         
public void delSpace(){}

 

         
/// <summary>

         
/// 删除指定字段

         
/// </summary>

         
/// <param name="namestr">字段名</param>


         
public void deleteByName( string namestr ){}

 

         
/// <summary>

         
/// 解码XML

         
/// </summary>

         
/// <param name="xmlstring">传入的XML字符</param>


         
private void decodeXML( string xmlstring ){}

 

         
/// <summary>

         
/// 通过字段名取得索引

         
/// </summary>

         
/// <param name="namestr">字段名</param>

         
/// <returns>索引</returns>


         
private int getIndexByName(string namestr){}

 

         
/// <summary>

         
/// 是否存在该名称字段

         
/// </summary>

         
/// <param name="namestr">字段名</param>

         
/// <returns>是否存在该名称字段</returns>


         
public bool hasThisName(string namestr){}

 

         
/// <summary>

         
/// 通过索引取得类型

         
/// </summary>

         
/// <param name="index">索引值</param>

         
/// <returns>字段类型</returns>


         
public string getType(int index){}

 

         
/// <summary>

         
/// 通过索引取得字段名

         
/// </summary>

         
/// <param name="index">索引值</param>

         
/// <returns>字段名</returns>


         
public string getName(int index){}

 

         
/// <summary>

         
/// 通过索引取得字段值

         
/// </summary>

         
/// <param name="index">索引值</param>

         
/// <returns>字段值</returns>


         
public string getValue(int index){}

         

         
public string StrTitle{get;}

 

         
/// <summary>

         
/// 设置所有的名称为小写

         
/// </summary>


         
private void setNameToLowcase(){}

 

         
/// <summary>

         
/// 克隆本对象数据

         
/// </summary>


         
public TStrList CloneAInstance{get;}

 

         
public DataTable AsDataTable{get;}

     }

 

该类封装了一维表数据,其每个列表项具有namevaluetype三个属性。该类型的对象数据可以与DataTable的一行进行相互转换,在Web Service中作为复杂数据类型的参数传出。

 

TSvrException

public class TSvrException: System.Exception 

     
{

         
int ENo;

         
string EMsg;

         DataTable EData;

 

         
/// <summary>

         
/// 构造函数

         
/// </summary>

         
/// <param name="Des">异常信息字符串</param>


         
public TSvrException( string Des ){}

 

         
/// <summary>

         
/// 构造函数

         
/// </summary>

         
/// <param name="rno">异常编码</param>

         
/// <param name="rmsg">异常信息</param>


         
public TSvrException( int rno, string rmsg ) {}

 

         
/// <summary>

         
/// 异常编码

         
/// </summary>


         
public int rno{get;}

 

         
/// <summary>

         
/// 设置返回数据

         
/// </summary>

         
/// <param name="dt">数据表</param>


         
public void setEData(DataTable dt){}

 

         
/// <summary>

         
/// 异常信息

         
/// </summary>


         
public string rmsg {get;}

 

         
/// <summary>

         
/// 出现异常后可以返回数据

         
/// </summary>


         
public DataTable rdata {get;}

     }

 

该类继承自System.Exception类,用于封装自定义的异常信息。构造对象时可以传入异常代码和异常信息,也可以使用Des格式的异常信息。Des格式信息格式为“异常编码|异常信息”,例如“20|未找到数据”。

参数标准

接口参数对于intboolstring等基本数据类型采用直接传入,而对于数据表及列表等数据则需要封装成统一的格式,本标准使用了TStrListXML格式作为复杂数据参数的传输格式,其说明如下:

§         该字符串使用标准XML格式

§         该字符串是服务端TStrListXML形式

§         可表示一条记录

示例为:

详细说明如下:

<?xml version="1.0" encoding="UTF-8"?>

<row title="">

    
<column name="Column1" type="number">数据1</column>

    
<column name="Column2" type="string">数据2</column>

</row>

 

§         <row>为根节点,表示此行,<row>的子节点<column>表示本行的一列,包括nametype两个属性,分别表示列名和类型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值