如何以编程方式检索 EPi Server 网站的所有启用语言的列表?
Posted
技术标签:
【中文标题】如何以编程方式检索 EPi Server 网站的所有启用语言的列表?【英文标题】:How to retrieve a list of all enabled languages for the EPi Server website programmatically? 【发布时间】:2013-10-15 07:40:23 【问题描述】:我只是想获取 EPi 服务器网站的所有启用语言的列表(在管理模式下的“管理网站语言”面板中启用),并且最好还能够检索到标志图标的路径,当然还有文化名称/ID。
我正在使用 EPiServer 6 R2,所以如果代码适用于该版本,那就太好了。为我指明正确的方向也很棒。
【问题讨论】:
【参考方案1】:你是说
ServiceLocator.Current.GetInstance<ILanguageBranchRepository>().ListEnabled();
但是您应该真的根本不使用 ServiceLocator,而是将 ILanguageBranchRepository 作为构造函数参数,该参数将由 StructureMap 自动解析。这为您的类提供了其依赖项的清晰列表,并使单元测试变得更加容易,因为您不必模拟 ServiceLocator。
【讨论】:
是的,但问题是 EPi6 没有实现服务定位器【参考方案2】:在 EPiServer.DataAbstraction 中有 LanguageBranch.ListEnabled()。
看看这个文件,看看它是如何在管理员模式下绑定的: C:\Program Files (x86)\EPiServer\CMS\6.1.379.0\Application\UI\CMS\Admin\EditLanguageBranches.aspx
【讨论】:
注意:不是您问题的答案,但您可以像这样查看起始页来查找可用语言,它通常被翻译成所有语言:PageDataCollection languagesForCurrentPage = EPiServer.DataFactory.Instance.GetLanguageBranches (PageReference.StartPage); 干杯。EPiServer.DataAbstraction.LanguageBranch.ListEnabled()
方法正是我想要的。我会标记您的问题,但也请更新问题以上是关于如何以编程方式检索 EPi Server 网站的所有启用语言的列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MongoDB 中以异步方式检索基于推送的通知的信息