【问题标题】:How handle Business Layer error localization when there are separate UI and API front ends?当有单独的 UI 和 API 前端时,如何处理业务层错误本地化?
【发布时间】:2011-06-29 16:46:48
【问题描述】:

我的应用程序同时具有 UI (ASP.Net) 和 WebServices API (WCF) 前端,它们都调用单个业务层。我们使用自定义异常类型来传达来自业务层的错误,这些错误可以安全地显示给最终用户。例如,如果用户尝试执行超出其凭据的操作,则业务层将抛出新的 FriendlyException(“您没有权限”)。 UI 层然后处理此异常并将此消息显示给最终用户。如果 API 进行了此调用,则 FaultException 数据中将显示“您没有权限”消息。

我们现在遇到的问题是我们需要开始本地化所有这些消息。当前的想法是让 BusinessLayer 抛出静态字符串(“NO_PERMISSION_ERROR”),UI 和 API 处理程序将使用这些字符串在各自的资源文件中查找本地化字符串。唯一的缺点是我们的 API 本地化和 UI en-US 本地化基本相同且重复。我们可以通过使用其他模式来避免这种情况,还是我们走在正确的轨道上?

谢谢, J

【问题讨论】:

    标签: c# exception localization


    【解决方案1】:

    您绝对是在正确的轨道上。您需要一些需要在运行时解析为已翻译消息的标识符(静态字符串)。

    理论上,您可以将“getLocalizedMessage(CultureInfo ci)”之类的内容添加到自定义异常类中,但这不适用于分布式应用程序。

    只要坚持你已经提出的。 L10n 有时需要一些冗余,但您无能为力。

    【讨论】:

      猜你喜欢
      • 2019-05-13
      • 2011-12-04
      • 2011-07-10
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多