c# 如何通过反射给指定的字段添加Attribute
时间: 2023-07-20 14:41:43 浏览: 183
C#实现利用反射简化给类字段赋值的方法
要给指定的字段添加 Attribute,可以使用 C# 的反射机制来实现。以下是示例代码:
首先,定义一个自定义的 Attribute,如下所示:
```csharp
[AttributeUsage(AttributeTargets.Field)]
public class MyCustomAttribute : Attribute
{
public string Description { get; set; }
public MyCustomAttribute(string description)
{
Description = description;
}
}
```
然后,定义一个包含字段的类:
```csharp
public class MyClass
{
[MyCustom("This is a custom attribute")]
public int MyField;
}
```
接着,使用反射机制获取该类的字段,并给其添加 Attribute:
```csharp
Type myType = typeof(MyClass);
FieldInfo myField = myType.GetField("MyField");
MyCustomAttribute myAttribute = new MyCustomAttribute("This is a custom attribute");
myField.SetCustomAttribute(myAttribute);
```
这样,指定的字段就会被添加上自定义的 Attribute。请注意,Attribute 的使用需要遵循一定的规范,否则可能不会生效。
阅读全文