首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >行业特定资源的实现

行业特定资源的实现
EN

Stack Overflow用户
提问于 2011-05-02 08:49:06
回答 2查看 84关注 0票数 1

我们有一个程序,它在一个特定的行业中使用,并具有特定于该行业的字符串。我们现在的情况是,它可以在另一个行业使用,我们希望在不复制我们的代码库的情况下为该行业定制字符串。

问题空间看起来与本地化非常相似。我们是否将为每个行业提供单独的资源集合?如果是这样,我们什么时候选择使用哪个程序集,是在安装时执行还是需要在编译时执行?我们如何使独立的资源程序集保持同步,以便在每个资源程序集中出现相同的消息键?

做这件事最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-02 17:28:21

让我换个说法:你有一个工业应用程序,可以在不同的行业中使用,唯一不同的是资源(即字符串,布局,可能是图像和声音)。另一个代码保持相同的

在这种情况下,您的问题不仅仅是相似,它实际上与本地化是相同的。因此,您可以使用Satellite Assemblies

现在,您可以决定是将这样创建的应用程序单独打包,还是将一个应用程序与两个问题空间一起发布。

对我来说,第一种方案似乎更现实--你需要决定在编译时包含哪个.resx文件(即在项目准备期间,你将用问题空间资源覆盖现有资源,然后继续编译,这应该会给你带来不同风格的应用程序;在这种情况下,我也会修改它们的名称)。

后者需要您在运行时手动实例化ResourceManager以读取有效的附属程序集-它可能基于某个配置文件。这意味着更多的工作(你实际上需要修改你的代码),你最终会同时发布你的应用程序的两种风格,也就是你将无法控制你的客户将如何使用它。从业务的角度来看,这可能有点危险。

编辑(自我注意:仔细阅读整个问题)

不知何故,我设法错过了安装时间与编译时间。我相信编译时间就是答案,因为我在配置驱动的开关一节中给出了同样的原因:你会打包资源,而你将无法控制客户如何使用它。一些聪明的家伙会弄明白的,这一点是肯定的。

票数 1
EN

Stack Overflow用户

发布于 2011-05-02 08:51:48

我建议使用包含键值对的属性文件。如果您当前具有特定于行业的字符串,请将其替换为对属性文件的调用。显然,您会将这些字符串缓存到某个容器中。我不知道C#容器-- Java会使用java.util.Properties

代码语言:javascript
复制
aerospace.props:
INDUSTRY_NAME=aerospace
INDUSTRY_START_YEAR=1903


manufacturing.props:
INDUSTRY_NAME=manufacturing
INDUSTRY_START_YEAR=1600
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5852541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档