내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Attribute 클래스

2013-12-13

사용자 지정 특성에 대한 기본 클래스를 나타냅니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
public abstract class Attribute

Attribute 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Protected 메서드AttributeAttribute 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 메서드Equals인프라입니다. 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (Object.Equals(Object)을(를) 재정의함)
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드정적 멤버GetCustomAttribute(Assembly, Type)지정된 어셈블리에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 어셈블리와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttribute(MemberInfo, Type)형식 멤버에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 멤버와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttribute(Module, Type)모듈에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 모듈과 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttribute(ParameterInfo, Type)메서드 매개 변수에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 메서드 매개 변수와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttribute(Assembly, Type, Boolean)어셈블리에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 어셈블리, 검색할 사용자 지정 특성의 형식 및 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버GetCustomAttribute(MemberInfo, Type, Boolean)형식 멤버에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 멤버, 검색할 사용자 지정 특성의 형식 및 상위 멤버의 검색 여부를 지정합니다.
Public 메서드정적 멤버GetCustomAttribute(Module, Type, Boolean)모듈에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 모듈, 검색할 사용자 지정 특성의 형식 및 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버GetCustomAttribute(ParameterInfo, Type, Boolean)메서드 매개 변수에 적용된 사용자 지정 특성을 검색합니다. 매개 변수에는 메서드 매개 변수, 검색할 사용자 지정 특성 형식 및 상위 메서드 매개 변수의 검색 여부를 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Assembly)어셈블리에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 어셈블리를 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(MemberInfo)형식 멤버에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수는 멤버를 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Module)모듈에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 모듈을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(ParameterInfo)메서드 매개 변수에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 메서드 매개 변수를 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Assembly, Boolean)어셈블리에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 어셈블리와 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Assembly, Type)어셈블리에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 어셈블리와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(MemberInfo, Boolean)형식 멤버에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 멤버, 검색할 사용자 지정 특성의 형식 및 상위 멤버의 검색 여부를 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(MemberInfo, Type)형식 멤버에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 멤버와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Module, Boolean)모듈에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 모듈과 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Module, Type)모듈에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 모듈과 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(ParameterInfo, Boolean)메서드 매개 변수에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 메서드 매개 변수 및 상위 메서드 매개 변수의 검색 여부를 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(ParameterInfo, Type)메서드 매개 변수에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 메서드 매개 변수와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Assembly, Type, Boolean)어셈블리에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 어셈블리, 검색할 사용자 지정 특성의 형식 및 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(MemberInfo, Type, Boolean)형식 멤버에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 멤버, 검색할 사용자 지정 특성의 형식 및 상위 멤버의 검색 여부를 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(Module, Type, Boolean)모듈에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 모듈, 검색할 사용자 지정 특성의 형식 및 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버GetCustomAttributes(ParameterInfo, Type, Boolean)메서드 매개 변수에 적용된 사용자 지정 특성의 배열을 검색합니다. 매개 변수에는 메서드 매개 변수, 검색할 사용자 지정 특성 형식 및 상위 메서드 매개 변수의 검색 여부를 지정합니다.
Public 메서드GetHashCode해당 인스턴스에 대한 해시 코드를 반환합니다. (Object.GetHashCode()을(를) 재정의함)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드정적 멤버IsDefined(Assembly, Type)사용자 지정 특성이 어셈블리에 적용되었는지 여부를 결정합니다. 매개 변수에는 어셈블리와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버IsDefined(MemberInfo, Type)사용자 지정 특성이 형식의 멤버에 적용되었는지 여부를 결정합니다. 매개 변수에는 멤버와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버IsDefined(Module, Type)지정된 형식의 사용자 지정 특성이 모듈에 적용되었는지 여부를 확인합니다. 매개 변수에는 모듈과 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버IsDefined(ParameterInfo, Type)사용자 지정 특성이 메서드 매개 변수에 적용되었는지 여부를 결정합니다. 매개 변수에는 메서드 매개 변수와 검색할 사용자 지정 특성의 형식을 지정합니다.
Public 메서드정적 멤버IsDefined(Assembly, Type, Boolean)사용자 지정 특성이 어셈블리에 적용되었는지 여부를 결정합니다. 매개 변수에는 어셈블리, 검색할 사용자 지정 특성의 형식 및 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버IsDefined(MemberInfo, Type, Boolean)사용자 지정 특성이 형식의 멤버에 적용되었는지 여부를 결정합니다. 매개 변수에는 멤버, 검색할 사용자 지정 특성의 형식 및 상위 멤버의 검색 여부를 지정합니다.
Public 메서드정적 멤버IsDefined(Module, Type, Boolean)사용자 지정 특성이 모듈에 적용되었는지 여부를 결정합니다. 매개 변수에는 모듈, 검색할 사용자 지정 특성의 형식 및 무시된 검색 옵션을 지정합니다.
Public 메서드정적 멤버IsDefined(ParameterInfo, Type, Boolean)사용자 지정 특성이 메서드 매개 변수에 적용되었는지 여부를 결정합니다. 매개 변수에는 메서드 매개 변수, 검색할 사용자 지정 특성 형식 및 상위 메서드 매개 변수의 검색 여부를 지정합니다.
Public 메서드Match파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
맨 위

Attribute 클래스는 미리 정의된 시스템 정보나 사용자 지정 정보를 대상 요소와 연결합니다. 대상 요소는 어셈블리, 클래스, 생성자, 대리자, 열거형, 이벤트, 필드, 인터페이스, 메서드, 이식 가능한 실행 파일 모듈, 매개 변수, 속성, 반환 값, 구조체 또는 다른 특성일 수 있습니다.

특성에 의해 제공되는 정보를 메타데이터라고도 합니다. 메타데이터를 검사하여 런타임에 응용프로그램에서 데이터를 처리하는 방법을 제어하거나 런타임 이전에 외부 도구에서 응용프로그램이 처리되고 관리되는 방법을 제어할 수 있습니다. 예를 들어, .NET Framework에서는 특성 형식을 미리 정의한 후 이 특성을 사용하여 런타임 동작을 제어하며, 일부 프로그래밍 언어에서는 특성 형식을 사용하여 .NET Framework 공용 형식 시스템에서 직접 지원하지 않는 언어 기능을 나타냅니다.

모든 특성 형식은 Attribute 클래스에서 직접 또는 간접적으로 파생됩니다. 특성은 모든 대상 요소에 적용할 수 있습니다. 여러 특성을 같은 대상 요소에 적용할 수 있으며 특성은 대상 요소에서 파생된 요소에서 상속될 수 있습니다. AttributeTargets 클래스를 사용하여 특성이 적용되는 대상 요소를 지정할 수 있습니다.

Attribute 클래스에는 사용자 지정 특성을 편리하게 검색하고 테스트할 수 있는 메서드가 있습니다.

다음 코드 예제에서는 Attribute를 사용하는 방법을 보여 줍니다.

참고참고:

이 예제를 실행하려면 Windows Phone용 정적 TextBlock 컨트롤이 있는 예제 빌드를 참조하세요.


using System;
using System.Reflection;

// An enumeration of animals. Start at 1 (0 = uninitialized).
public enum Animal
{
   // Pets.
   Dog = 1,
   Cat,
   Bird,
}

// A custom attribute to allow a target to have a pet.
public class AnimalTypeAttribute : Attribute
{
   // The constructor is called when the attribute is set.
   public AnimalTypeAttribute(Animal pet)
   {
      thePet = pet;
   }

   // Keep a variable internally ...
   protected Animal thePet;

   // .. and show a copy to the outside world.
   public Animal Pet
   {
      get { return thePet; }
      set { thePet = Pet; }
   }
}

// A test class where each method has its own pet.
class AnimalTypeTestClass
{
   [AnimalType(Animal.Dog)]
   public void DogMethod() { }

   [AnimalType(Animal.Cat)]
   public void CatMethod() { }

   [AnimalType(Animal.Bird)]
   public void BirdMethod() { }
}

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      AnimalTypeTestClass testClass = new AnimalTypeTestClass();
      Type type = testClass.GetType();
      // Iterate through all the methods of the class.
      foreach (MethodInfo mInfo in type.GetMethods())
      {
         // Iterate through all the Attributes for each method.
         foreach (Attribute attr in
             Attribute.GetCustomAttributes(mInfo))
         {
            // Check for the AnimalType attribute.
            if (attr.GetType() == typeof(AnimalTypeAttribute))
               outputBlock.Text += String.Format(
                   "Method {0} has a pet {1} attribute.",
                   mInfo.Name, ((AnimalTypeAttribute)attr).Pet) + "\n";
         }

      }
   }
}
/*
 * Output:
 * Method DogMethod has a pet Dog attribute.
 * Method CatMethod has a pet Cat attribute.
 * Method BirdMethod has a pet Bird attribute.
 */


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식은 스레드로부터 안전합니다.

System.Object
  System.Attribute
    Microsoft.Phone.Data.Linq.Mapping.IndexAttribute
    System.AttributeUsageAttribute
    System.CLSCompliantAttribute
    System.CodeDom.Compiler.GeneratedCodeAttribute
    System.ComponentModel.AlternateContentPropertyAttribute
    System.ComponentModel.BrowsableAttribute
    System.ComponentModel.CategoryAttribute
    System.ComponentModel.DefaultValueAttribute
    System.ComponentModel.DescriptionAttribute
    System.ComponentModel.EditorBrowsableAttribute
    System.ComponentModel.ReadOnlyAttribute
    System.ComponentModel.TypeConverterAttribute
    System.ContextStaticAttribute
    System.Data.Linq.Mapping.DataAttribute
    System.Data.Linq.Mapping.DatabaseAttribute
    System.Data.Linq.Mapping.InheritanceMappingAttribute
    System.Data.Linq.Mapping.TableAttribute
    System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
    System.Diagnostics.ConditionalAttribute
    System.Diagnostics.Contracts.ContractAbbreviatorAttribute
    System.Diagnostics.Contracts.ContractArgumentValidatorAttribute
    System.Diagnostics.Contracts.ContractClassAttribute
    System.Diagnostics.Contracts.ContractClassForAttribute
    System.Diagnostics.Contracts.ContractInvariantMethodAttribute
    System.Diagnostics.Contracts.ContractOptionAttribute
    System.Diagnostics.Contracts.ContractPublicPropertyNameAttribute
    System.Diagnostics.Contracts.ContractReferenceAssemblyAttribute
    System.Diagnostics.Contracts.ContractRuntimeIgnoredAttribute
    System.Diagnostics.Contracts.ContractVerificationAttribute
    System.Diagnostics.Contracts.PureAttribute
    System.Diagnostics.DebuggableAttribute
    System.Diagnostics.DebuggerBrowsableAttribute
    System.Diagnostics.DebuggerDisplayAttribute
    System.Diagnostics.DebuggerHiddenAttribute
    System.Diagnostics.DebuggerNonUserCodeAttribute
    System.Diagnostics.DebuggerStepThroughAttribute
    System.Diagnostics.DebuggerTypeProxyAttribute
    System.FlagsAttribute
    System.MTAThreadAttribute
    System.ObsoleteAttribute
    System.ParamArrayAttribute
    System.Reflection.AssemblyAlgorithmIdAttribute
    System.Reflection.AssemblyCompanyAttribute
    System.Reflection.AssemblyConfigurationAttribute
    System.Reflection.AssemblyCopyrightAttribute
    System.Reflection.AssemblyCultureAttribute
    System.Reflection.AssemblyDefaultAliasAttribute
    System.Reflection.AssemblyDelaySignAttribute
    System.Reflection.AssemblyDescriptionAttribute
    System.Reflection.AssemblyFileVersionAttribute
    System.Reflection.AssemblyFlagsAttribute
    System.Reflection.AssemblyInformationalVersionAttribute
    System.Reflection.AssemblyKeyFileAttribute
    System.Reflection.AssemblyKeyNameAttribute
    System.Reflection.AssemblyMetadataAttribute
    System.Reflection.AssemblyProductAttribute
    System.Reflection.AssemblySignatureKeyAttribute
    System.Reflection.AssemblyTitleAttribute
    System.Reflection.AssemblyTrademarkAttribute
    System.Reflection.AssemblyVersionAttribute
    System.Reflection.DefaultMemberAttribute
    System.Resources.NeutralResourcesLanguageAttribute
    System.Resources.SatelliteContractVersionAttribute
    System.Runtime.CompilerServices.AccessedThroughPropertyAttribute
    System.Runtime.CompilerServices.CallerFilePathAttribute
    System.Runtime.CompilerServices.CallerLineNumberAttribute
    System.Runtime.CompilerServices.CallerMemberNameAttribute
    System.Runtime.CompilerServices.CodeGenerationAttribute
    System.Runtime.CompilerServices.CompilationRelaxationsAttribute
    System.Runtime.CompilerServices.CompilerGeneratedAttribute
    System.Runtime.CompilerServices.CustomConstantAttribute
    System.Runtime.CompilerServices.DecimalConstantAttribute
    System.Runtime.CompilerServices.DynamicAttribute
    System.Runtime.CompilerServices.ExtensionAttribute
    System.Runtime.CompilerServices.FixedBufferAttribute
    System.Runtime.CompilerServices.IndexerNameAttribute
    System.Runtime.CompilerServices.InternalsVisibleToAttribute
    System.Runtime.CompilerServices.MethodImplAttribute
    System.Runtime.CompilerServices.ReferenceAssemblyAttribute
    System.Runtime.CompilerServices.RuntimeCompatibilityAttribute
    System.Runtime.CompilerServices.StateMachineAttribute
    System.Runtime.CompilerServices.TypeForwardedFromAttribute
    System.Runtime.CompilerServices.TypeForwardedToAttribute
    System.Runtime.CompilerServices.UnsafeValueTypeAttribute
    System.Runtime.InteropServices.AllowReversePInvokeCallsAttribute
    System.Runtime.InteropServices.ClassInterfaceAttribute
    System.Runtime.InteropServices.CoClassAttribute
    System.Runtime.InteropServices.ComDefaultInterfaceAttribute
    System.Runtime.InteropServices.ComImportAttribute
    System.Runtime.InteropServices.ComVisibleAttribute
    System.Runtime.InteropServices.DefaultCharSetAttribute
    System.Runtime.InteropServices.DispIdAttribute
    System.Runtime.InteropServices.DllImportAttribute
    System.Runtime.InteropServices.FieldOffsetAttribute
    System.Runtime.InteropServices.GuidAttribute
    System.Runtime.InteropServices.InAttribute
    System.Runtime.InteropServices.InterfaceTypeAttribute
    System.Runtime.InteropServices.MarshalAsAttribute
    System.Runtime.InteropServices.OptionalAttribute
    System.Runtime.InteropServices.OutAttribute
    System.Runtime.InteropServices.PreserveSigAttribute
    System.Runtime.InteropServices.StructLayoutAttribute
    System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute
    System.Runtime.InteropServices.WindowsRuntime.DefaultInterfaceAttribute
    System.Runtime.InteropServices.WindowsRuntime.InterfaceImplementedInVersionAttribute
    System.Runtime.InteropServices.WindowsRuntime.ReadOnlyArrayAttribute
    System.Runtime.InteropServices.WindowsRuntime.ReturnValueNameAttribute
    System.Runtime.InteropServices.WindowsRuntime.WriteOnlyArrayAttribute
    System.Runtime.Serialization.CollectionDataContractAttribute
    System.Runtime.Serialization.ContractNamespaceAttribute
    System.Runtime.Serialization.DataContractAttribute
    System.Runtime.Serialization.DataMemberAttribute
    System.Runtime.Serialization.EnumMemberAttribute
    System.Runtime.Serialization.IgnoreDataMemberAttribute
    System.Runtime.Serialization.KnownTypeAttribute
    System.Runtime.Serialization.OnDeserializedAttribute
    System.Runtime.Serialization.OnDeserializingAttribute
    System.Runtime.Serialization.OnSerializedAttribute
    System.Runtime.Serialization.OnSerializingAttribute
    System.Runtime.Versioning.TargetFrameworkAttribute
    System.Security.AllowPartiallyTrustedCallersAttribute
    System.Security.Permissions.SecurityAttribute
    System.Security.SecurityCriticalAttribute
    System.Security.SecuritySafeCriticalAttribute
    System.Security.SecurityTransparentAttribute
    System.Security.UnverifiableCodeAttribute
    System.ServiceModel.DataContractFormatAttribute
    System.ServiceModel.FaultContractAttribute
    System.ServiceModel.MessageContractAttribute
    System.ServiceModel.MessageContractMemberAttribute
    System.ServiceModel.MessageParameterAttribute
    System.ServiceModel.OperationContractAttribute
    System.ServiceModel.ServiceContractAttribute
    System.ServiceModel.ServiceKnownTypeAttribute
    System.ServiceModel.XmlSerializerFormatAttribute
    System.STAThreadAttribute
    System.ThreadStaticAttribute
    System.Windows.Markup.ContentPropertyAttribute
    System.Windows.Markup.XmlnsDefinitionAttribute
    System.Windows.Markup.XmlnsPrefixAttribute
    System.Windows.StyleTypedPropertyAttribute
    System.Windows.TemplatePartAttribute
    System.Windows.TemplateVisualStateAttribute
    System.Xml.Serialization.XmlAnyAttributeAttribute
    System.Xml.Serialization.XmlAnyElementAttribute
    System.Xml.Serialization.XmlArrayAttribute
    System.Xml.Serialization.XmlArrayItemAttribute
    System.Xml.Serialization.XmlAttributeAttribute
    System.Xml.Serialization.XmlChoiceIdentifierAttribute
    System.Xml.Serialization.XmlElementAttribute
    System.Xml.Serialization.XmlEnumAttribute
    System.Xml.Serialization.XmlIgnoreAttribute
    System.Xml.Serialization.XmlIncludeAttribute
    System.Xml.Serialization.XmlNamespaceDeclarationsAttribute
    System.Xml.Serialization.XmlRootAttribute
    System.Xml.Serialization.XmlSchemaProviderAttribute
    System.Xml.Serialization.XmlTextAttribute
    System.Xml.Serialization.XmlTypeAttribute

표시:
© 2014 Microsoft