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ě

Další informace naleznete v tématu:

Viz také