我在模型中有一个属性,它具有auto属性getter和setter:
[DataMember]
public Collection<DTOObjects> CollectionName { get; set; }
Run Code Online (Sandbox Code Playgroud)
构建解决方案时出现以下错误:
Microsoft.Usage:通过删除属性setter将'propertyname'更改为只读.
但是,当我删除setter并运行代码时,会发生错误,因为它正在尝试设置属性!它似乎要求我删除setter,尽管它被设置在代码中的某个地方.
有没有其他人来解决这个问题?我需要修改什么?
我猜这是一个列表/集合(或类似的东西),在这种情况下是 - 有一个setter是不寻常的.一个典型的例子可能是:
private readonly List<Foo> items = new List<Foo>();
public List<Foo> Items { get { return items; } }
Run Code Online (Sandbox Code Playgroud)
大多数呼叫者不应该尝试分配给它; 他们不应该 - 他们可以添加/删除/枚举/清除/等列表而无需分配它.
发生错误,因为它正在尝试设置属性
然后考虑更改该代码,以便它不会尝试设置属性.它不应该需要在几乎所有情况下.