Attribútumok áttekintése (Visual Basic)
Az attribútumok hatékony módszert biztosítanak a metaadatok vagy deklaratív információk kóddal (szerelvények, típusok, metódusok, tulajdonságok stb.) való társítására. Miután hozzárendelt egy attribútumot egy programentitáshoz, az attribútum futásidőben lekérdezhető egy tükröződés nevű technikával. További információ: Tükröződés (Visual Basic).
Az attribútumok a következő tulajdonságokkal rendelkeznek:
Az attribútumok metaadatokat adnak a programhoz. A metaadatok a programban definiált típusokkal kapcsolatos információk. Minden .NET-szerelvény tartalmaz egy megadott metaadatkészletet, amely leírja a szerelvényben definiált típusokat és típustagokat. Egyéni attribútumokat is hozzáadhat a szükséges további információk megadásához. További információ: Egyéni attribútumok létrehozása (Visual Basic).
Egy vagy több attribútumot alkalmazhat teljes szerelvényekre, modulokra vagy kisebb programelemekre, például osztályokra és tulajdonságokra.
Az attribútumok ugyanúgy fogadnak el argumentumokat, mint a metódusok és a tulajdonságok.
A program reflexió használatával megvizsgálhatja a saját metaadatait vagy más programok metaadatait. További információ: Attribútumok elérése tükröződés (Visual Basic) használatával.
Attribútumok használata
Az attribútumok a legtöbb deklarációra elhelyezhetők, bár egy adott attribútum korlátozhatja az érvényes deklarációk típusait. A Visual Basic egy attribútumot szögletes zárójelek (<>) közé zár. Közvetlenül az elem előtt kell megjelennie, amelyre alkalmazva van, ugyanazon a sorban.
Ebben a példában az SerializableAttribute attribútum egy adott jellemző egy osztályra való alkalmazásához használatos:
<System.Serializable()> Public Class SampleClass
' Objects of this type can be serialized.
End Class
Az attribútummal DllImportAttribute rendelkező metódus a következőképpen van deklarálva:
Imports System.Runtime.InteropServices
<System.Runtime.InteropServices.DllImport("user32.dll")>
Sub SampleMethod()
End Sub
Egy deklarációhoz több attribútum is elhelyezhető:
Imports System.Runtime.InteropServices
Sub MethodA(<[In](), Out()> ByVal x As Double)
End Sub
Sub MethodB(<Out(), [In]()> ByVal x As Double)
End Sub
Egyes attribútumok egy adott entitáshoz többször is megadhatóak. Ilyen multiuse attribútum például a következő ConditionalAttribute:
<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub
Megjegyzés
Konvenció szerint az attribútumnevek az "Attribútum" szóval végződnek, hogy megkülönböztessék őket a .NET-keretrendszer többi elemétől. Az attribútumok kódban való használatakor azonban nem kell megadnia az attribútum-utótagot. Ez például [DllImport]
egyenértékű [DllImportAttribute]
a .NET-keretrendszer DllImportAttribute
attribútum tényleges nevével.
Attribútumparaméterek
Számos attribútum rendelkezik paraméterekkel, amelyek lehetnek pozicionáltak, névtelenek vagy elnevezettek. A pozícióparamétereket meghatározott sorrendben kell megadni, és nem hagyhatók ki; A megnevezett paraméterek megadása nem kötelező, és bármilyen sorrendben megadható. Először a pozícióparaméterek vannak megadva. Ez a három attribútum például egyenértékű:
<DllImport("user32.dll")>
<DllImport("user32.dll", SetLastError:=False, ExactSpelling:=False)>
<DllImport("user32.dll", ExactSpelling:=False, SetLastError:=False)>
Az első paraméter, a DLL neve pozíciós, és mindig az első; a többit elnevezték. Ebben az esetben mindkét elnevezett paraméter alapértelmezés szerint hamis, így elhagyhatóak. Az alapértelmezett paraméterértékekkel kapcsolatos információkért tekintse meg az egyes attribútumok dokumentációját.
Attribútumpéldányok
Az attribútum célja az az entitás, amelyre az attribútum vonatkozik. Előfordulhat például, hogy egy attribútum egy osztályra, egy adott metódusra vagy egy teljes szerelvényre vonatkozik. Alapértelmezés szerint az attribútum az előtte lévő elemre vonatkozik. De explicit módon is azonosíthatja például, hogy egy attribútum egy metódusra, annak paraméterére vagy visszatérési értékére van-e alkalmazva.
Az attribútum céljának explicit azonosításához használja az alábbi szintaxist:
<target : attribute-list>
A lehetséges target
értékek listája az alábbi táblázatban látható.
Célérték | A következőre érvényes: |
---|---|
assembly |
Teljes szerelvény |
module |
Aktuális szerelvénymodul (amely eltér a Visual Basic-modultól) |
Az alábbi példa bemutatja, hogyan alkalmazhat attribútumokat szerelvényekre és modulokra. További információ: Common Attributes (Visual Basic).
Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>
Attribútumok gyakori használati módjai
Az alábbi lista a kódban használt attribútumok néhány gyakori használatát tartalmazza:
A webszolgáltatások attribútumát használó
WebMethod
metódusok megjelölése annak jelzésére, hogy a metódusnak a SOAP protokollon keresztül hívhatónak kell lennie. További információ: WebMethodAttribute.A metódusparaméterek a natív kóddal való együttműködés során történő kezelésének ismertetése. További információ: MarshalAsAttribute.
Az osztályok, metódusok és felületek COM-tulajdonságainak leírása.
Nem felügyelt kód hívása az DllImportAttribute osztály használatával.
A szerelvény leírása a cím, a verzió, a leírás vagy a védjegy szempontjából.
Annak leírása, hogy egy osztály mely tagjai szerializálják az adatmegőrzést.
Az osztálytagok és az XML-csomópontok közötti megfeleltetés leírása XML-szerializáláshoz.
A metódusok biztonsági követelményeinek ismertetése.
A biztonság kikényszerítéséhez használt jellemzők megadása.
Az optimalizálások szabályozása az igény szerinti (JIT) fordítóval, hogy a kód hibakeresése továbbra is könnyen elvégezhető legyen.
A hívóval kapcsolatos információk lekérése egy metódushoz.
Kapcsolódó témakörök
További információkért lásd:
Attribútumok elérése tükröződés használatával (Visual Basic)
Útmutató: C/C++ unió létrehozása attribútumok használatával (Visual Basic)