Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从资源文件中读取字符串并以编程方式进行编辑_C#_Visual Studio 2010_Resources - Fatal编程技术网

C# 从资源文件中读取字符串并以编程方式进行编辑

C# 从资源文件中读取字符串并以编程方式进行编辑,c#,visual-studio-2010,resources,C#,Visual Studio 2010,Resources,如何读取字符串资源文件?我已经试过了,但是我无法得到它的值。为了以后编辑它,我什么都做不了。我以后如何编辑它?我想用从textbox获得的字符串编辑它的值 Assembly assembly = this.GetType().Assembly; manager = new ResourceManager("StringResources.Strings", assembly); value = manager.GetString("Name"); 为了更改其值,我尝试这样做,但它给我一个错误,

如何读取字符串资源文件?我已经试过了,但是我无法得到它的值。为了以后编辑它,我什么都做不了。我以后如何编辑它?我想用从textbox获得的字符串编辑它的值

Assembly assembly = this.GetType().Assembly;
manager = new ResourceManager("StringResources.Strings", assembly);
value = manager.GetString("Name");
为了更改其值,我尝试这样做,但它给我一个错误,不包含当前的定义。我在windows窗体中尝试这些

Application.Current.Resources["Name"] = "abcd";
请给我一个建议
提前感谢

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

无法在运行时更改资源字符串的原因是资源已编译到可执行文件中。如果对编译的*.exe或*.dll文件进行反向工程,实际上可以在代码中看到字符串。编辑一个已经编译好的可执行文件从来都不是一个好主意(除非你试图破解它),但是当你试图从可执行文件代码中进行编辑时,这显然是不可能的,因为文件在执行过程中被锁定了

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

简而言之,右键单击项目->属性->设置。现在,您将看到一个可以添加、编辑和删除用户设置的表。创建用户设置后,可以按如下方式使用:

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

谢谢你的回复。实际上,我只需要程序中的一个字符串,我想以一种形式进行更改。我该怎么做?通过写入、读取和编辑配置文件,是否可能?为什么需要更改它?这是某种用户设置吗?如果是这样,那么配置文件不仅是可能的,而且是最符合逻辑的方式。对于我的程序,我给出了一个默认值,但用户可以更改它。如何使用配置文件实现此目的?你能给我举个例子吗?我在回答中加了一个详细的解释。请重读一遍。你仍然应该检查提供的链接-它可以给你一些关于这个主题的好信息。谢谢我检查了链接和你的详细答案。我想它对我有用