【问题标题】:Reading string from resource file and editing it programmatically从资源文件中读取字符串并以编程方式对其进行编辑
【发布时间】:2013-12-25 12:51:06
【问题描述】:

如何读取字符串资源文件?我已经尝试过了,但我无法获得价值。为了稍后编辑它,我无能为力。我以后如何以编程方式对其进行编辑?我想用从文本框中得到的字符串来编辑它的值。

Assembly assembly = this.GetType().Assembly;
manager = new ResourceManager("StringResources.Strings", assembly);
value = manager.GetString("Name");

为了更改它的值,我尝试这样做,但它给了我一个错误,不包含 Current 的定义。我在 windows 窗体中尝试这些。

Application.Current.Resources["Name"] = "abcd";

请给我一个建议 提前致谢

【问题讨论】:

    标签: c# visual-studio-2010 resources


    【解决方案1】:

    您不能编辑资源字符串。如果您想存储一些可以通过编程方式更改的字符串,您应该使用配置文件,或者甚至更好的用户或应用程序设置(实际上是配置文件的包装器)。

    您不能在运行时更改资源字符串的原因是该资源已编译到您的可执行文件中。如果您对编译后的 *.exe 或 *.dll 文件进行反向工程,您实际上可以在代码中看到您的字符串。编辑已编译的可执行文件绝不是一个好主意(除非您试图破解它),但是当您尝试从可执行代码中执行此操作时,这是不可能的,因为文件在执行期间被锁定。

    您可以阅读有关用户设置的更多信息on MSDN。 您应该查看该链接,因为它包含有关如何通过 GUI 设置设置的屏幕截图的详细说明。

    简而言之,您右键单击您的项目->属性->设置。现在,您将看到一个表格,您可以在其中添加、编辑和删除用户设置。创建用户设置后,您可以像这样使用它:

    //Read
    String settingValue = Settings.Default.TestSetting;
    //Write
    Settings.Default.TestSetting = "newVal";
    //Write settings to disk
    Settings.Default.Save();
    

    【讨论】:

    • 感谢您的回复。实际上我在程序中只需要一个字符串,我想以一种形式进行更改。我怎样才能做到这一点?用写读和编辑配置文件,可以吗?
    • 为什么需要改变它?它是某种用户设置吗?如果是这样,那么配置文件不仅是可能的,而且是最合乎逻辑的方式。
    • 是的,类似的。对于我的程序,我给出了一个默认值,但用户可以更改它。我如何为此目的使用配置文件?你能给我举个例子吗?
    • 我已经为我的答案添加了详细的解释。请重新阅读。而且您仍然应该检查提供的链接 - 它可以为您提供有关该主题的一些有用信息。
    • 谢谢,我已经检查了链接和您的详细答案。我认为它对我有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2014-12-20
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多