【问题标题】:C# writing to a .resx fileC# 写入 .resx 文件
【发布时间】:2013-05-17 10:36:20
【问题描述】:

我需要使用用户提交的值写入我的 resx 文件。

基本上用户输入一个值,程序必须检查 resx 文件以查看该数字是否存在。如果该编号不存在,则将其添加到文件中。

这是我到目前为止的代码,但它似乎不起作用:

if (!DictOfSyndicates.Contains(syndicateNumberTextBox.Text))
{
    try
    {
        var resxWriter = new ResXResourceWriter(@".\Syndicates.resx");
        resxWriter.AddResource("test", syndicateNumberTextBox.Text);
        resxWriter.Close();
        MessageBox.Show(@"Sydicate "+syndicateNumberTextBox.Text +@" Added Successfully.");

    }
    catch (FileNotFoundException caught)
    {
        MessageBox.Show(@"Source: " + caught.Source + @" Message: " + caught.Message);
    }   
}
else
{
    MessageBox.Show(@"Syndicate already exists");
}

有人知道出了什么问题吗?

【问题讨论】:

  • 你有什么异常吗?我们应该如何猜测出了什么问题?
  • 我没有得到任何异常。当我单步执行它时,它进入 if try 块并说它添加了它,但是,DictOfSyndicates 没有显示它正在添加。 DictOfSyndicates 确实会读取 .res 文件,因为它会拾取已经存在的数据
  • 您是从 Visual Studio 还是在 Debug 文件夹中检查项目中的文件?
  • @shrytyzet 我要写入的文件是 Sydicates.resx,它现在位于解决方案资源管理器中,就像所有类和东西所在的位置一样。仍然没有得到这个工作。
  • 我认为文件的路径不正确。在您的情况下,bin 文件夹中应该有一个 Syndicates.resx。尝试使用绝对路径。

标签: c# add resx


【解决方案1】:

您需要在调用 Close 之前调用 Generate 方法来写出您的资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-02
    • 2016-04-09
    • 2013-02-08
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多