c# 操作 Resource.resx 资源文件 谢谢大家关注!

wangyue4 2012-07-17 05:06:34
   static void Write()
{

IResourceWriter rw = new ResourceWriter("Resource1.resx");

foreach (var VARIABLE in _countryTranslation)
{
rw.AddResource(VARIABLE.Key.ToString(CultureInfo.InvariantCulture), VARIABLE.Value);
}

rw.Close();
}

_countryTranslation是一个字典,我把它遍历然后添加到资源文件Resource1.resx中。
然后调用自己写的方法可以看到数据显示出来
static void ReadUsingResourceReader()
{
Console.WriteLine("== 使用IResourceReader");
using (IResourceReader rr = new ResourceReader("Resource1.resx"))
{
var iter = rr.GetEnumerator();
while (iter.MoveNext())
Console.WriteLine("键: {0} 值: {1}", iter.Key, iter.Value);
}
}

但是双击Resource1.resx文件却什么也看不到,看不到我之前加的数据。这是为什么,他们存哪了啊?


...全文
747 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xixihaha_2011_098 2012-07-17
  • 打赏
  • 举报
回复

private void ButProjectZH_Click(object sender, EventArgs e)
{
//从项目资源文件中读取 ResourcesTest.Properties.ResourcesZH 同样可以读取到项目资源文件中的值
ResourceManager rm = new ResourceManager("ResourcesTest.Properties.ResourcesZH", Assembly.GetExecutingAssembly());
Labuser.Text = rm.GetString("label");
ButSave.Text = rm.GetString("button");

}


其中,.ResourcesZH是资源文件
wangyue4 2012-07-17
  • 打赏
  • 举报
回复
搞定!应该用ResXResourceWriter这个类还要添加System.Windows.Forms引用才能识别

using (ResXResourceWriter rw = new ResXResourceWriter("Resource.resx"))
{
foreach (var VARIABLE in _countryTranslation)
{
rw.AddResource(VARIABLE.Key.ToString(CultureInfo.InvariantCulture), VARIABLE.Value);
}

}

Resource.resx文件设置成no code generation模式,想要代码等写完后再改回来
wangyue4 2012-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

下面代码运行正常
C# code

System.Resources.IResourceWriter rw = new System.Resources.ResourceWriter("aa.resx");
rw.AddResource("aa", "abc");
rw.Close();
Syst……
[/Quote]

以我截图的方式来打开资源文件能看到添加的数据么
wangyue4 2012-07-17
  • 打赏
  • 举报
回复
我用程序读也是能读到的,但是在设计管理器那样打开,Resource1.resx这里头啥也没有,我截图了
bdmh 2012-07-17
  • 打赏
  • 举报
回复
下面代码运行正常

System.Resources.IResourceWriter rw = new System.Resources.ResourceWriter("aa.resx");
rw.AddResource("aa", "abc");
rw.Close();
System.Resources.IResourceReader read = new System.Resources.ResourceReader("aa.resx");
System.Collections.IDictionaryEnumerator en = read.GetEnumerator();
while (en.MoveNext())
{
//do something
}
bdmh 2012-07-17
  • 打赏
  • 举报
回复
你确认 Write执行正确,并且Resource1.resx就是你的项目资源文件吗

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧