Локализуйте DisplayNameAttributes в ActionFilter? - PullRequest
0 голосов
/ 28 мая 2010

Можно ли получить доступ к DisplayNameAttributes, которые используются в моем ViewData.Model, чтобы я мог их локализовать перед отправкой в ​​представление? Примерно так:

Public Void OnActionExecuted(ActionExecutedContext: filterContext) {
  foreach (DisplayNameAttribute attr in filterContext...) {
    attr.TheValue = AppMessages.GetLocazation(attr.TheValue);
  }
}

Что мне не хватает, так это как получить доступ к атрибутам. Возможно ли это вообще?

П.С .: Мы используем vb.net на моей работе, и он проникает в мой мозг. Так что извинения, если мой C # немного.

Ответы [ 2 ]

1 голос
/ 28 мая 2010

Не изменяйте значения атрибутов во время выполнения. В лучшем случае это будет запрет (так как вы будете работать с копиями экземпляров атрибута); в худшем случае это приведет к условиям гонки в вашем коде. Всегда рассматривайте экземпляры атрибутов как неизменные.

Если вам нужно локализовать [DisplayName], создайте его подкласс и переопределите виртуальное свойство DisplayName. См. Локализация DisplayNameAttribute для примера того, как это сделать.

0 голосов
/ 28 мая 2010
...