2010-12-21 7 views
4

나는 정의를 만드는이과 내가이 (가) AttributeUsage (또는 어쩌면 속성 클래스의 다른 속성) 내 속성 만 사용할 수 있습니다 세트 있도록 싶습니다 속성 만 개인 회원을위한 설정 속성 사용 비공개 방법에서 가능합니까?사용자 정의 속성 -

미리 답변 해 주셔서 감사합니다.

+1

내가 관심을 개인 전용 속성의 이유를 알고 있어야합니다. – Amy

답변

3

C# (as of 4.0)에는 회원의 접근성을 기준으로 attribute 사용을 제한 할 수있는 기능이 없습니다.

질문은 왜 그렇게하고 싶습니까?

속성 아래에 주어진 때문에

,

[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)] 
sealed class MethodTestAttribute : Attribute 
{ 
    public MethodTestAttribute() 
    { } 
} 

및 클래스 아래

,

public class MyClass 
{ 
    [MethodTest] 
    private void PrivateMethod() 
    { } 

    [MethodTest] 
    protected void ProtectedMethod() 
    { } 

    [MethodTest] 
    public void PublicMethod() 
    { } 
} 
쉽게 다음 코드를 사용하여 개인 방법의 특성을 얻을 수

:

var attributes = typeof(MyClass).GetMethods(). 
       Where(m => m.IsPrivate). 
       SelectMany(m => m.GetCustomAttributes(typeof(MethodTestAttribute), false));