Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz utworzyć własne atrybuty niestandardowe, definiując klasę atrybutów, klasę, która pochodzi bezpośrednio lub pośrednio z Attributeklasy , co sprawia, że identyfikowanie definicji atrybutów w metadanych jest szybkie i łatwe. Załóżmy, że chcesz oznaczyć typy tagami o nazwie programisty, który napisał typ. Możesz zdefiniować niestandardową Author klasę atrybutów:
<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
Nazwa klasy to nazwa atrybutu . Author Pochodzi on z System.Attributeklasy , więc jest to klasa atrybutów niestandardowych. Parametry konstruktora to parametry pozycyjne atrybutu niestandardowego. W tym przykładzie name jest parametrem pozycyjnym. Wszystkie publiczne pola odczytu i zapisu lub właściwości mają nazwane parametry. W tym przypadku version jest jedynym nazwanym parametrem. Zwróć uwagę na użycie atrybutu AttributeUsage , aby Author atrybut był prawidłowy tylko dla klas i Structure deklaracji.
Możesz użyć tego nowego atrybutu w następujący sposób:
<Author("P. Ackerman", Version:=1.1)>
Class SampleClass
' P. Ackerman's code goes here...
End Class
AttributeUsage ma nazwany parametr , AllowMultipleza pomocą którego można utworzyć atrybut niestandardowy z pojedynczym użyciem lub wieloma zastosowaniami. W poniższym przykładzie kodu jest tworzony atrybut wieloużytkowy.
' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct,
AllowMultiple:=True)>
Public Class Author
Inherits System.Attribute
W poniższym przykładzie kodu do klasy są stosowane wiele atrybutów tego samego typu.
<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
Uwaga / Notatka
Jeśli klasa atrybutu zawiera właściwość, musi ona być możliwa do odczytu i zapisu.