【问题标题】:Can I edit Resource file at runtime我可以在运行时编辑资源文件吗
【发布时间】:2012-11-04 13:07:26
【问题描述】:

我有一个 WCF 服务,它使用 JSON 响应。我需要创建一个可以在生产服务器上编辑的语言文件。如果我需要回收应用程序池,没问题。

我正要使用资源文件,但我担心最终用户无法编辑它。 我不需要务实地编辑它,最终用户将通过在记事本中打开文件来编辑它,而无需重新编译应用程序。

你有什么建议?

谢谢

【问题讨论】:

  • 资源文件本质上是底层的 XML 文件,因此在运行时创建一个很容易。如果您在运行时编辑所述文件,则需要确保没有其他进程也在写入该文件,否则您将收到异常。

标签: c# asp.net .net wcf


【解决方案1】:

是的,您可以使用 ResXResourceWriter 类。

如果您还需要生成 Designer.cs 文件,请参阅此问题Programmatically generate Designer.cs for resx file (ResXResourceWriter/ResXResourceReader)

如果您需要修改现有的 resx 文件,请参阅此问题Modifying .resx file in c#

【讨论】:

  • 我不需要务实地编辑它,最终用户将通过在记事本中打开文件来编辑它
【解决方案2】:

根据 MSDN,您可以在运行时添加新资源:

您可以在获得新文化后逐步添加资源 部署了一个应用程序。因为后续发展 特定于文化的资源可能需要大量时间, 这允许您首先发布您的主应用程序,然后交付 日后提供特定于文化的资源。

http://msdn.microsoft.com/en-us/library/sb6a8618%28v=vs.110%29.aspx

我认为编辑当前资源也可以。

【讨论】:

    【解决方案3】:

    您的用户应该能够毫无问题地编辑文件,资源文件是可以在记事本或任何文本编辑器中打开的 XML 文件,他们甚至可以在 Excel 中打开它并获得可以轻松编辑的多个列。

    这将需要回收您的应用程序池,但您对此持开放态度。

    [编辑] 如果你的资源文件被标记为内容,你不需要像我之前提到的那样重新编译,但你的应用程序池将被回收以获取更改

    【讨论】:

    • 这样做的目的是避免重新构建和重新部署应用程序。
    【解决方案4】:

    我不确定,但似乎用户无法在运行时使用记事本编辑资源文件,并且应用程序应该重建以使更改生效。

    设置用户范围的文件可以完成这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多