![](/img/trans.png)
[英]C# - find all objects which has attribute with specific name, in complex class hierarchy
[英]C# attribute: how to know class name which has field marked with attribute
尤其是在重写Asp.net MVC ValidationAttribute时,是否可以知道类名带有属性标记的字段? (AttributeUsage是AttributeTargets.Property)
public class UniqueAttribute: ValidationAttribute
public override bool IsValid(object value)
{
// how to know which class has this attribute?
}
给定属性的实例,就无法确定该属性是由什么类,字段,方法等组成的。 主要是因为它不需要附加到一个。 可以像创建普通对象一样创建所有属性,因此不附加任何属性
var instance = new UniqueAttribute();
您可能需要使用其他构造函数,但必须存在一个构造函数,否则不能首先将其应用于成员。
但是,可以采取另一种方式。 给定成员或类型以查找是否已将给定属性应用于该成员或类型。 例如,假定有一个UnqiueAttribute
实例附加到SomeType
类型, SomeType
此代码将检索它。
var type = typeof(SomeType);
var attrib = (UniqueAtrtibute)type.GetCustomAttributes(typeof(UnqiueAttribute),true)[0];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.