Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Attribut ger en kraftfull metod för att associera metadata, eller deklarativ information, med kod (sammansättningar, typer, metoder, egenskaper och så vidare). När ett attribut har associerats med en programenhet kan attributet frågas efter vid körning med hjälp av en teknik som kallas reflection. Mer information finns i Reflektion (Visual Basic).
Attribut har följande egenskaper:
Attribut lägger till metadata i ditt program. metadata är information om de typer som definierats i ett program. Alla .NET-sammansättningar innehåller en angiven uppsättning metadata som beskriver de typer och typmedlemmar som definierats i sammansättningen. Du kan lägga till anpassade attribut för att ange eventuell ytterligare information som krävs. Mer information finns i Skapa anpassade attribut (Visual Basic).
Du kan använda ett eller flera attribut för hela sammansättningar, moduler eller mindre programelement, till exempel klasser och egenskaper.
Attribut kan acceptera argument på samma sätt som metoder och egenskaper.
Programmet kan undersöka sina egna metadata eller metadata i andra program med hjälp av reflektion. Mer information finns i Accessing Attributes by Using Reflection (Visual Basic).
Använda attribut
Attribut kan placeras på de flesta deklarationer, men ett specifikt attribut kan begränsa de typer av deklarationer som det är giltigt för. I Visual Basic omges ett attribut av vinkelparenteser (<>). Det måste visas omedelbart före det element som det tillämpas på på samma rad.
I det här exemplet används attributet SerializableAttribute för att tillämpa en specifik egenskap på en klass:
<System.Serializable()> Public Class SampleClass
' Objects of this type can be serialized.
End Class
En metod med attributet DllImportAttribute deklareras så här:
Imports System.Runtime.InteropServices
<System.Runtime.InteropServices.DllImport("user32.dll")>
Sub SampleMethod()
End Sub
Mer än ett attribut kan placeras i en deklaration:
Imports System.Runtime.InteropServices
Sub MethodA(<[In](), Out()> ByVal x As Double)
End Sub
Sub MethodB(<Out(), [In]()> ByVal x As Double)
End Sub
Vissa attribut kan anges mer än en gång för en viss entitet. Ett exempel på ett sådant multiuse-attribut är ConditionalAttribute:
<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub
Anmärkning
Enligt konventionen slutar alla attributnamn med ordet "Attribut" för att skilja dem från andra objekt i .NET Framework. Du behöver dock inte ange attributsuffixet när du använder attribut i kod. Till exempel, [DllImport]
är likvärdig med [DllImportAttribute]
, men DllImportAttribute
är attributets verkliga namn i .NET Framework.
Attributparametrar
Många attribut har parametrar som kan vara positionella, namnlösa eller namngivna. Eventuella positionsparametrar måste anges i en viss ordning och kan inte utelämnas. namngivna parametrar är valfria och kan anges i valfri ordning. Positionsparametrar anges först. Dessa tre attribut är till exempel likvärdiga:
<DllImport("user32.dll")>
<DllImport("user32.dll", SetLastError:=False, ExactSpelling:=False)>
<DllImport("user32.dll", ExactSpelling:=False, SetLastError:=False)>
Den första parametern, DLL-namnet, är positionell och kommer alltid först. de andra namnges. I det här fallet är båda de namngivna parametrarna inställda på false som standard, så de kan utelämnas. Information om standardparametervärden finns i dokumentationen för det enskilda attributet.
Attributmål
Målet för ett attribut är den entitet som attributet gäller för. Ett attribut kan till exempel gälla för en klass, en viss metod eller en hel sammansättning. Som standard gäller ett attribut för det element som det föregår. Men du kan också uttryckligen identifiera om ett attribut tillämpas på en metod, dess parameter eller dess returvärde.
Om du uttryckligen vill identifiera ett attributmål använder du följande syntax:
<target : attribute-list>
Listan över möjliga target
värden visas i följande tabell.
Målvärde | Gäller för |
---|---|
assembly |
Hela sammansättningen |
module |
Aktuell sammansättningsmodul (som skiljer sig från en Visual Basic-modul) |
I följande exempel visas hur du tillämpar attribut på sammansättningar och moduler. Mer information finns i Vanliga attribut (Visual Basic).
Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>
Vanliga användningsområden för attribut
Följande lista innehåller några av de vanliga användningsområdena för attribut i kod:
Märkningsmetoder som använder attributet
WebMethod
i webbtjänster för att indikera att metoden ska vara anropsbar via SOAP-protokollet. Mer information finns i WebMethodAttribute.Beskriver hur metodparametrar hanteras när du samverkar med native kod. Mer information finns i MarshalAsAttribute.
Beskriva COM-egenskaperna för klasser, metoder och gränssnitt.
Anropa ohanterad kod med hjälp av klassen DllImportAttribute.
Beskriva din sammansättning när det gäller titel, version, beskrivning eller varumärke.
Beskriver vilka medlemmar i en klass som ska serialiseras för beständighet.
Beskriver hur du mappar mellan klassmedlemmar och XML-noder för XML-serialisering.
Beskriva säkerhetskrav för metoder.
Ange egenskaper som används för att framtvinga säkerhet.
Styrning av optimeringar av JIT-kompilatorn (just-in-time) så att koden förblir lätt att felsöka.
Att hämta information om anroparen till en metod.
Relaterade avsnitt
Mer information finns i: