基本的に、私は次のものを持っています:
protected static readonly FieldInfo SpecialField = FindSpecialField();
FxCop は、メンバーが変更される可能性があるため、変更可能な場合はフィールドを読み取り専用にするべきではないと私に訴えています。FieldInfo および PropertyInfo は不変または可変です。基本的に、このメッセージを抑制できますか?
基本的に、私は次のものを持っています:
protected static readonly FieldInfo SpecialField = FindSpecialField();
FxCop は、メンバーが変更される可能性があるため、変更可能な場合はフィールドを読み取り専用にするべきではないと私に訴えています。FieldInfo および PropertyInfo は不変または可変です。基本的に、このメッセージを抑制できますか?
FieldInfo 自体は不変に見えますが、その派生はそうである場合とそうでない場合があります。たとえば、FieldBuilderを変更できます。PropertyInfo についても同様です。
したがって、それが常にリフレクションから取得された FieldInfo であることがわかっている場合は、おそらく安全です。
それらは不変であると言えます。FieldInfo
およびのインスタンスの状態を変更するメンバーはありませんPropertyInfo
。このSetValue()
メソッドは、Field/Property が属するインスタンス (またはクラスの静的メンバー) の値を変更しますが、FieldInfo/PropertyInfo 自体は変更しません。
変更可能であることがわかっているクラスは見たことがありませんが、それらは基本クラスであり、派生クラスがどのようなものになるかは誰にもわかりません。