Изменить параметр атрибута во время выполнения

На случай, если кто-то еще reflection пойдет по этой аллее, ответ c# - вы можете сделать это с .cs-file помощью отражения, но вы attribute не можете этого сделать, потому attributes что во фреймворке есть ошибка. Вот c# как бы вы это сделали:

Dim prop As PropertyDescriptor = TypeDescriptor.GetProperties(GetType(UserInfo))("Age")
Dim att As CategoryAttribute = DirectCast(prop.Attributes(GetType(CategoryAttribute)), CategoryAttribute)
Dim cat As FieldInfo = att.GetType.GetField("categoryValue", BindingFlags.NonPublic Or BindingFlags.Instance)
cat.SetValue(att, "A better description")

Все .cs-file хорошо, за исключением того, что csharp атрибут категории изменен c-sharp для всех свойств, а не только attribute для «Возраст».

c#

reflection

attributes

2022-08-12T02:12:01+00:00