Objeto con una propiedad collection

22/09/2005 - 18:00 por Joaquin Pelayo Bedia | Informe spam
Tengo una clase donde he definido una propiedad -ReadOnly- de
tipo -Collection-, pero cual es mi sorpresa que al acceder al objeto aun
siendo readonly, me permite llamar al metodo -Add-. Como puedo evitar este
comportamiento??.

Muchas gracias, Un saludo.
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
22/09/2005 - 20:02 | Informe spam
Joaquin Pelayo Bedia wrote:
Tengo una clase donde he definido una propiedad -ReadOnly- de
tipo -Collection-, pero cual es mi sorpresa que al acceder al objeto
aun siendo readonly, me permite llamar al metodo -Add-. Como puedo
evitar este comportamiento??.



Una cosa es un propiedad ReadOnly y otra una coleccion ReadOnly. Que la
propiedad sea ReadOnly significa que no puedes asignar un nuevo valor a la
propiedad lo cual no impide que modifiques propiedades del objeto que la
propiedad devuelve. Si necesitas una coleccion de solo lectura (donde lo
clientes solo pueden leer items pero no agregar) crea una clase derivada de
ReadOnlyCollectionBase. Por ejemplo:

Public Class MiColeccionDeSoloLectura
Inherits System.Collections.ReadOnlyCollectionBase

Friend Sub New(ByVal items() As Object)
innerlist.AddRange(items)
End Sub

Default Public ReadOnly Property Item(ByVal index As Integer) As Object
Get
Return MyBase.InnerList(index)
End Get
End Property

End Class

Por supuesto que en lugar de Object usarias el tipo de datos que quieres
guardar en la coleccion.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Preguntas similares