怎么在。net中使用webapi接收xml格式数据

  介绍

本篇文章为大家展示了怎么在。net中使用webapi接收xml格式数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强> webapi接收xml的三种方法

& lt; ? xml  version=?.0“,编码=皍tf-8" ?比;   & lt; returnForm>   ,& lt; type> 2 & lt;/type>,   ,& lt; count> 1 & lt;/count>,   & lt; list>大敌;   & lt; pushSmsForm>大敌;   & lt;才能eprId> 0 & lt;/eprId>,   & lt;才能mobile> 13560739262 & lt;/mobile>,   & lt;才能msgId> 30217002 & lt;/msgId>,   & lt;才能content>, & lt; ! [CDATA[回复内容]]祝辞,& lt;/content>,   & lt;才能userId> id</userId>,   & lt;才能extNum>扩展号& lt;/extNum>,   & lt;才能recvNum/祝辞,   & lt;/pushSmsForm>大敌;   & lt; pushSmsForm>大敌;   & lt;才能eprId> 0 & lt;/eprId>,   & lt;才能mobile> 13560739261 & lt;/mobile>,   & lt;才能msgId> 30217001 & lt;/msgId>,   & lt;才能content>, & lt; ! [CDATA[回复内容]]祝辞,& lt;/content>,   & lt;才能userId> id</userId>,   & lt;才能extNum>扩展号& lt;/extNum>,   & lt;才能recvNum/祝辞,   & lt;/pushSmsForm>大敌;   & lt;/list>大敌;   & lt;/returnForm>

<强>思路

这个xml的基本知识我就不一一介绍了,简单说一下& lt; ![CDATA[]]在标志,里面的内容是没有限制的(除了& lt;和祝辞)。继续讲思路,文档中只说了是发布方法,所以我想到了三种可能:

<李>

对方通过形式表单提交了一个xml文件,我需要用文件流(文件流)读取文件,并进行转化为实体类

<李>

对方通过了后一个字符串过来,我接收字符串并转化为实体类。

<李>

对方直接在请求里添加了xml字符串(text/xml)

先构建两个xml反序列化的帮助类

,,///, & lt; summary>,///才能,反序列化,///才能,& lt;/summary>,///才能,& lt; param  name=皌ype"祝辞类型& lt;/param>,///才能,& lt; param  name=皒ml"在XML字符串& lt;/param>///才能,& lt; returns> & lt;/returns>,   public 才能;static  object 反序列化(类型、Type  string  xml)   {才能   ,,using  (StringReader  sr =, new  StringReader (xml))   ,,{   ,,,XmlSerializer  xmldes =, new  XmlSerializer(类型);   ,,,return  xmldes.Deserialize (sr);   ,,}   ,,}///才能,& lt; summary>,///才能,反序列化,///才能,& lt;/summary>,///才能,& lt; param  name=皌ype"祝辞& lt;/param>,///才能,& lt; param  name=皒ml"祝辞& lt;/param>,///才能,& lt; returns> & lt;/returns>,      public 才能;static  object 反序列化(类型、Type  Stream 流)   {才能   ,,XmlSerializer  xmldes =, new  XmlSerializer(类型);   ,,return  xmldes.Deserialize(流);   以前,,}

利用visual studio自带的功能xml生成类(编辑——在选择性粘贴,在将xml作为粘贴类)

, (System.SerializableAttribute ())   ,(System.ComponentModel.DesignerCategoryAttribute (“code")]   ,(System.Xml.Serialization.XmlTypeAttribute (AnonymousType =, true)]   ,public  partial  class  returnFormPushSmsForm   ,{   private 才能;int  eprIdField;   private 才能;string  mobileField;   private 才能;string  msgIdField;   private 才能;string  contentField;   private 才能;string  userIdField;   private 才能;string  extNumField;   private 才能;string  recvNumField;///才能,& lt;言论/比;   public 才能;int  eprId   {才能   ,才能得到的   ,,{   ,,,return  this.eprIdField;   ,,}   ,,   ,,{   ,,,this.eprIdField =,价值;   ,,}   ,,}///才能,& lt;言论/比;   public 才能;string 移动   {才能   ,才能得到的   ,,{   ,,,return  this.mobileField;   ,,}   ,,   ,,{   ,,,this.mobileField =,价值;   ,,}   ,,}///才能,& lt;言论/比;   public 才能;string 是否   {才能   ,才能得到的   ,,{   ,,,return  this.msgIdField;   ,,}   ,,   ,,{   ,,,this.msgIdField =,价值;   ,,}   ,,}///才能,& lt;言论/比;   public 才能;string 内容   {才能   ,才能得到的   ,,{   ,,,return  this.contentField;   ,,}   ,,   ,,{   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在。net中使用webapi接收xml格式数据