基本上,我有以下内容:
protected static readonly FieldInfo SpecialField = FindSpecialField();
FxCop向我抱怨虽然如果它是可变的,我不应该只读一个字段,因为成员可以被更改。 FieldInfo和PropertyInfo是不可变的还是可变的。基本上,我可以抑制此消息吗?
答案 0 :(得分:2)
FieldInfo本身看起来是不可变的,但它的衍生可能会也可能不会。例如,可以修改FieldBuilder。同样适用于PropertyInfo。
所以,如果你知道它总是从反射中获得的FieldInfo,那么你很可能会安全。
答案 1 :(得分:1)
我会说他们是永恒的。没有成员可以更改FieldInfo
和PropertyInfo
的实例状态。 SetValue()
方法更改Field / Property所属的实例(或类的静态成员)的值,但不更改FieldInfo / PropertyInfo本身的值。
答案 2 :(得分:1)
虽然我从未见过一个我知道可变的东西,但它们是基类,谁知道派生类可能是什么样的。