2013-10-15 21 views
5

Sadece EPi Server web sitesinin etkinleştirilmiş dillerinin bir listesini (Yönetici modunda "Web Sitesi Dillerini Yönet" panelinde etkinleştirildi) ve tercihen bayrak simgesinin ve elbette kültürün yolunu bulabilmeyi istiyorum./ID adı.EPi Server web sitesi için etkinleştirilmiş tüm dillerin bir listesi nasıl programlı olarak alınır?

EPiServer 6 R2 kullanıyorum, kod bu sürüm için çalışıyorsa güzel olurdu. Beni doğru yönde işaret etmek de harika olurdu.

cevap

7

EPiServer.DataAbstraction'da, LanguageBranch.ListEnabled() var. : C: \ Program Files (x86) \ EPiServer \ CMS \ 6.1.379.0 \ Application \ UI \ CMS \ Yönetici \ EditLanguageBranches.aspx

o Yönetici modunda kaçınılmazdır görmek için bu dosyanın bir göz atın

+1

Not: Sorunuzun cevabı değil, ancak kullanılabilir dilleri bulmak yerine başlangıç ​​sayfasına bakabilirsiniz, genellikle tüm dillere çevrilir: PageDataCollection languagesForCurrentPage = EPiServer.DataFactory.Instance.GetLanguageBranches (PageReference.StartPage) ; –

+0

Şerefe. EPiServer.DataAbstraction.LanguageBranch.ListEnabled() 'yöntemi, tam olarak aradığım şeyi yaptı. Sorunuzu işaretleyeceğim, ancak lütfen aynı zamanda – kjetilh

8

sen gerçekten hiç ServiceLocator kullanarak olmayacak ve bunun yerine otomatik StructureMap tarafından çözüleceğine yapıcı parametre olarak bir ILanguageBranchRepository almalı Ancak

ServiceLocator.Current.GetInstance<ILanguageBranchRepository>().ListEnabled(); 

demek. Bu, sınıfınıza bağımlılıklarının açık bir listesini verir ve ServiceLocator'la dalga geçmek zorunda kalmayacağınız için üniteyi çok daha kolay bir şekilde test eder.

+0

Doğru sorusunu da güncelleyelim, fakat soru, servis sağlayıcıyı uygulamayan EPi6'yı düşündü –

İlgili konular