【发布时间】:2014-05-25 15:38:24
【问题描述】:
我有以下模式:
public class Test
{
public ICollection<string> Stuff { get; private set; }
public Test()
{
Stuff = new List<string>();
Stuff.Add("Initial Item");
}
}
FxCop 抱怨 CA2227:CollectionPropertiesShouldBeReadOnly。为什么? setter 是私有的,所以它与私有字段没有什么不同,只是它的语法更短更整洁。
这对我来说是一种非常常见的模式,我真的不想单独禁止每个警告或将其替换为字段 + 属性模式。
有没有办法解决这个问题?
【问题讨论】:
-
我无法重现该问题。您使用的是哪个版本的 FxCop 和/或 Visual Studio?您的程序集是针对哪个版本的 .NET Framework 构建的?
-
我认为是 VS 2010 Express、FxCop 10 和 .Net 4.0。
-
嗯...我在 FxCop 10.0 中针对 VS 2010 中构建并针对 .NET 4.0 的程序集进行了尝试,并且没有违反 CA2227。您是否看到与您发布的确切
Test
类的违规行为? -
不,它也突然开始处理我的主要项目。我不知道那里发生了什么。 :(
标签: c# collections private readonly fxcop