Si tengo una instancia de un objeto, ¿cómo puedo verificar si es o no de solo lectura?Comprobando si una instancia de un objeto es de solo lectura
He rastreado a través System.Type y que son un montón de IsXxxx()
y GetXxxx()
tipos de funciones, pero sin IsReadOnly()
, IsWriteable()
, GetReadWriteProperty()
, o algo por el estilo. Supongo que algo como myObj.GetType().IsReadOnly()
hubiera sido demasiado fácil, y la clase Object en sí misma no tiene nada útil aparte de GetType().
Cuando googleo esta pregunta, todo lo que obtengo son formas de utilizar la palabra clave readonly.
I pensado en utilizar Reflexión y GetProperty() pero esto es una clase base que existe en una lista <>, necesitaría la instancia de este objeto a ser una propiedad solitario en otro objeto para mí hacer esto lo haría pensar.
¿Alguna idea?
parece que necesito para refinar mis términos de búsqueda mejor la próxima vez, creo que esta pregunta puede ser un duplicado de: http://stackoverflow.com/questions/481883/how-do-i-check-if-a-class-is-readonly-in-c –
Puede proporcionar un ejemplo de un objeto que considere ser solo? En el nivel de objeto, no se define tal concepto. Los campos pueden o no ser de solo lectura, y las propiedades pueden tener o no conjuntos públicos, y pueden o no estar marcados como '[ImmutableObject (true)]' - pero ... al menos 2 de esos * no en realidad lo hace inmutable *, y el tercero (los campos) no es obligatorio o demasiado común (ya que los campos serían privados) –
@Marc Gravell: PropertyInfo para un tipo da un CanRead y CanWrite, estaba buscando una manera de obtener aquellos en cualquier objeto dado. –