我知道 readonly 集合可以防止从列表中添加/删除,但它为什么不阻止设置集合中对象的属性。
System.Collections.ObjectModel.ReadOnlyCollection<PersonPhoneNumber> ReadOnlyPhoneNumbers = new System.Collections.ObjectModel.ReadOnlyCollection<PersonPhoneNumber>(_PhoneNumbers);
ReadOnlyPhoneNumbers[0].Number = "01111111111111";
出于此问题的目的,假设 _PhoneNumbers 是一个 List 并且它包含至少一个 PersonPhoneNumber 类的实例。
如何公开对象集合并使对象只读?此问题的根源在于必须在 WCF 数据合同中公开私有集合,但我不希望该集合可访问。
我想使用:
Person.Mobile = "011111111111111";
代替:
Person.PhoneNumbers.Add(New PersonPhoneNumber{Number= "01111111111111", Type=Mobile});