[MyAttribute()]
public string Name { get; set; }
В MyAttribute
Я должен знать название связанного свойства, действительно ли это возможно?
Править:
Я должен использовать его в текстовом форматировании.
Нет, это невозможно. Обычно вы используете отражение для чтения атрибутов , примененных к данному свойству, поэтому вы уже знаете это свойство. Пример:
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
}
}
Вы можете использовать аспект PostSharp для выполнения этой работы. Некоторое время назад у меня был похожий вопрос, в котором было почти то же самое. Вы можете посмотреть комментарии к ответу, чтобы получить дополнительную информацию о некоторых последствиях, с которыми вы можете столкнуться.