Compartir a través de


Instrucciones de uso de atributos

Actualización: noviembre 2007

.NET Framework permite a los programadores inventar nuevas clases de información declarativa, especificar información declarativa para entidades de programas diversos y recuperar la información sobre atributos en el entorno del motor en tiempo de ejecución. Por ejemplo, en un marco de trabajo se puede definir un atributo HelpAttribute que se puede colocar en elementos de programa como clases y métodos, para proporcionar una asignación de los elementos del programa a la documentación correspondiente. En la declaración de clases de atributos se pueden definir nuevas clases de información declarativa, que pueden tener parámetros con nombres y parámetros posicionales. Para obtener más información, vea Escribir atributos personalizados.

En las reglas siguientes se describen las instrucciones de uso de las clases de atributos:

  • Agregue el sufijo Attribute a clases de atributos personalizados, como se muestra en el siguiente ejemplo.

    Public Class ObsoleteAttribute{}
    
    public class ObsoleteAttribute{}
    
  • Especifique AttributeUsage en los atributos para definir su utilización exacta, como se muestra en el siguiente ejemplo.

    <AttributeUsage(AttributeTargets.All, Inherited := False, AllowMultiple := True)>  _
    
    Public Class ObsoleteAttribute
       Inherits Attribute
       ' Insert code here.
    End Class
    
    [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
    public class ObsoleteAttribute: Attribute {}
    
  • Selle las clases de atributos siempre que sea posible, para que no se pueda derivar ninguna clase.

  • Utilice argumentos posicionales (parámetros del constructor) en los parámetros requeridos. Proporcione una propiedad de sólo lectura con el mismo nombre que el argumento posicional, pero cambie el uso de las mayúsculas y minúsculas para diferenciarlos. Esto permite el acceso al argumento en tiempo de ejecución.

  • Utilice los argumentos con nombre para los parámetros opcionales y proporcione una propiedad de lectura y escritura a cada argumento con nombre.

  • No defina un parámetro con argumentos posicionales y argumentos con nombre. En el siguiente ejemplo de código se muestra este modelo.

    Public Class NameAttribute
       Inherits Attribute
       Private userNameValue as String
       Private ageValue as Integer
    
       ' This is a positional argument.
       Public Sub New(userName As String) 
          userNameValue = userName
       End Sub
    
       Public ReadOnly Property UserName() As String
          Get
             Return userNameValue 
          End Get
       End Property
    
       ' This is a named argument.
       Public Property Age() As Integer
          Get
             Return ageValue 
          End Get
          Set
             ageValue = value
          End Set 
       End Property
    End Class
    
    public class NameAttribute: Attribute 
    {
       string userName;
       int age;
    
       // This is a positional argument.
       public NameAttribute (string userName) 
       { 
           this.userName = userName;
       }
       public string UserName 
       { 
          get 
          {
             return userName; 
          }
       }
       // This is a named argument.
       public int Age 
       { 
          get 
          {
             return age;
          }
          set 
          {
             age = value;
          }
       } 
    }
    

Portions Copyright 2005 Microsoft Corporation. Reservados todos los derechos.

Portions Copyright Addison-Wesley Corporation. Reservados todos los derechos.

Para obtener más información sobre las directrices de diseño, consulte el libro titulado "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" de Krzysztof Cwalina y Brad Abrams, publicado por Addison-Wesley, 2005.

Vea también

Conceptos

Instrucciones de uso

Otros recursos

Instrucciones de diseño para desarrollar bibliotecas de clases