ASP.NET在运行时创建资源

时间:2012-09-01 21:24:11

标签: asp.net resources copy multilingual

我正在开发一个具有多语言功能的ASP.NET webapp,允许网站管理员在运行时创建新语言。

我想的方法如下:

  1. 用户选择一种可用(未创建)语言。
  2. 当用户确认时,应用程序会自动复制一组现有资源,将文件名替换为新文化。例如:default.aspx.en-us.resx到default.aspx.es-ar.resx。
  3. 用户编辑最近创建的资源。
  4. 目前我遇到了第2步的麻烦。我已经实现了复制资源,但随后忽略了这些新资源。我认为这是因为新资源未包含在正在运行的程序集中,因此被忽略。

    当我在本地项目中测试以下代码时,我必须手动将新资源添加到解决方案中,然后重新编译才能使其正常工作。

    有谁知道如何使这项工作?

    这是上述副本的代码。

    string _dir = path_ + "App_LocalResources\\\\";
    DirectoryInfo _dirInfo = new DirectoryInfo(_dir);
    
    foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) {
    _file.CopyTo(_dir + _file.Name.Replace("en-us", idioma_.Cultura));
    
    }
    
    string _dir2 = path_ + "App_GlobalResources\\\\";
    _dirInfo = new DirectoryInfo(_dir2);
    
    foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) {
    _file.CopyTo(_dir2 + _file.Name.Replace("en-us", idioma_.Cultura));
    }
    

    非常感谢你。

1 个答案:

答案 0 :(得分:0)

创建或编辑资源文件的方式与读取数据的方式不同。 为了创建或编辑资源文件,您应该像创建或编辑XML文件一样,因为资源文件具有特定的结构化XML元素。

也许这个article会帮助你......