我只想獲取EPi服務器網站的所有已啓用語言的列表(已在管理員模式的「管理網站語言」面板中啓用),並且最好也能夠檢索到標誌圖標以及文化的路徑名稱/ ID。如何以編程方式檢索EPi服務器網站的所有已啓用語言的列表?
我正在使用EPiServer 6 R2,所以如果代碼適用於該版本,那將是可愛的。指引我朝着正確的方向發展也會很好。
我只想獲取EPi服務器網站的所有已啓用語言的列表(已在管理員模式的「管理網站語言」面板中啓用),並且最好也能夠檢索到標誌圖標以及文化的路徑名稱/ ID。如何以編程方式檢索EPi服務器網站的所有已啓用語言的列表?
我正在使用EPiServer 6 R2,所以如果代碼適用於該版本,那將是可愛的。指引我朝着正確的方向發展也會很好。
在EPiServer.DataAbstraction中有LanguageBranch.ListEnabled()。
看看這個文件,看看它是如何綁定在管理員模式下: C:\ Program Files文件(x86)的\ EPiServer \ CMS \ 6.1.379.0 \應用\ UI \ CMS \管理\ EditLanguageBranches.aspx
你的意思是
ServiceLocator.Current.GetInstance<ILanguageBranchRepository>().ListEnabled();
但是你應該真的不使用的ServiceLocator所有,而是採取ILanguageBranchRepository作爲構造函數的參數將被StructureMap自動解決。這爲您的類提供了一個清晰的依賴關係列表,使您的單元測試變得更加容易,因爲您不必模擬ServiceLocator。
是真的,但是這個問題認爲EPi6沒有實現服務協議 –
注意:不是你的問題的答案,但你可以看看這樣的開始頁面,而不是找到可用的語言,它通常翻譯成所有語言:PageDataCollection languagesForCurrentPage = EPiServer.DataFactory.Instance.GetLanguageBranches(PageReference.StartPage) ; –
乾杯。 'EPiServer.DataAbstraction.LanguageBranch.ListEnabled()'方法完全符合我的要求。我會標記你的問題,但也請更新問題 – kjetilh