本篇內(nèi)容介紹了“XML怎么將機器內(nèi)碼轉(zhuǎn)換為人們?nèi)菀桌斫獾男畔ⅰ钡挠嘘P(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
為巴東等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務,及巴東網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務為網(wǎng)站設(shè)計、成都做網(wǎng)站、巴東網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tà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;
}
}
“XML怎么將機器內(nèi)碼轉(zhuǎn)換為人們?nèi)菀桌斫獾男畔ⅰ钡膬?nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!