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 。

  • 相关阅读:
    神奇的flex布局
    reset、revert、rebase
    Vue.filter过滤器
    moment.js时间格式化总结
    Vue之组件大全
    过滤器filter
    Vue之animate
    Vue之axios
    Mac OS系统上测试PHP代码前的准备工作 | 使用XAMPP搭建Apache服务器的步骤
    Python中的标识符、关键字、变量、语句、注释、模块
  • 原文地址:https://www.cnblogs.com/dipwater/p/3151960.html
Copyright © 2011-2022 走看看