domain-driven-design - 洋葱架构中的资源文件放在哪里?

标签 domain-driven-design embedded-resource resx onion-architecture

2 部分问题...我的解决方案中使用了几个资源文件 (.resx),主要用于字符串的翻译。例如,Errors.resx、Validation.resx 和 Enums.resx。

第 1 部分:如果我没有 Enums 资源文件,我会假设我应该将所有资源文件放在 UI 层中,可能在它自己的程序集中(比如 'Company.App1 .MVCApp.Resources') 并从 Web 应用程序 (Company.App1.MVCApp) 中引用它...我将资源文件放在 UI 层中是否正确?

第 2 部分:Enums.resx 文件包含与枚举成员相关的描述性字符串(使用 Description 属性),在我的 UI 中,有时我需要访问域服务中的描述性字符串他们的翻译。我考虑过将它存储在核心/域层的某个地方,可能是像 Company.App1.Core.Resources 这样的地方......?或者我应该在核心层创建一个抽象,然后在基础设施层的某个地方实现 ResourcemManager 以坚持正确的洋葱架构......?

最佳答案

第 1 部分:在我目前正在处理的应用程序中,每个关注点(枚举、错误...)没有一个 resx 文件,而是每个项目有一个 resx 文件。例如,如果您接收错误消息,纯 UI 错误消息会进入 UI resx 文件,域错误消息会进入 Domain resx,等等。 IMO 资源文件最好放在离使用本地化字符串的代码最近的地方。在 UI 项目中拥有大部分本地化文件会将本地化与应用程序的呈现方式紧密耦合,如果您想在主 UI 以外的其他上下文中重用本地化,这可能会出现问题。

第 2 部分:如果您只需要访问域层中的本地化枚举成员,那么您可以在域层中有一个派生自或使用 System.Resources.ResourceManager 的特定助手 找到本地化的字符串。但是,我发现在一个独立层中使用某种通用的本地化助手会很方便,该层集中所有比 Properties.Resources.[...] 更复杂的本地化逻辑,并且如果需要,能够在您的解决方案的所有 resx 文件中搜索。

关于domain-driven-design - 洋葱架构中的资源文件放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12080469/

相关文章:

c# - MVC中划分资源文件的最佳实践

web-services - DDD : In which layer should i place webservices (both to serve requests and webreferences to external ones)?

css - 在 JavaFX 8 中,我可以从字符串提供样式表吗?

java - 构建时资源图像未包含在 jar 中

Java:无法将 JPG 图像作为资源加载到 JAR 文件中

.net - 是否可以在 .resx 资源文件中定义字符串数组?

domain-driven-design - 您使用什么方法来识别域驱动设计中的聚合根?

asp.net-mvc - 可以在域对象上使用属性和 IValidatableObject 吗?

java - 服务层和领域模型的问题

asp.net-mvc - 有没有办法用资源文件中的值动态填充下拉列表?