Как получить поле комментария или описания .resx файл С#

Я хотел бы получить поле описания в поле .resx с помощью С#. На данный момент я могу получить поле «значение», используя:

public static String f_str_textoRecurso(String p_str_archivo, String p_str_key)
{
    System.Resources.ResourceManager t_rsm = 
      new System.Resources.ResourceManager("Resources." + p_str_archivo,
        System.Reflection.Assembly.Load("App_GlobalResources"));

    String t_str = t_rsm.GetString(p_str_key);
    if (t_str != null)
    {
      if (p_str_key.Equals(""))
      {
        t_str = p_str_archivo.Remove(0, 4) + "." + p_str_key; 
      } 
    }
    else
    {
      t_str = p_str_archivo.Remove(0, 4) + "." + p_str_key; 
    }
    return t_str;
}

Но мне также нужно получить комментарий. Есть идеи?

введите здесь описание изображения

введите здесь описание изображения


person krlosruiz    schedule 20.03.2018    source источник
comment
К сожалению, просто вы не можете. Скомпилированные файлы .resource не содержат поле description, которое есть в исходном файле .resx. Если вы пытаетесь сделать это для создания удобных для пользователя документов (например, для переводчиков), вам следует работать с файлами .resx.   -  person Adriano Repetti    schedule 20.03.2018
comment
Вы не можете получить его из ResourceManager, точно так же, как вы не можете получить // комментарий из исходного кода. Вы можете получить его из ResXResourceReader, но отправка файлов .resx не является нормальной. Конечно, есть лучший способ добиться того, чего вы хотите, но вы не сможете получить хороший ответ, если не объясните, почему.   -  person Hans Passant    schedule 20.03.2018
comment
Всем спасибо! Я решил прервать миссию и найти другую альтернативу   -  person krlosruiz    schedule 21.03.2018


Ответы (1)


Ну вот:

    public string ReadResourceComment(XmlDocument doc, string FieldName)
    {
        if (doc != null && !string.IsNullOrEmpty(doc.InnerXml))
        {
            return doc.SelectSingleNode("root/data[@name='" + FieldName + "']")["comment"].InnerText;
        }

        return string.Empty;
    }

Вот как это использовать:

  1. Прочитайте свой файл (это документ XML)
  2. Передайте, какой узел вы хотите прочитать его комментарий

Пример:

        XmlDocument doc = new XmlDocument();
        string filePath = HttpContext.Current.Server.MapPath("~/[FileName].resx");
                    doc.Load(filePath);

        string comment = ReadResourceComment(doc, "[NodeName]");
        // In your case, use ( ReadResourceComment(doc, "ot_desdecontrato");
person Khaled Saleh    schedule 08.10.2018