2015-08-06 2 views
0

My Global Resx файл с именем Appointment.resxMVC Global Resource FIle

enter image description here

Я доступе значений ключа в C#, используя следующий код:

string str = Resources.Appointment.AppointmentID; 

Теперь, мой проблема заключается в том, как получить значение «Комментарии» с помощью ключа.

Примечание: Комментарии - это не что иное, как столбец в файле resx.

Пожалуйста, помогите. Спасибо.

+0

Просто интересно, почему вы хотели бы использовать поле «Комментарии»? Предполагается, что это ссылка на Ключ, поэтому, когда вы смотрите на комментарий, он должен рассказать вам о ключе. например где он используется. –

ответ

0

Вы должны быть в состоянии получить комментарий через ResXDataNode класс: http://msdn.microsoft.com/en-us/library/system.resources.resxdatanode.aspx

Это код:

// Enumerate the resources in the file. 
     ResXResourceReader rr = new ResXResourceReader(resxFilename); 
     rr.UseResXDataNodes = true; 
     IDictionaryEnumerator dict = rr.GetEnumerator(); 
     while (dict.MoveNext()) { 
     ResXDataNode node = (ResXDataNode) dict.Value; 
     Console.WriteLine("{0,-20} {1,-20} {2}", 
          node.Name + ":", 
          node.GetValue((ITypeResolutionService) null), 
          ! String.IsNullOrEmpty(node.Comment) ? "// " + node.Comment : ""); 
     } 

Вам нужно будет установить UseResXDataNodes флаг на читателя: http://msdn.microsoft.com/en-us/library/system.resources.resxresourcereader.useresxdatanodes.aspx

Но ПРИМЕЧАНИЕ - Этот способ, похоже, работает ТОЛЬКО для файла .RESX на диске.

0

Я думаю, что это должно быть возможно с помощью ResXResourceReader.

ResXResourceReader rr = new ResXResourceReader(resxFilename); 
rr.UseResXDataNodes = true; // this is important! 

var resXDataNodes = rr.GetEnumerator().Select(i => i.Value).OfType<ResXDataNode>(); 

foreach(var resXDataNode in resXDataNodes) 
{ 
    var comment = resXDataNode.Comment; 
} 
Смежные вопросы