|
Как определить, что у атрибута есть локализованные свойства?
|
|||
---|---|---|---|
#18+
Проблема такая. Хочу у типов считывать атрибуты и доставать значения свойств этих атрибутов. Но штука в том, что если эти свойства могут хранить локализованные данные, то достаются эти данные не так, как из нелокализованных свойств. Например, у атрибута DisplayAttribute может быть локализовано свойство Name. Чтобы достать значение локализованного свойства, нужно использовать метод GetName. Тогда значение в Name будет использовано как ключ для словаря ресурсов, в котором лежат локализованные данные. А если использовать метод GetValue, то получишь значение ключа - вообще, того, что записано в этом Name. Так вот. Пусть для примера есть тип со свойством, к которому приписан атрибут: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
На входе есть тип (MyModel). И есть два алгоритма доставания данных из свойств атрибутов. Но первая часть лагоритма (C) одинакова: Код: c# 1. 2. 3. 4. 5.
Далее различия. Для атрибутов с локализацией данные достаются так: Код: c# 1. 2. 3. 4. 5. 6.
А без локализации - так: Код: c# 1. 2.
Штука в том, что я хочу сделать единый алгоритм доставания таких данных, который будет разветвляться в зависимости от того, есть у атрибута локализованные свойства или нет. Это сделать реально или нет? Сложность ещё в том, что для доставания нелокализованных свойств ЛЮБЫХ атрибутов подходит второй вариант. А вот первый вариант подходит мало того, что только для локализованных свойств, так и ещё у атрибута должен быть метод с именем "GetName". Т. е. по идее, либо надо каждое название метода писать заново, либо передавать делегат - всё через параметр функции, достающей значения атрибутов, как я понимаю. Т. е. в любом случае в цикле уже этого не сделаешь. Что вы можете посоветовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 16:58 |
|
|
start [/forum/topic.php?fid=20&msg=38287120&tid=1404560]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 174ms |
0 / 0 |