我在具有自动属性 getter 和 setter 的模型中有一个属性:
[DataMember]
public Collection<DTOObjects> CollectionName { get; set; }
构建解决方案时出现以下错误:
Microsoft.Usage : Change 'propertyname' to be read-only by removing the property setter.
但是,当我删除 setter 并运行代码时,出现错误,因为它正在尝试设置属性!它似乎要求我删除 setter ,尽管它已在代码中的某处设置。
有没有其他人遇到过这个问题?我需要修改什么?
最佳答案
我猜这是一个列表/集合(或类似的东西),在这种情况下是的 - 有一个 setter 是不寻常的。一个典型的例子可能是:
private readonly List<Foo> items = new List<Foo>();
public List<Foo> Items { get { return items; } }
大多数调用者不应该试图分配给它;他们不应该需要 - 他们可以添加/删除/枚举/清除/等等列表而无需分配它。
an error occurs because it's trying to set the property
然后考虑更改该代码,使其不会尝试设置该属性。在几乎所有情况下,不需要。
关于c# - 如何修复 'Remove property setter' 构建错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083790/