Megosztás a következőn keresztül:


Egyéni attribútumok létrehozása (Visual Basic)

Saját egyéni attribútumokat úgy hozhat létre, hogy definiál egy attribútumosztályt, egy közvetlenül vagy közvetve származó Attributeosztályt, amely gyors és egyszerűvé teszi az attribútumdefiníciók azonosítását a metaadatokban. Tegyük fel, hogy a típust író programozó nevével szeretné címkézni a típust. Egyéni Author attribútumosztályt is definiálhat:

<System.AttributeUsage(System.AttributeTargets.Class Or
                       System.AttributeTargets.Struct)>
Public Class Author
    Inherits System.Attribute
    Private name As String
    Public version As Double
    Sub New(ByVal authorName As String)
        name = authorName
        version = 1.0
    End Sub
End Class

Az osztály neve az attribútum neve. Author A származtatása System.Attribute, így ez egy egyéni attribútumosztály. A konstruktor paraméterei az egyéni attribútum pozícióparaméterei. Ebben a példában name egy pozícióparaméter látható. A nyilvános írási-olvasási mezők vagy tulajdonságok nevesített paraméterek. Ebben az esetben version az egyetlen elnevezett paraméter. Figyelje meg az AttributeUsage attribútum használatát, hogy az attribútum csak osztályon Author és Structure deklarációkon érvényes legyen.

Ezt az új attribútumot a következőképpen használhatja:

<Author("P. Ackerman", Version:=1.1)>
Class SampleClass
    ' P. Ackerman's code goes here...
End Class

AttributeUsage egy elnevezett paraméterrel rendelkezik, AllowMultipleamellyel egyéni attribútumokat hozhat létre egyszerhasználatos vagy többfelhasználóssá. A következő kód példában egy többfelhasználós attribútum jön létre.

' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or
                       System.AttributeTargets.Struct,
                       AllowMultiple:=True)>
Public Class Author
    Inherits System.Attribute

Az alábbi kód példában több azonos típusú attribútumot alkalmazunk egy osztályra.

<Author("P. Ackerman", Version:=1.1),
Author("R. Koch", Version:=1.2)>
Class SampleClass
    ' P. Ackerman's code goes here...
    ' R. Koch's code goes here...
End Class

Megjegyzés:

Ha az attribútumosztály tartalmaz egy tulajdonságot, annak írási-olvasási tulajdonságnak kell lennie.

Lásd még