最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用XML將機器內(nèi)碼轉(zhuǎn)換為人們?nèi)菀桌斫獾男畔?/h1>
互聯(lián)網(wǎng)   發(fā)布時間:2008-10-17 20:16:03   作者:佚名   我要評論
  程序中通常會有一些錯誤代碼或標識,為了程序中方便這些東西通常不會使用漢字,經(jīng)常在程序中用的是一些FileError或數(shù)字。還有就是在編碼中經(jīng)常使用的枚舉標識對象的狀態(tài)。而通常這些信息會直接的或間接的現(xiàn)實給用戶,可用戶需要到的是容易理解的漢字描述。以前要么將這

  程序中通常會有一些錯誤代碼或標識,為了程序中方便這些東西通常不會使用漢字,經(jīng)常在程序中用的是一些FileError或數(shù)字。還有就是在編碼中經(jīng)常使用的枚舉標識對象的狀態(tài)。而通常這些信息會直接的或間接的現(xiàn)實給用戶,可用戶需要到的是容易理解的漢字描述。以前要么將這些標識和枚舉的轉(zhuǎn)換規(guī)則硬編碼到程序中,要么就直接提示給用戶。前者沒有很好的擴展性,而后者則讓用戶一頭霧水。現(xiàn)可以用流行的XML(配置文件)保存提示信息,然后用一個對象將機器中的內(nèi)碼轉(zhuǎn)換為人們?nèi)菀桌斫獾男畔ⅰ?
  轉(zhuǎn)換對象如下:
  /**////
  ///翻譯類,將內(nèi)部碼翻譯成容易理解的中文
  ///
  ///
  ///根據(jù)配置文件中的信息,將系統(tǒng)內(nèi)部碼(錯誤碼、成功碼)翻譯成中文(或人容易理解的語言)。
  ///
  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");
  }
  }
  
  /**////
  ///加載文件內(nèi)容
  ///
  ///
  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)//循環(huán)獲取每一個值的解釋
  ...{
  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;
  }
  }

相關文章

  • MIME類型中application/xml與text/xml的區(qū)別介紹

    這篇文章介紹了MIME類型中application/xml與text/xml的區(qū)別,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-28
  • 詳解XML中的模式Schema

    XML中擁有Schema特性,能夠比DTD更加強大地引入元素結(jié)構(gòu),下面我們就來詳解XML中的模式Schema的概念及作用和用法,需要的朋友可以參考下
    2021-11-30
  • XML基本概念入門學習指南

    這篇文章主要介紹了XML基本概念入門學習指南,包括其與HTML的關系以及元素和特殊標簽等,需要的朋友可以參考下
    2016-06-24
  • XML中的DTD文檔類型定義完全解析

    XML標簽的自定義功能非常強大,比如本文將要講解的DTD(Document Type Definition)就帶給人們一種面向?qū)ο蟀愕母杏X,well,下面就來看一下XML中的DTD文件類型定義完全解析
    2016-06-24
  • 簡介XML文檔的閱讀與編輯

    這篇文章主要介紹了XML文件的閱讀與編輯,最常用的工具當然還是瀏覽器中的控制臺與源代碼查看,需要的朋友可以參考下
    2016-02-16
  • 簡單了解XML中的命名空間

    這篇文章主要介紹了XML的命名空間,包括命名空間的聲明等XML入門學習中的基礎知識,需要的朋友可以參考下
    2016-02-16
  • 解析XML中的樹形結(jié)構(gòu)與DOM文檔對象模型

    這篇文章主要介紹了XML中的樹形結(jié)構(gòu)與DOM文檔對象模型,文中舉了JavaScript解析DOM對象的例子,需要的朋友可以參考下
    2016-02-15
  • 詳解XML編程中的模式定義XSD

    這篇文章主要介紹了詳解XML編程中的模式定義XSD,講解了如何在XML文檔中聲明模式及定義類型等內(nèi)容,需要的朋友可以參考下
    2016-02-15
  • 深入解析XML中的DTD文檔類型定義

    這篇文章主要介紹了XML中的DTD文檔類型定義,是XML入門學習中的基礎知識,需要的朋友可以參考下
    2016-02-15
  • 淺談XML代碼編寫的編碼與驗證問題

    這篇文章主要介紹了XML代碼編寫的編碼與驗證問題,與HTML類似,XML文件的編碼也能在序言部分被指定,需要的朋友可以參考下
    2016-02-15

最新評論

阆中市| 略阳县| 岢岚县| 保德县| 萍乡市| 长泰县| 遂溪县| 瑞昌市| 乡宁县| 陆良县| 曲靖市| 将乐县| 新干县| 江华| 曲松县| 韩城市| 余姚市| 东山县| 无极县| 江城| 南川市| 海南省| 如东县| 昌吉市| 黄冈市| 阿瓦提县| 西贡区| 项城市| 民乐县| 汾阳市| 当阳市| 威信县| 梨树县| 东海县| 黄浦区| 巴彦县| 肥西县| 绍兴县| 浙江省| 卢湾区| 灯塔市|