文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

XML怎么将机器内码转换为人们容易理解的信息

2024-04-02 19:55

关注

本篇内容介绍了“XML怎么将机器内码转换为人们容易理解的信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!


  转换对象如下:
  /// 
  ///翻译类,将内部码翻译成容易理解的中文 
  /// 
  /// 
  ///根据配置文件中的信息,将系统内部码(错误码、成功码)翻译成中文(或人容易理解的语言)。 
  /// 
  publicstaticclassTranslation 
  ...{ 
  privatestaticSystem.IO.FileSystemWatcherwatcher; 
  privatestaticXmlDocumentcontent; 
  privatestaticstringconfigFile; 
  privatestaticobjectlocker=newobject(); 
   
  /// 
  ///加载配置文件 
  /// 
  /// 
  publicstaticvoidConfigure(stringconfigFile) 
  ...{ 
  LoadFile(configFile); 
  if(watcher!=null) 
  ...{ 
  watcher.Dispose(); 
  } 
  watcher=newFileSystemWatcher(Path.GetDirectoryName(configFile),Path.GetFileName(configFile)); 
  watcher.Changed =newFileSystemEventHandler(watcher_Changed); 
  } 
   
  /// 
  ///加载默认配置文件 
  /// 
  publicstaticvoidConfigure() 
  ...{ 
  if(System.Web.HttpContext.Current!=null) 
  ...{ 
  Configure(System.Web.HttpContext.Current.Server.MapPath("~/translation.config")); 
  } 
  else 
  ...{ 
  Configure(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase "/" "translation.config"); 
  } 
  } 
   
  /// 
  ///加载文件内容 
  /// 
  /// 
  privatestaticvoidLoadFile(stringconfigFile) 
  ...{ 
  lock(locker) 
  ...{ 
  XmlDocumentdoc=newXmlDocument(); 
  doc.Load(configFile); 
   
  content=doc; 
  Translation.configFile=configFile; 
  } 
  } 
   
  /// 
  ///当文件变更时,从新加载文件 
  /// 
  /// 
  /// 
  privatestaticvoidwatcher_Changed(objectsender,FileSystemEventArgse) 
  ...{ 
  LoadFile(configFile); 
  } 
   
  /// 
  ///获取Enum的解释,如果Enum有Flag标记,则使用逗号分隔各个解释 
  /// 
  /// 
  /// 
  publicstaticstringGetEnumDescription(EnumenumValue) 
  ...{ 
  returnGetEnumDescription(enumValue,","); 
  } 
   
  /// 
  ///获取Enum的解释,如果Enum有Flag标记,则使用sparator分隔各个解释 
  /// 
  /// 
  /// 
  /// 
  publicstaticstringGetEnumDescription(EnumenumValue,stringsparator) 
  ...{ 
  Typetype=enumValue.GetType(); 
   
  //检查类型是否有Flags特性 
  object[]attrs=type.GetCustomAttributes(typeof(FlagsAttribute),false); 
  if(attrs.Length>0) 
  ...{ 
  StringBuilderbuilder=newStringBuilder(); 
  Arrayarr=Enum.GetValues(type); 
  foreach(Enumenuinarr)//循环获取每一个值的解释 
  ...{ 
  if((Convert.ToUInt64(enumValue)&Convert.ToUInt64(enu))==Convert.ToUInt64(enu))//判断是否有这个值 
  ...{ 
  builder.Append(GetEnumDes(type,enu.ToString())); 
  builder.Append(sparator); 
  } 
  } 
  if(builder.Length!=0)//拿掉最后的分隔符 
  builder.Remove(builder.Length-sparator.Length,sparator.Length); 
  returnbuilder.ToString(); 
  } 
  else 
  ...{ 
  returnGetEnumDes(type,enumValue.ToString()); 
  } 
  } 
   
  /// 
  ///获取某一Enum类型值的解释 
  /// 
  /// 
  /// 
  /// 
  privatestaticstringGetEnumDes(Typetype,stringvalue) 
  ...{ 
  stringxquery="/translation/enum/" type.FullName "/" value; 
  XmlNodenode=content.SelectSingleNode(xquery); 
  if(node!=null) 
  returnnode.InnerText; 
  else 
  returnvalue; 
  } 
   
  /// 
  ///翻译指定值 
  /// 
  /// 
  /// 
  publicstaticstringGetValueDescription(objectobj) 
  ...{ 
  returnGetValueDescription("default",obj); 
  } 
   
  /// 
  ///在指定组中翻译指定值 
  /// 
  /// 
  /// 
  /// 
  publicstaticstringGetValueDescription(stringgroup,objectobj) 
  ...{ 
  if(obj==null) 
  return"null"; 
   
  stringxquery="/translation/description[@group='" group "']/add[@key='" obj.ToString() "']/@value"; 
  XmlNodenode=content.SelectSingleNode(xquery); 
  if(node==null) 
  returnobj.ToString(); 
  else 
  returnnode.Value; 
  } 
  }

“XML怎么将机器内码转换为人们容易理解的信息”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯