読み取り専用コレクションがリストへの追加/リストからの削除を妨げていることは承知していますが、コレクション内のオブジェクトのプロパティの設定を妨げないのはなぜですか。
System.Collections.ObjectModel.ReadOnlyCollection<PersonPhoneNumber> ReadOnlyPhoneNumbers = new System.Collections.ObjectModel.ReadOnlyCollection<PersonPhoneNumber>(_PhoneNumbers);
ReadOnlyPhoneNumbers[0].Number = "01111111111111";
この質問では、_PhoneNumbers が List であり、PersonPhoneNumber クラスのインスタンスが少なくとも 1 つ含まれていると仮定します。
オブジェクトのコレクションを公開し、オブジェクトを読み取り専用にするにはどうすればよいですか? この問題の原因は、WCF データ コントラクトでプライベート コレクションを公開する必要があることにありますが、コレクションにアクセスできるようにしたくありません。
使いたい:
Person.Mobile = "011111111111111";
それ以外の:
Person.PhoneNumbers.Add(New PersonPhoneNumber{Number= "01111111111111", Type=Mobile});