특성 적용Applying Attributes

다음 프로세스를 사용하여 코드 요소에 특성을 적용합니다.Use the following process to apply an attribute to an element of your code.

  1. 새 특성을 정의하거나 .NET Framework에서 기존 특성의 네임스페이스를 가져와 이 특성을 사용합니다.Define a new attribute or use an existing attribute by importing its namespace from the .NET Framework.

  2. 코드 요소 바로 앞에 특성을 배치하여 이 요소에 해당 특성을 적용합니다.Apply the attribute to the code element by placing it immediately before the element.

    각 언어마다 고유한 특성 구문이 있습니다.Each language has its own attribute syntax. C++ 및 C#의 경우 특성은 대괄호로 묶고, 공백으로 요소와 구분되며, 줄 바꿈 문자를 사용할 수 있습니다.In C++ and C#, the attribute is surrounded by square brackets and separated from the element by white space, which can include a line break. Visual Basic의 경우 특성은 꺾쇠 괄호로 묶고, 같은 논리 줄에 있어야 합니다. 줄 바꿈이 필요하면 줄 연속 문자를 사용할 수 있습니다.In Visual Basic, the attribute is surrounded by angle brackets and must be on the same logical line; the line continuation character can be used if a line break is desired.

  3. 특성에 대한 위치 매개 변수와 명명된 매개 변수를 지정합니다.Specify positional parameters and named parameters for the attribute.

    위치 매개 변수는 필수 요소로서 명명된 매개 변수 앞에 와야 하며, 특성의 생성자 중 하나의 매개 변수에 해당합니다.Positional parameters are required and must come before any named parameters; they correspond to the parameters of one of the attribute's constructors. 명명된 매개 변수는 선택적 요소이며, 특성의 읽기/쓰기 속성에 해당합니다.Named parameters are optional and correspond to read/write properties of the attribute. C++ 및 C#의 경우 각 선택적 매개 변수에 name=value를 지정합니다. 여기서 name은 속성의 이름입니다.In C++, and C#, specify name=value for each optional parameter, where name is the name of the property. Visual Basic의 경우 name:=value를 지정합니다.In Visual Basic, specify name:=value.

특성은 코드를 컴파일할 때 메타데이터로 내보내지며, 공용 언어 런타임과 사용자 지정 도구 또는 애플리케이션에서 런타임 리플렉션 서비스를 통해 사용할 수 있습니다.The attribute is emitted into metadata when you compile your code and is available to the common language runtime and any custom tool or application through the runtime reflection services.

모든 특성 이름은 규칙에 따라 Attribute로 끝납니다.By convention, all attribute names end with Attribute. 하지만 런타임을 목적으로 하는 일부 언어(예: Visual Basic 및 C#)에서는 특성의 전체 이름을 지정할 필요가 없습니다.However, several languages that target the runtime, such as Visual Basic and C#, do not require you to specify the full name of an attribute. 예를 들어 System.ObsoleteAttribute를 초기화하려는 경우 Obsolete로만 참조해야 합니다.For example, if you want to initialize System.ObsoleteAttribute, you only need to reference it as Obsolete.

메서드에 특성 적용Applying an Attribute to a Method

다음 코드 예제에서는 코드를 오래된 것으로 표시하는 System.ObsoleteAttribute를 선언하는 방법을 보여 줍니다.The following code example shows how to declare System.ObsoleteAttribute, which marks code as obsolete. "Will be removed in next version" 문자열이 특성에 전달됩니다.The string "Will be removed in next version" is passed to the attribute. 이 특성이 설명하는 코드가 호출되면 이 특성으로 인해 전달된 문자열을 표시하는 컴파일러 경고가 발생합니다.This attribute causes a compiler warning that displays the passed string when code that the attribute describes is called.

public ref class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
public:
    [Obsolete("Will be removed in next version.")]
    static int Add(int a, int b)
    {
        return (a + b);
    }
};

ref class Test
{
public:
    static void Main()
    {
        // This generates a compile-time warning.
        int i = Example::Add(2, 2);
    }
};

int main()
{
    Test::Main();
}
public class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
    [Obsolete("Will be removed in next version.")]
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}

class Test
{
    public static void Main()
    {
        // This generates a compile-time warning.
        int i = Example.Add(2, 2);
    }
}
Public Class Example
    ' Specify attributes between square brackets in C#.
    ' This attribute is applied only to the Add method.
    <Obsolete("Will be removed in next version.")>
    Public Shared Function Add(a As Integer, b As Integer) As Integer
        Return a + b
    End Function
End Class

Class Test
    Public Shared Sub Main()
        ' This generates a compile-time warning.
        Dim i As Integer = Example.Add(2, 2)
    End Sub
End Class

어셈블리 수준에서 특성 적용Applying Attributes at the Assembly Level

어셈블리 수준에서 특성을 적용하려면 assembly(Visual Basic에서는 Assembly) 키워드를 사용합니다.If you want to apply an attribute at the assembly level, use the assembly (Assembly in Visual Basic) keyword. 다음 코드에서는 어셈블리 수준에서 적용된 AssemblyTitleAttribute를 보여 줍니다.The following code shows the AssemblyTitleAttribute applied at the assembly level.

using namespace System::Reflection;
[assembly:AssemblyTitle("My Assembly")];
using System.Reflection;
[assembly:AssemblyTitle("My Assembly")]
Imports System.Reflection
<Assembly:AssemblyTitle("My Assembly")>

이 특성을 적용하면 "My Assembly" 문자열이 해당 파일의 메타데이터 부분에 있는 어셈블리 매니페스트에 배치됩니다.When this attribute is applied, the string "My Assembly" is placed in the assembly manifest in the metadata portion of the file. Ildasm.exe(MSIL 디스어셈블러)를 사용하거나 특성을 검색하는 사용자 지정 프로그램을 만들어 이 특성을 볼 수 있습니다.You can view the attribute either by using the MSIL Disassembler (Ildasm.exe) or by creating a custom program to retrieve the attribute.

참고 항목See also