ReadOnlyAttribute Clase

Definición

Especifica si la propiedad a la que está enlazado este atributo es de sólo lectura o de lectura y escritura. Esta clase no puede heredarse.

public ref class ReadOnlyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class ReadOnlyAttribute : Attribute
public sealed class ReadOnlyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All)>]
type ReadOnlyAttribute = class
    inherit Attribute
type ReadOnlyAttribute = class
    inherit Attribute
Public NotInheritable Class ReadOnlyAttribute
Inherits Attribute
Herencia
ReadOnlyAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se marca una propiedad como de solo lectura.

   [ReadOnly(true)]
   int get()
   {
      // Insert code here.
      return 0;
   }
}
[ReadOnly(true)]
 public int MyProperty {
    get {
       // Insert code here.
       return 0;
    }
}
Public ReadOnly Property MyProperty() As Integer
    Get
        ' Insert code here.
        Return 0
    End Get
End Property

En el ejemplo de código siguiente se muestra cómo comprobar el valor de para ReadOnlyAttributeMyProperty. En primer lugar, el código obtiene con PropertyDescriptorCollection todas las propiedades del objeto . A continuación, se indexa en para PropertyDescriptorCollection obtener MyProperty. A continuación, devuelve los atributos de esta propiedad y los guarda en la variable attributes.

En el ejemplo se presentan dos formas diferentes de comprobar el valor de ReadOnlyAttribute. En el segundo fragmento de código, el ejemplo llama al Equals método . En el último fragmento de código, en el ejemplo se usa la IsReadOnly propiedad para comprobar el valor.

// Gets the attributes for the property.
AttributeCollection^ attributes = TypeDescriptor::GetProperties( this )[ "MyProperty" ]->Attributes;

// Checks to see whether the value of the ReadOnlyAttribute is Yes.
if ( attributes[ ReadOnlyAttribute::typeid ]->Equals( ReadOnlyAttribute::Yes ) )
{
   // Insert code here.
}

// This is another way to see whether the property is read-only.
ReadOnlyAttribute^ myAttribute = dynamic_cast<ReadOnlyAttribute^>(attributes[ ReadOnlyAttribute::typeid ]);
if ( myAttribute->IsReadOnly )
{
   // Insert code here.
}
// Gets the attributes for the property.
AttributeCollection attributes = 
   TypeDescriptor.GetProperties(this)["MyProperty"].Attributes;
 
// Checks to see whether the value of the ReadOnlyAttribute is Yes.
if(attributes[typeof(ReadOnlyAttribute)].Equals(ReadOnlyAttribute.Yes)) {
   // Insert code here.
}
 
// This is another way to see whether the property is read-only.
ReadOnlyAttribute myAttribute = 
   (ReadOnlyAttribute)attributes[typeof(ReadOnlyAttribute)];
if(myAttribute.IsReadOnly) {
   // Insert code here.
}
' Gets the attributes for the property.
Dim attributes As AttributeCollection = _
    TypeDescriptor.GetProperties(Me)("MyProperty").Attributes

' Checks to see whether the value of the ReadOnlyAttribute is Yes.
If attributes(GetType(ReadOnlyAttribute)).Equals(ReadOnlyAttribute.Yes) Then
    ' Insert code here.
End If 

' This is another way to see whether the property is read-only.
Dim myAttribute As ReadOnlyAttribute = _
    CType(attributes(GetType(ReadOnlyAttribute)), ReadOnlyAttribute)
    
If myAttribute.IsReadOnly Then
    ' Insert code here.
End If

Si marcó una clase con ReadOnlyAttribute, use el ejemplo de código siguiente para comprobar el valor.

AttributeCollection^ attributes = TypeDescriptor::GetAttributes( MyProperty );
if ( attributes[ ReadOnlyAttribute::typeid ]->Equals( ReadOnlyAttribute::Yes ) )
{
   // Insert code here.
}
AttributeCollection attributes = 
   TypeDescriptor.GetAttributes(MyProperty);
if(attributes[typeof(ReadOnlyAttribute)].Equals(ReadOnlyAttribute.Yes)) {
   // Insert code here.
}
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(MyProperty)
If attributes(GetType(ReadOnlyAttribute)).Equals(ReadOnlyAttribute.Yes) Then
    ' Insert code here.
End If

Comentarios

No se pueden cambiar los miembros marcados con el ReadOnlyAttribute establecido true en o que no tienen un Set método . Los miembros que no tienen este atributo o que están marcados con el ReadOnlyAttribute establecido false en son de lectura y escritura, y se pueden cambiar. De manera predeterminada, es No.

Importante

La PropertyDescriptor clase aplica en ReadOnlyAttribute el entorno de diseño y en tiempo de ejecución. Al marcar una propiedad con el ReadOnlyAttribute establecido trueen , el valor de este atributo se establece en el miembro Yesconstante . Para una propiedad marcada con el ReadOnlyAttribute valor establecido falseen , el valor es No. Por lo tanto, cuando desee comprobar el valor de este atributo en el código, debe especificar el atributo como ReadOnlyAttribute.Yes o ReadOnlyAttribute.No.

Para obtener más información, consulte Attributes (Atributos).

Constructores

ReadOnlyAttribute(Boolean)

Inicializa una nueva instancia de la clase ReadOnlyAttribute.

Campos

Default

Especifica el valor predeterminado de ReadOnlyAttribute, que es No (es decir, la propiedad a la que está enlazado este atributo es de lectura y escritura). Este campo static es de solo lectura.

No

Especifica que la propiedad a la que está enlazado este atributo es de lectura y escritura y se puede modificar. Este campo static es de solo lectura.

Yes

Especifica que la propiedad a la que está enlazado este atributo es de sólo lectura y no se puede modificar en el explorador de servidores. Este campo static es de solo lectura.

Propiedades

IsReadOnly

Obtiene un valor que indica si la propiedad a la que está enlazado este atributo es de sólo lectura.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)

Métodos

Equals(Object)

Indica si esta instancia y un objeto especificado son iguales.

GetHashCode()

Devuelve el código hash de esta instancia.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Determina si este atributo es el valor predeterminado.

IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también