Sdílet prostřednictvím


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 tento atribut za běhu dotazovat pomocí techniky označované reflexe. Další informace naleznete 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 typu definované v sestavení. Můžete přidat vlastní atributy a zadat další požadované informace. Další informace najdete v tématu Vytváření vlastních atributů (Visual Basic).

  • U celých sestavení, modulů nebo menších prvků programu, jako jsou třídy a vlastnosti, můžete použít jeden nebo více atributů.

  • 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žití 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 jazyce Visual Basic je atribut uzavřený v hranatých závorkách (<>). Musí se zobrazit bezprostředně před prvkem, na kterém je použit, na stejném řádku.

V tomto příkladu se atribut SerializableAttribute 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 než jeden 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 víceúčelového atributu je ConditionalAttribute:

<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub

Poznámka:

Podle konvence končí všechny názvy atributů slovem "Attribute", aby se odlišily od jiných položek v rozhraní .NET Framework. Při použití atributů v kódu však nemusíte zadávat příponu atributu. Například [DllImport] je ekvivalentní k [DllImportAttribute], ale DllImportAttribute je skutečný název atributu v rozhraní .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 jej 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ě oba pojmenované parametry mají 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. Například atribut může 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 Vztahuje se na
assembly Celé sestavení
module Aktuální modul sestavení (který se liší od modulu jazyka Visual Basic)

Následující příklad ukazuje, jak aplikovat atributy pro sestavení a moduly. Další informace naleznete v tématu Běžné atributy (Visual Basic).

Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>

Běžné použití atributů

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, které označuje, že metoda by měla být volána přes protokol SOAP. Další informace najdete v tématu WebMethodAttribute.

  • Popis postupu zařazování parametrů metody při spolupráci s nativním kódem Další informace najdete v tématu MarshalAsAttribute.

  • Popis vlastností modelu COM pro třídy, metody a rozhraní.

  • Volání nespravovaného kódu pomocí třídy DllImportAttribute

  • Popis vašeho sestavení z pohledu názvu, verze, popisu nebo ochranné známky.

  • Popis, které členy třídy 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žívaných k vynucení zabezpečení

  • Řízení optimalizací kompilátorem JIT (just-in-time), aby bylo možné kód snadno ladit.

  • Získání informací o volajícím metodě

Další informace najdete tady:

Viz také