zoukankan      html  css  js  c++  java
  • XmlRpc.net 出参字符串还原为结构体

    上一篇随笔写的是入参结构体转字符串,现在需要把保存到服务器的字符串还原为结构体,这里记录一下操作步骤:

    1. 格式化字符串。

    XmlRpcDeserializer 支持反序列化<struct>…</struct>节点开始的数据,所以需要先把字符串首尾其他字符去掉。

       1:  // args 为结构体的字符串
       2:  TaskArgsStruct argStruct = null;
       3:  const string startValue = "<struct>";
       4:  const string endValue = "</struct>";
       5:  int startIndex = args.IndexOf(startValue);
       6:  if (startIndex > 0)
       7:  {
       8:      args = args.Remove(0, startIndex);
       9:  }
      10:  else
      11:  {
      12:      return argStruct;
      13:  }
      14:  int endIndex = args.LastIndexOf(endValue);
      15:  if (endIndex > 0)
      16:  {
      17:      args = args.Remove(endIndex + endValue.Length);
      18:  }
      19:  else
      20:  {
      21:      return argStruct;
      22:  }
     
    2. 反序列化字符串。
       1:  XmlRpcDeserializer deSerial = new XmlRpcDeserializer();
       2:  using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(args)))
       3:  {
       4:      XmlReader rdr = XmlReader.Create(ms);
       5:      argStruct = (TaskArgsStruct)deSerial.ParseValueElement(rdr, typeof(TaskArgsStruct), new MappingStack("struct"), MappingAction.Error);
       6:      ms.Close();
       7:  }
       8:   
       9:  return argStruct;

    TaskArgsStruct 是接收出参的结构体。到此就得到了TaskArgsStruct 的实例 argStruct 。

  • 相关阅读:
    浅析Linux计算机进程地址空间与内核装载ELF
    ExtAspNet学习利用AppBox框架快速创建项目(四)vs2010解决方案
    ExtAspNet学习利用AppBox框架快速创建项目(五)—完成项目含源代码
    ExtAspNet学习利用AppBox框架快速创建项目(一)
    新手第一帖——学习.NET
    java hibernate4 学习心得
    ExtAspNet学习利用AppBox框架快速创建项目(三)Subsonic工具配置
    ExtAspNet学习利用AppBox框架快速创建项目(二)创建Oralce数据库
    我的编程疑团java还是.net
    修改.htaccess实现301重定向
  • 原文地址:https://www.cnblogs.com/dipwater/p/3151960.html
Copyright © 2011-2022 走看看