Sdílet prostřednictvím


Společné atributy (C# a Visual Basic)

Toto téma popisuje atributy, které se nejčastěji používají v C# a Visual Basic.

  • Globální atributy

  • Zastaralé atribut

  • Atribut Conditional

  • Atributy volající Info

  • Atributy jazyka Visual Basic

Globální atributy

Většina atributy se aplikují na specifických prvků jazyka jako třídy nebo metody; Některé atributy jsou však globální, vztahují se na celé sestavení nebo modulu.Například AssemblyVersionAttribute atribut lze vložit informace o verzi do sestavení, například takto:

[assembly: AssemblyVersion("1.0.0.0")]
<Assembly: AssemblyVersion("1.0.0.0")>

Globální atributy se zobrazí ve zdrojovém kódu po libovolné nejvyšší úrovně using směrnic (Imports v jazyce Visual Basic) a před všemi deklaracemi typu, modulu nebo oboru názvů.Globální atributy se mohou objevit v více zdrojových souborů, ale musí být kompilován soubory v jedné kompilace průchodu.Pro projekty jazyka Visual Basic globální atributy budou obecně do souboru AssemblyInfo.vb, který je automaticky vytvořen s Visual Basic projekty.V jazyce C# projekty jsou vloženy v souboru AssemblyInfo.cs.

Atributy sestavení jsou hodnoty, které poskytují informace o sestavení.Jsou rozděleny do následujících kategorií:

  • Atributy identity sestavení

  • Informační atributy

  • Atributy manifestu sestavení

  • Atributy silného názvu

z371wyft.collapse_all(cs-cz,VS.110).gifAtributy identity sestavení

Tři atributy (se silným názvem, popřípadě) zjistit identitu sestavení: název, verze a kultury.Tyto atributy tvoří úplný název sestavení a jsou vyžadovány při odkazu kód.Můžete nastavit sestavení verze a kultura pomocí atributů.Je však nastavena hodnota název kompilátorem, Visual Studio IDE v V dialogovém okně informace o sestavení, nebo na soubor, který obsahuje manifestu sestavení Assembly Linker (program Al.exe) při sestavení.AssemblyFlagsAttribute Atribut určuje, zda mohou společně existovat více kopií sestavení.

V následující tabulce jsou uvedeny atributy identity.

Atribut

Účel

AssemblyName

Popisuje plně identity sestavení.

AssemblyVersionAttribute

Určuje verzi sestavení.

AssemblyCultureAttribute

Určuje, který podporuje sestavení kultur.

AssemblyFlagsAttribute

Určuje, zda sestavení podporuje spuštění vedle sebe ve stejném počítači, ve stejném procesu, nebo stejné aplikační domény.

z371wyft.collapse_all(cs-cz,VS.110).gifInformační atributy

Informační atributy lze použít k poskytnutí dodatečných informací o společnosti či produktu danému sestavení.Následující tabulka zobrazuje informační atributy definované v System.Reflection oboru názvů.

Atribut

Účel

AssemblyProductAttribute

Definuje vlastní atribut, který určuje název produktu manifestu sestavení.

AssemblyTrademarkAttribute

Definuje vlastní atribut, který určuje ochranná známka pro manifestu sestavení.

AssemblyInformationalVersionAttribute

Definuje vlastní atribut, který určuje verze aplikace informační pro manifestu sestavení.

AssemblyCompanyAttribute

Definuje vlastní atribut, který určuje název společnosti pro manifestu sestavení.

AssemblyCopyrightAttribute

Definuje vlastní atribut, který určuje autorská práva pro manifestu sestavení.

AssemblyFileVersionAttribute

Nastaví číslo konkrétní verzi použít prostředek systému Win32 soubor verze kompilátoru.

CLSCompliantAttribute

Označuje, zda je kompatibilní s společný jazyk specifikace (CLS) sestavení.

z371wyft.collapse_all(cs-cz,VS.110).gifAtributy manifestu sestavení

Můžete poskytnout informace v manifestu sestavení atributy manifestu sestavení.To zahrnuje název, popis, výchozí alias a konfigurace.Následující tabulka zobrazuje atributy manifestu sestavení definované v System.Reflection oboru názvů.

Atribut

Účel

AssemblyTitleAttribute

Definuje vlastní atribut, který určuje název sestavení manifestu sestavení.

AssemblyDescriptionAttribute

Definuje vlastní atribut, který určuje popis sestavení manifestu sestavení.

AssemblyConfigurationAttribute

Definuje vlastní atribut, který určuje konfiguraci služby sestavení (například prodejní nebo ladění) pro manifestu sestavení.

AssemblyDefaultAliasAttribute

Určuje popisný výchozí alias pro manifest sestavení

z371wyft.collapse_all(cs-cz,VS.110).gifAtributy silného názvu

V předchozích verzích aplikace Visual Studio pomocí silných názvů podepisování sestavení bylo provedeno s těmito atributy na úrovni sestavení:

To je nadále podporována, ale je preferovaný způsob podepisování sestavení použít Podepisování stránky v Návrháři projektu.Další informace naleznete v tématu Podepisování stránky projektu Designer a Jak: podepsat sestavení (Visual Studio).

Zastaralé atribut

Obsolete Atribut označí program subjekt jako jeden, který je již není vhodné používat.Každé použití entity označena jako zastaralá bude následně generovat upozornění nebo Chyba v závislosti na konfiguraci atributu.Příklad:

    <System.Obsolete("use class B")> 
    Class A
        Sub Method()
        End Sub
    End Class

    Class B
        <System.Obsolete("use NewMethod", True)> 
        Sub OldMethod()
        End Sub

        Sub NewMethod()
        End Sub
    End Class

[System.Obsolete("use class B")]
class A
{
    public void Method() { }
}
class B
{
    [System.Obsolete("use NewMethod", true)]
    public void OldMethod() { }
    public void NewMethod() { }
}

V tomto příkladu Obsolete u atributu class A a metoda B.OldMethod.Protože druhý argument konstruktoru atribut použitý pro B.OldMethod je nastavena na true, tato metoda způsobí chybu kompilátoru, vzhledem k tomu, že použití třídy A bude pouze produkty upozornění.Volání B.NewMethod, vytváří však žádné upozornění nebo chyba.

Zobrazí se řetězec jako první argument konstruktoru atribut jako součást upozornění nebo chyba.Například při použití s předchozí definice, následující kód vygeneruje dva varování a jednu chybu:

' Generates 2 warnings:
' Dim a As New A
' Generate no errors or warnings:

Dim b As New B
b.NewMethod()

' Generates an error, terminating compilation:
' b.OldMethod()
// Generates 2 warnings:
// A a = new A();

// Generate no errors or warnings:
B b = new B();
b.NewMethod();

// Generates an error, terminating compilation:
// b.OldMethod();

Dvě upozornění pro třídu A jsou generovány: jeden pro prohlášení o odkaz na třídu a jeden pro konstruktor třídy.

Obsolete Atribut lze použít bez argumentů, ale zboží včetně vysvětlení, proč je zastaralá a místo použití je doporučeno.

Obsolete Atributu je atribut jedno použití a lze použít jakýkoli subjekt, který umožňuje atributy.Obsoleteje alias ObsoleteAttribute.

Atribut Conditional

Conditional Atribut umožňuje spuštění metody závislé na předzpracování identifikátor.Conditional Je alias pro atribut ConditionalAttributea lze je použít metodu nebo o třídu atributu.

V tomto příkladu Conditional je použita metoda povolení nebo zakázání zobrazení diagnostických informací specifických pro program:


#Const TRACE_ON = True
Imports System
Imports System.Diagnostics
Module TestConditionalAttribute
    Public Class Trace
        <Conditional("TRACE_ON")> 
        Public Shared Sub Msg(ByVal msg As String)
            Console.WriteLine(msg)
        End Sub

    End Class

    Sub Main()
        Trace.Msg("Now in Main...")
        Console.WriteLine("Done.")
    End Sub
End Module
#define TRACE_ON
using System;
using System.Diagnostics;

public class Trace
{
    [Conditional("TRACE_ON")]
    public static void Msg(string msg)
    {
        Console.WriteLine(msg);
    }
}

public class ProgramClass
{
    static void Main()
    {
        Trace.Msg("Now in Main...");
        Console.WriteLine("Done.");
    }
}

Pokud TRACE_ON identifikátor není definována, bude zobrazen žádný výstup.

Conditional Atribut je používán DEBUG identifikátor povolit trasování a funkce protokolování ladění, ale není ve verzi sestavení, tímto způsobem:

<Conditional("DEBUG")> 
Shared Sub DebugMethod()

End Sub
[Conditional("DEBUG")]
static void DebugMethod()
{
}

Při volání metody označena jako podmíněné přítomnosti nebo nepřítomnosti určeného symbolu předzpracování určuje zahrnuty nebo vynechány volání.Pokud je definován symbol, volání je zahrnut; jinak je vynechán volání.Pomocí Conditional je Čistič, alternativní elegantnější a méně náchylnému k uzavření metody uvnitř #if…#endif bloky takto:

#If DEBUG Then
    Sub ConditionalMethod()
    End Sub
#End If
#if DEBUG
    void ConditionalMethod()
    {
    }
#endif

Podmíněné metoda musí být metodu ve třídě nebo struktuře prohlášení a nesmí mít hodnotu vrácení.

z371wyft.collapse_all(cs-cz,VS.110).gifPoužití více identifikátorů

Pokud metoda má více Conditional atributy, volání metody je zahrnuta, pokud je definována nejméně jedna symboly podmíněné (jinými slovy, symboly jsou logicky spojeny operátorem OR).V tomto příkladu přítomnost buď A nebo B výsledkem volání metody:

<Conditional("A"), Conditional("B")> 
Shared Sub DoIfAorB()

End Sub
[Conditional("A"), Conditional("B")]
static void DoIfAorB()
{
    // ...
}

Chcete-li dosáhnout logicky propojení symbolů pomocí operátoru AND, můžete definovat sériové podmíněné metody.Například pod druhou metodu bude proveden pouze v případě obou A a B jsou definovány:

<Conditional("A")> 
Shared Sub DoIfA()
    DoIfAandB()
End Sub

<Conditional("B")> 
Shared Sub DoIfAandB()
    ' Code to execute when both A and B are defined...
End Sub
[Conditional("A")]
static void DoIfA()
{
    DoIfAandB();
}

[Conditional("B")]
static void DoIfAandB()
{
    // Code to execute when both A and B are defined...
}

z371wyft.collapse_all(cs-cz,VS.110).gifPomocí podmíněného atribut třídy.

Conditional Atribut lze použít také k definici atributu třídy.V tomto příkladu vlastní atribut Documentation bude přidat pouze informace k metadatům ladění je definována.

<Conditional("DEBUG")> 
Public Class Documentation
    Inherits System.Attribute
    Private text As String
    Sub New(ByVal doc_text As String)
        text = doc_text
    End Sub
End Class

Class SampleClass
    ' This attribute will only be included if DEBUG is defined.
    <Documentation("This method displays an integer.")> 
    Shared Sub DoWork(ByVal i As Integer)
        System.Console.WriteLine(i)
    End Sub
End Class
[Conditional("DEBUG")]
public class Documentation : System.Attribute
{
    string text;

    public Documentation(string text)
    {
        this.text = text;
    }
}

class SampleClass
{
    // This attribute will only be included if DEBUG is defined.
    [Documentation("This method displays an integer.")]
    static void DoWork(int i)
    {
        System.Console.WriteLine(i.ToString());
    }
}

Atributy volající Info

Pomocí atributů volající Info lze získat informace o volající metodu.Můžete získat cestu k souboru zdrojový kód, číslo řádku v zdrojový kód a název člena volajícího.

Chcete-li získat informace volajícího členské použijete atributy, které jsou použity volitelné parametry.Každý volitelný parametr určuje výchozí hodnotu.Následující tabulka obsahuje informace o volajícím atributy, které jsou definovány v System.Runtime.CompilerServices oboru názvů:

Atribut

Description

Type

CallerFilePathAttribute

Úplná cesta zdrojového souboru, který obsahuje volajícího.Toto je cesta v době kompilace.

String

CallerLineNumberAttribute

Číslo řádku ve zdrojovém souboru, ze kterého je volána metoda.

Integer

CallerMemberNameAttribute

Název metody nebo vlastnosti název volajícího.Další informace naleznete v tématu Volajícího (C# a Visual Basic).

String

Další informace o atributech volající Info viz Volajícího (C# a Visual Basic).

Atributy jazyka Visual Basic

V následující tabulce jsou uvedeny atributy, které jsou specifické pro aplikaci Visual Basic.

Atribut

Účel

ComClassAttribute

Kompilátoru označuje, že třída by měly být vystaveny jako objekt COM.

HideModuleNameAttribute

Umožňuje přistupovat pouze kvalifikace potřebné pro modul modul členů.

VBFixedStringAttribute

Určuje velikost řetězec pevné délky struktury pro použití souboru vstupní a výstupní funkce.

VBFixedArrayAttribute

Určuje velikost pole o pevné struktury pro použití souboru vstupní a výstupní funkce.

z371wyft.collapse_all(cs-cz,VS.110).gifCOMClassAttribute

Použití COMClassAttribute zjednodušit proces vytváření komponent modelu COM z Visual Basic.Objekty modelu COM jsou značně odlišné od .NET Framework sestavení a bez COMClassAttribute, je nutné postupovat počet kroků k vytvoření objektu COM z Visual Basic.Pro třídy označeny COMClassAttribute, kompilátor provádí řadu tyto kroky automaticky.

z371wyft.collapse_all(cs-cz,VS.110).gifHideModuleNameAttribute

Použití HideModuleNameAttribute umožníte členům modul je přístupný pouze kvalifikace potřebné pro modul.

z371wyft.collapse_all(cs-cz,VS.110).gifVBFixedStringAttribute

Použití VBFixedStringAttribute k Visual Basic vytvořit řetězec pevné délky.Proměnné délky ve výchozím nastavení jsou řetězce a tento atribut je užitečné při ukládání souborů řetězce.Následující kód ukazuje toto:

Structure Worker
    ' The runtime uses VBFixedString to determine 
    ' if the field should be written out as a fixed size.
    <VBFixedString(10)> Public LastName As String
    <VBFixedString(7)> Public Title As String
    <VBFixedString(2)> Public Rank As String
End Structure

z371wyft.collapse_all(cs-cz,VS.110).gifVBFixedArrayAttribute

Použití VBFixedArrayAttribute prohlásit pole, které mají pevnou velikost.Jako Visual Basic řetězce pole jsou ve výchozím nastavení proměnné délky.Tento atribut je užitečné při serializaci nebo zápisu dat do souborů.

Viz také

Referenční dokumentace

Odraz (C# a Visual Basic)

Přístup atributy pomocí odrazu (C# a Visual Basic)

System.Reflection

Attribute

Koncepty

Příručka programování C#

Další zdroje

Příručka programování v jazyce Visual Basic

Rozšíření metadat pomocí atributů