如何以编程方式检索 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 网站的所有启用语言的列表?的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C:以编程方式单击网站按钮

如何在 MongoDB 中以异步方式检索基于推送的通知的信息

如何以编程方式检索所有查询的查询文本

如何以编程方式从 plist 添加和检索数据

如何以编程方式从照片应用程序中检索所有照片/视频并将其复制到我的应用程序?

如何以编程方式检索对 iOS 照片流中的照片所做的评论?