国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Silverlight資源文件引用相關難題解析

開發 開發工具
我們今天為大家詳細介紹Silverlight資源文件引用的一些相關問題解疑,希望大家能夠通過本文介紹內容可以詳細掌握這些處理方法。

Silverlight開發工具在進行資源的引用的時候,可能會出現一些問題困擾著開發人員難以將程序進程向前推進。尤其是剛剛接觸這款工具不久的新手來說尤其頭疼。我們在這里就為大家介紹了一下Silverlight資源文件引用的一些相關問題及解決辦法。#t#

Silverlight資源文件引用問題描述

最近項目中遇到一個和資源文件相關的很奇怪的問題。有一個Silverlight應用會根據當前Url中的某個特定參數來決定使用什么文化的資源文件(關于資源的文件的使用見Silverlight 2 RTM 多國語言支持)。在其他機器上運行沒有問題,傳入zh-Hans和en-US界面都能正確顯示相應語言的文字。但是在我的系統上卻不管傳入什么都是顯示的英文文字。

Silverlight資源文件引用問題分析

打開工程看了一下,在資源文件夾下只定義了兩個資源,一個是主資源XXX.resx,一個是英文中立資源XXX.en.resx。編譯之后,主資源會被打包到主程序集中,而其他資源則被編譯成獨立的程序集,稱為衛星程序集。Silverlight代碼中在提取Url參數的時候也加上了一個檢測邏輯,就是如果傳入的語言不是英文,那么就使用zh-Hans。也就是說在其他人的機器上,如果你輸入了fr,那么也是顯示中文。分析加調試弄了好一會之后,我判定應該不是程序代碼的bug。因為在某些人的機器上是正常的,而在我的機器還有另外一個同事的機器上卻不正常,而且問題是可重現的。這說明了問題和本地環境有關。

清緩存,清Silverlight獨立存儲之后發現問題依然存在。難道是操作系統的問題?!我用的是win7,同事用的是win2008,都是高版本的windows,而其他人用的不是xp就是2003。為了證實我的想法,我又找了一臺2008的機器,測試結果和我機器上的一樣。看來很有可能問題就在這。可是,為什么呢?

為了查找問題的原因,我重新查閱了一下Silverlight使用資源文件的相關材料(和DotNet其實差不多)。

Silverlight資源文件引用的查找方式

Silverlight采用中心輻射型結構來打包和部署資源文件程序集。圍繞在中心的是主程序集里面的資源,這個資源也被稱為中立或者默認資源。如果主程序集沒有顯式設定語言,那么一個資源要是查找失敗,最終會使用主程序集中的資源。每個輻射點指向的是每一種語言對應的衛星程序集。

Silverlight在查找資源文件的時候采用了如下的方式:

 

最***是應用程序的默認程序集。第二級是語言相關程序集,它代表的是地域無關的語言文化,如英文,簡體中文,繁體中文(zh-Hant)等;第三級是和地域相關的文化程序集,如美國英語,英國英語,大陸簡體中文,新加坡簡體中文。Silverlight在加載本地資源的時候首先會根據CultureInfo.CurrentUICulture屬性來判斷應該加載哪一種文化對應的資源。在查找的時候是按照上面的層次結構從下到上進行查找的。具體說來,當ResourceManager在查找一個資源時會經過以下幾個步驟:

1. 查找具體語言相應的程序集是否存在。如設置了zh-CN,那么就查找XXX.zh-CN.resx資源文件是否存在(存在于衛星程序集中),如果程序集不存在或者在該程序集中找不到此資源的定義,那么查找失敗。如果操作系統支持回溯(Fallback)邏輯,那么跳到第二步;否則跳到第三步。

2. 操作系統提供一份推薦的語言回溯清單,上面包含了具體語言文化字符串(如en-US)和相應的中立語言字符串(如en)。Resource Manager會根據這份清單去查找相應的衛星程序集和程序集內指定資源是否存在。如果查找失敗,則跳到下一步。

3. 如果上面兩步都失敗,那么查找此具體文化的上一級文化的衛星程序集,也就是地域無關的文化,例如en-US查找失敗,則查找en是否存在。

4. 如果上面3步都失敗的話,那么Silverlight會查看主程序集的NeutralResourcesLanguageAttribute屬性。NeutralResourcesLanguageAttribute是用在程序集上的屬性,它是用來告知ResourceManager,某個程序集使用的語言是什么。ResourceManager會查看此屬性的值,看是否滿足條件。如果主程序集沒有指定此屬性,那么將會使用主程序集中的資源作為默認資源。

5. 如果第4步也查找失敗,那么ResourceManager將使用文化無關(Invarient Culture)的資源。

Silverlight資源文件引用問題所在

在網上查到MSDN的文章說,自打Vista開始,操作系統開始支持這種“Fallback”的邏輯了。通過系統API GetThreadPreferredUILanguages可以獲取操作系統核心推薦使用的語言清單。

由于工程里面并沒有指定zh-Hans的資源文件(于是也就沒有zh-Hans的衛星程序集),也沒有設置主程序集使用的語言是什么(通過NeutralResourcesLanguageAttribute屬性指定)因此在***步的時候查找失敗;這個時候,在我win7的機器上,由于操作系統支持fallback邏輯,因此Silverlight會使用操作系統提供的語言清單去查找,由于我的系統是中文系統,因此清單上***項肯定是zh-CN,接下來的猜測應該是en-US和en(老美搞的操作系統嘛,當然要把自家語言排前一點了)。查找zh-CN肯定又失敗,但是查找en卻能夠找到,因此就出現了不管你參數中輸入什么語言文化字符串,都會顯示英文。

而在其他低版本的windows上,因為操作系統不支持這份清單,那么Silverlight始終沒有辦法找到zh-Hans相關的衛星程序集,而主程序集又沒有顯式的設置語言,因此ResourceManager就會使用主程序集里面的資源文件,也就是中文。

這就是為什么在低版本windows上,亂輸入語言,顯示的默認是中文,而在Vista等高版本windows上,默認顯示的是英文的緣故。

再插一句,如果在主程序集中顯式設置了NeutralResourcesLanguageAttribute為zh-Hans,然后在低版本的windows上訪問此應用程序的時候輸入例如fr等不支持的語言,那么Silverlight將會使用語言無關的資源(語言無關的資源具體被定義在哪不是很確定,可能是dotnet類庫,也可能是本地操作系統),如果該語言無關的資源沒有定義,則ResourceManager得到的是空字符串。因為此時ResourceManager就不會把主程序集里的資源當作最終Fallback的資源了。

解決Silverlight資源文件引用問題的辦法

經過上面的分析,解決問題的辦法已經很清楚了,要么再添加一個zh-Hans的資源文件,要么顯式的使用NeutralResourcesLanguageAttribute通知ResourceManager,主程序集使用的資源語言是zh-Hans。

責任編輯:曹凱 來源: CSDN
相關推薦

2009-12-31 15:28:02

Silverlight

2010-01-04 13:15:33

跨域引用Silverl

2010-01-04 15:27:45

Silverlight

2011-06-20 14:18:27

Qt 資源 文件

2009-12-28 11:23:38

WPF資源文件

2009-12-31 14:12:40

Silverlight

2009-10-29 16:01:54

VB.NET資源文件

2009-12-21 10:19:05

Silverlight

2013-06-17 17:02:15

Windows PhoWP開發資源文件

2016-10-10 08:56:36

程序員重寫重構

2009-12-31 16:44:53

Silverlight

2009-08-21 16:13:27

C#讀取資源文件

2012-02-03 09:55:06

Delphi

2011-08-15 14:47:28

Cocoa嵌入資源文件

2009-12-31 15:08:22

Silverlight

2009-12-30 09:55:51

Silverlight

2010-02-26 17:51:16

Silverlight

2013-07-30 12:30:57

Windows PhoWindows Pho

2009-06-02 14:21:04

eclipse資源文件eclipse中文

2009-08-28 16:08:28

C#利用資源文件
點贊
收藏

51CTO技術棧公眾號

精品国产免费人成电影在线观看四季 | 色哦色哦哦色天天综合| 无遮挡亚洲一区| 91亚洲一区| 久久久久久久av| 女生影院久久| 日韩精品影音先锋| 黄色的视频在线免费观看| 国产精品的网站| 精品人妻一区二区三区四区在线 | 污视频在线观看免费| 国产婷婷色一区二区三区| 亚洲精品欧美精品| 亚洲女人av| 国产成人精品免费视频大全最热| 国产一区二区观看| 国产69精品久久久久9| 国产电影一区| 操91在线视频| 欧美日本三级| 欧美丰满老妇厨房牲生活| 欧美一级网址| 久久精品国产99国产精品澳门| 国产精品一区二区av影院萌芽| 精品国产污网站| 国产网友自拍视频导航网站在线观看 | 波多野结衣中文在线| 欧美三级电影一区| 国产福利在线视频| 欧洲激情一区二区| 青青青草网站免费视频在线观看| 五月天网站亚洲| 日韩精品一二| 在线不卡中文字幕| 国产淫片在线观看| 精品少妇一区二区三区视频免付费| 黄色免费在线观看| 精品日韩99亚洲| 依依综合在线| 久久视频国产精品免费视频在线| 日韩av资源在线| 国产精品欧美一区喷水| 啦啦啦在线视频免费观看高清中文| 一区二区三区美女视频| 日韩av免费观影| 欧美一级二级三级乱码| 99riav视频在线观看| 在线日韩第一页| 九色丨蝌蚪丨成人| 成人免费xxxxx在线观看| 欧美日韩一区二区三区四区在线观看| 精品欧美一区二区久久久伦| 欧美影视一区二区| 成人黄色在线网站| 综合久久给合久久狠狠狠97色 | 91麻豆国产自产在线观看| 国产精品视频白浆免费视频| 日韩伦理电影网站| 亚洲а∨天堂久久精品9966 | 男女羞羞在线观看| 色噜噜狠狠狠综合曰曰曰88av| 天堂va欧美ⅴa亚洲va一国产| 欧美做受高潮1| 亚洲精品二区三区| 日韩激情视频| 26uuu色噜噜精品一区| 骚视频在线观看| 欧美一级久久久| 中文字幕一区日韩精品| 91精品黄色| 国产99久久精品| 制服黑丝国产在线| 亚洲第一页自拍| 国产一区二区三区四区| 日韩一区不卡| 国产精品少妇自拍| 秋霞午夜在线观看| 久久九九国产精品怡红院| 国产精品久久久久无码av| 国产精品99久久久久久大便| **欧美大码日韩| aa级大片免费在线观看| 日本国产精品视频| 蜜臀精品一区二区三区在线观看 | 久久成人18免费网站| 欧美国产另类| 欧美一级免费播放| 精品久久久久久久久久久久| 成人bbav| 91亚洲精华国产精华| 97精品电影院| 国产精品久久久久久福利| 97高清免费视频| 日韩精品视频网站| 国产成+人+亚洲+欧美+综合| 亚洲精品一区二区在线| 亚洲精品一二三区区别| 日本激情综合网| 亚洲九九九在线观看| 一区视频在线| 色网在线视频| 97精品国产91久久久久久| 国产麻豆精品95视频| free性欧美hd另类精品| 国产suv精品一区二区三区88区| 国产91高潮流白浆在线麻豆 | 高清一区二区三区av| 欧美少妇一区| 欧美午夜丰满在线18影院| 果冻天美麻豆一区二区国产| 真人抽搐一进一出视频| 精品电影一区二区| 1024日韩| 污视频在线观看网站| 91国内产香蕉| 韩国视频一区二区| 国产视频在线看| 国产精品视频精品| 成人av电影在线播放| 爱情电影社保片一区| 99视频网站| 中国av一区二区三区| 黄色成年人视频在线观看| 成人免费看吃奶视频网站| 成人涩涩免费视频| 99免在线观看免费视频高清| 91av视频在线播放| 成人短视频下载| 你懂的视频在线观看| 国产伦精品一区二区三区精品视频 | 成人软件在线观看| 久久av一区二区三区亚洲| 一区二区高清免费观看影视大全 | 欧美日韩少妇| 国产91久久久久蜜臀青青天草二| 一区二区三区视频免费| 亚洲一区国产| 全色精品综合影院| 日本人成精品视频在线| 成人黄色国产精品网站大全在线免费观看 | 51午夜精品视频| 极品少妇xxxx精品少妇| 国产在线精彩视频| 国产在线资源一区| 亚洲情趣在线观看| 亚洲一区二区电影| 春日野结衣av| 91国产视频在线| 99精品视频在线观看免费| 蜜臀av在线播放| 欧美精品亚洲精品| 欧美日本国产一区| 中文字幕一区二区三区乱码图片 | 亚洲精品在线观看视频| 免费日韩精品中文字幕视频在线| av网址在线看| 日韩欧美高清视频| 亚洲乱码久久| 伊人在线视频| 一区二区三区四区在线视频 | 久久99国产精品久久99| 日本片在线观看| 国产精品50p| 欧美激情a在线| av成人资源| 国产伦精品一区二区三区视频金莲| 在线观看免费视频高清游戏推荐| 欧美激情网站| 少妇精品久久久久久久久久| 欧美精品日韩一本| 亚洲一区区二区| 91大神xh98hx在线播放| 成人美女av在线直播| 日韩一区二区三区在线| 视频一区二区不卡| 国产中文字幕在线播放| 成人午夜又粗又硬又大| 99久久综合| 欧美aa在线| 老司机在线永久免费观看| 91se在线| 日本大臀精品| 亚洲熟妇av日韩熟妇在线| 亚洲欧美精品伊人久久| 一区二区三区在线影院| 美女一区二区视频| 久久av综合| 精品91久久| 国产午夜久久久久| 国产精品毛片在线| 免费电影日韩网站| 日韩中文在线字幕| 日本成人激情视频| 日韩成人久久久| 国产日韩成人精品| 久久男人av| 精品人人视频| 亚洲图片欧美| 成人av免费看| 久久久精品人体av艺术|