C# - 使用属性的替代方法

Mel*_*sus 1 .net c# reflection attributes .net-4.0

假设我得到以下内容:

public class A {
     [MyAttribute]
     public void Test() {}
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢添加属性以使用[]为方法或类添加前缀的行为.我认为这会使代码的可读性降低.

我发现更好的方法可能是这样的:

AddAttribute(A, Test, MyAttribute);
Run Code Online (Sandbox Code Playgroud)

有没有办法做这样的事情?

因为那是在运行时添加属性的某种方式......

或者有其他方式使用属性?像xml文件?

Bot*_*000 5

属性不能在运行时添加,它们嵌入在程序集的元数据中.但是,您可以在构建期间使用外部工具添加属性,以便在编译之前修改源代码.