ReadOnlyAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 true
en , el valor de este atributo se establece en el miembro Yesconstante . Para una propiedad marcada con el ReadOnlyAttribute valor establecido false
en , 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 |
No |
Especifica que la propiedad a la que está enlazado este atributo es de lectura y escritura y se puede modificar. Este campo |
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 |
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) |