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 。

  • 相关阅读:
    Java 拆分 PDF 文档
    [Java] Spire.Cloud.Word 在Word 文档中添加、删除形状
    Java 生成Word文档
    Java 添加文本框到 PPT 幻灯片
    Linux下kafka的安装及配置
    Linux下zookeeper的安装及配置
    Linux下pip的安装及配置
    Linux安装Python环境
    Linux安装jdk8
    SnowNLP——获取关键词(keywords(1))
  • 原文地址:https://www.cnblogs.com/dipwater/p/3151960.html
Copyright © 2011-2022 走看看