1

我想为给定类的属性动态添加属性,因为项目会变得更大,并且过程完全重复,如下所示:

public class MyAttr : Attribute {
    public MyAttr () {
        foreach(var prop in properties) {
            prop.Attributes.Add([Display(Name =  nameof(prop.Name), ResourceType = typeof(Labels))]);            
        }
    }
}

并在类上使用它:

[MyAttr]
public class SomeClass {
    public string Name {get; set;}
    public string Description {get; set;}
}

当然上面的代码不是真正的程序,但我尽量让它简单。

是否有可能做到这一点?或者如果没有,是否有解决方法?

更新:我知道有一个名为CallerMemberName检索给定属性名称的属性,但是如何获取属性本身并为其添加更多属性?

4

1 回答 1

2

我认为您可以结合其他帖子的以下答案来做一些事情。

从属性访问对象属性:C# 属性可以访问目标类吗?

在运行时添加属性:如何通过在运行时创建新类型在运行时将属性添加到属性。

除非您要对所有属性进行定期更改,否则最好提前处理重复性工作。像这样全面开展工作时,不可避免地存在风险/问题。

于 2020-03-20T21:32:18.967 回答