다음을 통해 공유


상속 요청

업데이트: 2007년 11월

클래스에 적용된 상속 요청은 메서드에 적용된 상속 요청과 의미가 다릅니다. 상속 요청을 클래스 수준에 삽입하면 지정된 권한이 있는 코드만이 클래스에서 상속 받을 수 있습니다. 메서드에 상속 요청을 삽입하면 코드에 지정된 권한이 있어야 메서드를 재정의할 수 있습니다.

클래스 상속 요청

클래스에 적용된 상속된 요청은 부모 클래스에서 파생된 모든 클래스가 지정된 권한을 갖도록 요청합니다. 예를 들어, 클래스 B가 클래스 A로부터 상속 받고 클래스 A가 상속 요청에 의해 보호되는 경우 B를 실행하려면 B에 해당 권한이 부여되어야 합니다. 클래스 B에 해당 권한이 부여되고 클래스 B가 클래스 A에서 파생된 경우, B에서 파생된 클래스 C도 A에 의해 요청되는 권한을 가져야 합니다. 이 요청은 선언적으로만 적용될 수 있습니다.

다음 코드 예제에서는 상속 요청을 사용하여 MyClass1 클래스에서 상속된 모든 클래스가 사용자 지정 권한인 CustomPermissionAttribute를 갖도록 요청합니다. 이 권한은 가상의 사용자 지정 권한이므로 .NET Framework에는 없습니다. CustomPermissionAttribute에 SecurityAction.InheritanceDemand 열거형 값을 전달하여 요청합니다.

<CustomPermissionAttribute(SecurityAction.InheritanceDemand)> _
Public Class MyClass1
    Public Sub New()
    End Sub 
   
    Public Overridable Function ReadData() As String
        ' Access a custom resource.
    End Function
End Class    
[CustomPermissionAttribute(SecurityAction.InheritanceDemand)]
public class MyClass
{
    public MyClass()
    {    
    }   

    public virtual string ReadData()
    {
        // Access a custom resource.
    }
}

메서드 상속 요청

기본 클래스에서 정적 메서드에 상속 요청을 하더라도 정적 메서드는 관련이 없기 때문에 파생 클래스에는 아무런 영향을 미치지 않습니다. 그러나 기본 클래스에서 비정적 메서드에 상속 요청을 하면 해당 클래스에 대한 상속 요청과 동일한 효과를 얻습니다. 클래스 생성자를 비롯하여 파생 클래스의 모든 메서드가 상속 요청을 충족시켜야 합니다.

참고 항목

개념

보안 요청

사용자 고유의 코드 액세스 권한 만들기

선언적 보안 지원 추가

기타 리소스

특성을 사용하여 메타데이터 확장

코드 액세스 보안