【问题标题】:Can the resource be swapped at runtime in asp.net?资源可以在运行时在 asp.net 中交换吗?
【发布时间】:2009-10-05 21:33:16
【问题描述】:

我正在开发一个使用 mvc 1.0 用 asp.net 编写的多语言网站。 我被要求从资源文件切换到数据库,以允许我的客户更改翻译字符串而无需重新启动服务。

我想知道是否可以在运行时将翻译与标准资源文件交换。

问题:

如何让我的客户在运行时替换翻译而无需停机?

这里是如何解决问题的原始想法。欢迎任何想法:

  • 在资源卫星程序集切换后使用 IIS 优雅地重新启动应用程序。优雅地意味着所有新请求都使用更新的程序集。 (汇编文件不是被锁定了吗?)
  • 终于启动了我自己的资源提供程序(读取 xml 文件)并将其插入到资源管理器中。 (我从来没有这样做过,所以欢迎任何帮助)

【问题讨论】:

  • 转换字符串多久更改一次?我的猜测并不经常......

标签: asp.net asp.net-mvc


【解决方案1】:

是的,您可以使用自己的字符串资源查找格式,而不是使用 .NET 的格式。以前做过,我相信还会再做一次。

明显的负面影响是它与标准资源无关,因此在工具、性能等方面您只能靠自己。

【讨论】:

  • 是否可以在运行时重新加载卫星 dll?这将使我能够坚持使用标准资源
  • 一般来说,不可能卸载任何程序集,除非将其加载到 AppDomain 中,然后删除整个程序集。考虑到域之间远程处理的开销,我认为这不是一个很好的资源解决方案。话虽如此,一种可能性是使用附属资源程序集作为规范存储,但将它们缓存在字典中。换句话说,将程序集加载到 AppDomain 中,将其复制到本地字典中,然后卸载 AppDomain。两全其美?
猜你喜欢
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多