2010-05-09 2 views
6
[MyAttribute()] 
public string Name { get; set; } 

В MyAttribute Мне нужно знать название связанного имущества, возможно ли это?. NET: Получить имя свойства в атрибуте

EDIT:

мне нужно использовать его в форматировании текста.

+0

Можете ли вы подробно рассказать о том, зачем вам это нужно и для чего вы его используете? –

+0

Вы должны уточнить –

ответ

8

Нет, это невозможно. Обычно вы используете reflection to read attributes, применяемый к данному свойству, поэтому вы уже знаете это свойство. Пример:

var properties = typeof(SomeType).GetProperties(); 
foreach (var property in properties) 
{ 
    var attributes = property.GetCustomAttributes(typeof(MyAttribute), true); 
    if (attributes.Count > 0) 
    { 
     // look at property.Name here 
    } 
} 
+0

Хм, может быть, я смотрю на проблему с противоположного конца, чем должен. – Feryt

+0

Да, вы начинаете с типа, затем получаете свойства и, наконец, читаете пользовательские атрибуты, применяемые к данному свойству. –

0

Вы можете использовать PostSharp аспект, чтобы сделать работу. У меня был аналогичный question a назад, что было почти то же самое. Вы можете увидеть комментарии к ответу для получения дополнительной информации о некоторых последствиях, с которыми вы можете столкнуться.

Смежные вопросы