Чтобы установить значения свойств посредством отражения в C# с использованием атрибутов, вы можете использовать следующие методы:
-
Получить тип: используйте метод
GetType()
для экземпляра объекта, чтобы получить информацию о типе. -
Получить свойство. Используйте метод
GetProperty()
для объекта Type, чтобы получить экземпляр PropertyInfo, представляющий нужное свойство. Вы можете указать имя свойства как строковый параметр. -
Получить атрибут. Используйте метод
GetCustomAttribute()
для объекта PropertyInfo, чтобы получить экземпляр атрибута, связанный со свойством. Вы можете указать тип атрибута в качестве параметра. -
Установите значение свойства. Если у вас есть экземпляры PropertyInfo и атрибута, вы можете использовать метод
SetValue()
для объекта PropertyInfo, чтобы установить значение свойства. Вам необходимо указать экземпляр объекта, для которого должно быть установлено свойство, а также новое значение.
Вот пример, демонстрирующий эти шаги:
using System;
using System.Reflection;
public class MyClass
{
[MyAttribute("Example")]
public string MyProperty { get; set; }
}
public class MyAttribute : Attribute
{
public string Value { get; }
public MyAttribute(string value)
{
Value = value;
}
}
class Program
{
static void Main()
{
MyClass obj = new MyClass();
Type type = obj.GetType();
PropertyInfo property = type.GetProperty("MyProperty");
MyAttribute attribute = property.GetCustomAttribute<MyAttribute>();
if (attribute != null)
{
property.SetValue(obj, "New Value");
Console.WriteLine(obj.MyProperty); // Output: New Value
}
}
}