C# 当有单独的UI和API前端时,如何处理业务层错误定位?

C# 当有单独的UI和API前端时,如何处理业务层错误定位?,c#,exception,localization,C#,Exception,Localization,我的应用程序有一个UI ASP.Net和一个WebServices API WCF前端,两者都调用一个业务层。我们使用自定义异常类型将业务层中的错误安全地显示给最终用户。例如,如果用户试图执行超出其凭据范围的操作,业务层将抛出一个新的FriendlyException您没有权限。然后UI层处理此异常并向最终用户显示此消息。如果API进行了此调用,则FaultException数据中会出现“You not have permission”消息 现在的问题是我们需要开始本地化所有这些消息。当前的想法

我的应用程序有一个UI ASP.Net和一个WebServices API WCF前端,两者都调用一个业务层。我们使用自定义异常类型将业务层中的错误安全地显示给最终用户。例如,如果用户试图执行超出其凭据范围的操作,业务层将抛出一个新的FriendlyException您没有权限。然后UI层处理此异常并向最终用户显示此消息。如果API进行了此调用,则FaultException数据中会出现“You not have permission”消息

现在的问题是我们需要开始本地化所有这些消息。当前的想法是让BusinessLayer抛出静态字符串NO_PERMISSION_错误,UI和API处理程序将使用该错误在各自的资源文件中查找本地化字符串。唯一的缺点是我们的API本地化和UI en US本地化本质上是相同和重复的。我们是否可以通过使用其他模式来避免这种情况,或者我们是否走上了正确的道路

谢谢,
你肯定走对了方向。您需要一些标识符,一个静态字符串,需要在运行时解析为已翻译的消息

从理论上讲,您可以向自定义异常类中添加诸如getLocalizedMessageCultureInfo ci之类的内容,但这在分布式应用程序中效果不佳

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