나는 상수 데이터의 컬렉션을 포함하는 유형이 있습니다. 상수는 내 프로그램 외부에서 정의 된 표준에 의해 정의됩니다. 형식은 다음과 같습니다.FxCop에 유형이 변경되지 않는다고 알려주는 방법이 있습니까?
public class IAmImmutable
{
public IAmImmutable(string member1, string member2)
{
this.Member1 = member1;
this.Member2 = member2;
}
public string Member1 { get; private set; }
public string Member2 { get; private set; }
public static readonly Instance1 = new IAmImmutable("abc", "def");
public static readonly Instance2 = new IAmImmutable("example", "data");
public static readonly Instance3 = new IAmImmutable("for", "stackoverflow");
public static readonly Instance4 = new IAmImmutable("these are", "constant fields");
public static readonly Instance5 = new IAmImmutable("42", "1729");
/* ... */
public static readonly Instance1000 = new IAmImmutable("HUNGRY EVIL", "ZOMBIES");
}
이 결과로 FxCop에서 수천 개의 CA2104:DoNotDeclareReadOnlyMutableReferenceTypes
이 검색되었습니다. 이 탐지의 메모는 표시된 유형이 변경 불가능한 경우 검색을 억제해야 함을 나타냅니다 (이 경우). 그러나, 나는 그것을 피할 수 있으면 수천, 수천 개의 억압을 갖고 싶지 않습니다.
이 유형을 불변으로 표시 할 수 있습니까? 따라서이 감지가 발생하지 않도록 할 수 있습니까?
http://blogs.msdn.com/b/codeanalysis/archive/2006/04/04/faq-how-do-i-indicate-to-donotdeclarerereadmutablereferencetypes-that-a-type-is-immutable-david -kean.aspx –
참조 http://stackoverflow.com/questions/2274412/immutable-readonly-reference-types-fxcop-violation-do-not-declare-read-only-m –
@Peter : 그 질문은 내부 변경 멤버를 포함하는 불변 타입. 이 유형에는 내부 변경 멤버가 없습니다. 내부에'StringBuilder'가 있다면 그것은 완전히 다른 질문이 될 것입니다. –