1、概述
公司项目遇到一个需要对接webservice的,webservice大部分用的都是xml来传输的,这里记录一下xml反序列化遇到的问题
2、xml工具类
xml序列化:
   public static string Serialize<T>(T obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
StringWriter writer = new StringWriter(CultureInfo.InvariantCulture);
serializer.Serialize(writer, obj);
string xml = writer.ToString();
writer.Close();
writer.Dispose(); return xml;
}

xml反序列化

 public static T Deserialize<T>(string xml)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
StringReader reader = new StringReader(xml);
T result = (T)(serializer.Deserialize(reader));
reader.Close();
reader.Dispose(); return result;
}

3、webservice调用

1、右键依赖项,选择添加连接的服务

2、选择连接的服务

3、配置好后就可以调用

 InfoToPingBiaoSoapClient client = new InfoToPingBiaoSoapClient(InfoToPingBiaoSoapClient.EndpointConfiguration.InfoToPingBiaoSoap12);

4、遇到的问题

  通过在线的xml转json,在从json转C#就可以获得对应类,因为xml反序列化只会提醒反序列化出错,却不会告诉你哪个字段出错,所以可能会有以下几个问题

1、转成C#的类型大小写可能和xml不一致,会导致反序列化失败

可以自己实例化一个类型,然后序列化,将序列化后的xml和webservice返回的xml进行对比,避免大小写问题

2、xml类型的泛型问题

    public class xmlroot<T>
{
/// <summary>
///
/// </summary>
public danweis<T> danweis { get; set; }
}

  如上图的泛型,在xml序列化反序列化中会变成<xmlrootOfdanweiinfo>,danweiinfo是传入的类型,这种情况下需要加上    [XmlRoot("xmlroot")]特性标签指定转化类型即可。

最新文章

  1. 【转】Description Resource Path Location Type Java compiler level&amp;n
  2. word2vec
  3. git 仓库、分支的区别
  4. poj2676 Sudoku
  5. WIN2008 R2 安装SQLSERVER2008笔记
  6. redis-persist上线
  7. 黄聪:Discuz X2.5、3.0、3.1、3.2 如何不用插件实现用户名只允许中文注册
  8. Cassandra目录
  9. 利用Nutch和Tomcat构建搜索引擎
  10. Careercup - Google面试题 - 4807591515389952
  11. bugku crypto easy-crypto
  12. unicode utf-8 ascll编码比较
  13. 【2019年03月29日】股票的滚动市盈率PE最低排名
  14. python second lesson
  15. vim命令记录
  16. [PHP] 03 - Form &amp; Input
  17. 爆出的法拉第未来(Faraday Future,以下简称“FF”)
  18. Linux查看系统当前字符集
  19. CSS 学习路线(一)元素
  20. SharePoint自动化系列——Upload files to SharePoint library using PowerShell.

热门文章

  1. Excel-DNA项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【VB.Net版】
  2. 微软要冷落windows是天方夜谭还是势在必行
  3. python学习笔记(9)函数(一)
  4. centos 6.* 修改时间
  5. Mysql分区,分库和分表
  6. 第一次作业:使用java实现word count
  7. FFT算法的verilog实现
  8. 写了个通作的分页存储过程,top,加入了排序
  9. django反向解析和正向解析
  10. SQL语言基础及数据库的创建