当前位置:编程学习 > C#/ASP.NET >>

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

   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文件却什么也看不到,看不到我之前加的数据。这是为什么,他们存哪了啊?

--------------------编程问答-------------------- 你确认 Write执行正确,并且Resource1.resx就是你的项目资源文件吗 --------------------编程问答-------------------- 下面代码运行正常

            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
            }
--------------------编程问答-------------------- 我用程序读也是能读到的,但是在设计管理器那样打开,Resource1.resx这里头啥也没有,我截图了 --------------------编程问答--------------------
引用 2 楼  的回复:
下面代码运行正常
C# code

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


以我截图的方式来打开资源文件能看到添加的数据么 --------------------编程问答-------------------- 搞定!应该用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模式,想要代码等写完后再改回来 --------------------编程问答--------------------

        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是资源文件
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,