public class SomeAttr: Attribute
{
void Method()
{
//here I want to know the type this instance of attribute is applied to
}
}
答案 0 :(得分:2)
在常规.NET中,它不会也不会(除非你手动告诉它);抱歉。您需要在属性构造函数/属性中包含一些typeof(Foo)
。如果你正在谈论AOP(PostSharp等),那么所有的赌注都会关闭。
如果您指的是TypeDescriptor
([DisplayName]
,[TypeConverter]
等)使用的某些属性,那么可能还有其他选项 - 但具体而且非常重要。
答案 1 :(得分:2)
将类型(使用typeof)传递给Attribute构造函数,例如。
class SomeAttr : Attribute
{
private Type _type;
public SomeAttr(Type type)
{
_type = type;
}
private void Method()
{
string s = _type.ToString(); // Example usage of type.
}
}