对标题感到抱歉我根本不知道怎么称呼它。这就是我想要实现的目标。
[MyCustomAttribute]
string FormFirstName;
public MyCustomAttribute: Attribute
public MyCustomAttribute(something?){
string propertyName = "FormFirstName";
}
我试图在我的属性中获取一个值,该值表示属性附加到的属性的名称,而不必将其赋予属性,没有MyCustomAttribute(“FormFirstName”),目标是使用反射(我认为)获取属性的名称及其类型等...它也必须在类型字符串上可行。
THX:D
答案 0 :(得分:2)
你想做什么根本无法做到。属性不知道声明它的成员/类型/ etc。你需要反过来做。当您检查属性的存在时(因为这不是自动完成的 - 您需要通过反射API查询属性),您可以告诉属性它的内容。例如:
var fieldInfo = ...
var attribs = (MyCustomAttribute[])Attribute.GetCustomAttributes(
fieldInfo, typeof(MyCustomAttribute));
foreach(var attrib in attribs) {
attrib.DoSomething(fieldInfo);
}