Přehled atributů (Visual Basic)
Atributy poskytují výkonnou metodu asociování metadat nebo deklarativních informací s kódem (sestavení, typy, metody, vlastnosti atd.). Po přidružení atributu k entitě programu lze atribut dotazovat za běhu pomocí techniky označované jako reflexe. Další informace najdete v tématu Reflexe (Visual Basic).
Atributy mají následující vlastnosti:
Atributy přidávají do programu metadata. Metadata jsou informace o typech definovaných v programu. Všechna sestavení .NET obsahují zadanou sadu metadat, která popisují typy a členy typů definované v sestavení. Můžete přidat vlastní atributy a zadat další informace, které jsou požadovány. Další informace naleznete v tématu Vytváření vlastních atributů (Visual Basic).
Jeden nebo více atributů můžete použít pro celá sestavení, moduly nebo menší prvky programu, jako jsou třídy a vlastnosti.
Atributy mohou přijímat argumenty stejným způsobem jako metody a vlastnosti.
Program může zkoumat vlastní metadata nebo metadata v jiných programech pomocí reflexe. Další informace naleznete v tématu Přístup k atributům pomocí reflexe (Visual Basic).
Používání atributů
Atributy lze umístit na většinu jakékoli deklarace, i když určitý atribut může omezit typy deklarací, na kterých je platná. V Visual Basic je atribut uzavřen do úhlových závorek (<>). Musí se objevit bezprostředně před prvkem, na kterém je použit, na stejném řádku.
V tomto příkladu SerializableAttribute se atribut používá k použití konkrétní charakteristiky třídy:
<System.Serializable()> Public Class SampleClass
' Objects of this type can be serialized.
End Class
Metoda s atributem DllImportAttribute je deklarována takto:
Imports System.Runtime.InteropServices
<System.Runtime.InteropServices.DllImport("user32.dll")>
Sub SampleMethod()
End Sub
Do deklarace lze umístit více atributů:
Imports System.Runtime.InteropServices
Sub MethodA(<[In](), Out()> ByVal x As Double)
End Sub
Sub MethodB(<Out(), [In]()> ByVal x As Double)
End Sub
Některé atributy lze pro danou entitu zadat více než jednou. Příkladem takového atributu multiuse je ConditionalAttribute:
<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub
Poznámka
Podle konvence všechny názvy atributů končí slovem "Atribut", aby se odlišily od ostatních položek v .NET Framework. Při použití atributů v kódu však nemusíte zadávat příponu atributu. Je například [DllImport]
ekvivalentní [DllImportAttribute]
, ale DllImportAttribute
představuje skutečný název atributu v .NET Framework.
Parametry atributu
Mnoho atributů má parametry, které můžou být poziční, nepojmenované nebo pojmenované. Všechny poziční parametry musí být zadány v určitém pořadí a nelze je vynechat; pojmenované parametry jsou volitelné a lze je zadat v libovolném pořadí. Nejprve jsou zadány poziční parametry. Například tyto tři atributy jsou ekvivalentní:
<DllImport("user32.dll")>
<DllImport("user32.dll", SetLastError:=False, ExactSpelling:=False)>
<DllImport("user32.dll", ExactSpelling:=False, SetLastError:=False)>
První parametr, název knihovny DLL, je poziční a vždy přichází jako první; ostatní jsou pojmenováni. V tomto případě mají oba pojmenované parametry výchozí hodnotu false, aby je bylo možné vynechat. Informace o výchozích hodnotách parametrů najdete v dokumentaci jednotlivých atributů.
Cíle atributů
Cílem atributu je entita, na kterou se atribut vztahuje. Atribut může například platit pro třídu, konkrétní metodu nebo celé sestavení. Ve výchozím nastavení se atribut vztahuje na prvek, který předchází. Můžete ale také explicitně identifikovat, například to, jestli se atribut použije na metodu, nebo na jeho parametr nebo na jeho návratovou hodnotu.
Pokud chcete explicitně identifikovat cíl atributu, použijte následující syntaxi:
<target : attribute-list>
Seznam možných target
hodnot je uveden v následující tabulce.
Cílová hodnota | Platí pro |
---|---|
assembly |
Celé sestavení |
module |
Aktuální modul sestavení (který se liší od modulu Visual Basic) |
Následující příklad ukazuje, jak použít atributy na sestavení a moduly. Další informace naleznete v tématu Společné atributy (Visual Basic).
Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>
Běžné použití pro atributy
Následující seznam obsahuje několik běžných použití atributů v kódu:
Označení metod pomocí atributu
WebMethod
ve webových službách k označení, že metoda by měla být voláná přes protokol SOAP. Další informace naleznete v tématu WebMethodAttribute.Popis postupu zařazování parametrů metody při spolupráci s nativním kódem Další informace naleznete v tématu MarshalAsAttribute.
Popis vlastností modelu COM pro třídy, metody a rozhraní.
Volání nespravovaného kódu pomocí DllImportAttribute třídy
Popis sestavení z hlediska názvu, verze, popisu nebo ochranné známky
Popis členů třídy, které se mají serializovat pro trvalost.
Popis mapování mezi členy třídy a uzly XML pro serializaci XML.
Popis požadavků na zabezpečení pro metody
Určení charakteristik použitých k vynucení zabezpečení
Řízení optimalizací kompilátorem JIT (just-in-time), aby byl kód snadno laděný.
Získání informací o volající metodě
Související oddíly
Další informace naleznete v tématu: