Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ě
Související oddíly
Další informace najdete tady: