我想要访问类中Field的自定义属性。我想在字段构造函数中访问放置在字段上的属性。这可能吗?
编辑06/28/09 像下面的伪代码
class SpecialInt
{
int _intVal;
int _maxVal;
public SpecialInt()
{
//Get attribute for the instantiated specialint
_maxVal = GetAttribute("MaxValue")
}
}
class main()
{
[MaxValue(100)]
SpecialInt sInt;
public main()
{
sInt = new SpecialInt()
}
int _intVal;
int _maxVal;
public SpecialInt()
{
//Get attribute for the instantiated specialint
_maxVal = GetAttribute("MaxValue")
答案 0 :(得分:6)
当然这是可能的。属性存储在元数据中,在构造对象时可以轻松访问。
public class Foo {
[Something]
public int Field1;
public Foo() {
FieldInfo fi = typeof(Foo).GetField("Field1");
SomethingAttribute si = (SomethingAttribute)fi.GetCustomAttribute(typeof(SomethingAttribute),false)[0];
// grab any Custom attribute off of Fiield1 here
}
}
答案 1 :(得分:1)
您可以从任何地方测试它们。编译时,属性将插入到类型的元数据中。不需要实例化类型来访问字段属性。