继承要求
更新:2007 年 11 月
应用于类的继承要求与应用于方法的继承要求具有不同的含义。可以将继承要求放在类级别,以确保只有拥有指定权限的代码才能从您的类继承。放在方法上的继承要求需要代码拥有指定的权限才能重写该方法。
类继承要求
应用于类的继承要求将要求从父类派生的所有类都必须拥有指定的权限。例如,如果类 B 将从类 A 继承,而类 A 由某个继承要求保护,则必须将该权限授予 B 才能运行 B。如果将该权限授予类 B 并且类 B 从类 A 派生,且类 C 将从 B 派生,则类 C 也必须拥有 A 要求的权限。只能以声明方式应用此要求。
下面的代码示例使用继承要求来要求从 MyClass1 类继承的任何类都必须拥有自定义权限 CustomPermissionAttribute。此权限是假设的自定义权限,在 .NET Framework 中并不存在。该要求通过将一个 SecurityAction.InheritanceDemand 枚举值传递给 CustomPermissionAttribute 来实现。
<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.
}
}
方法继承要求
对基类中的静态方法提出继承要求对派生类不起作用,因为静态方法互不相关。然而,对基类中的任何非静态方法提出继承要求与对类提出继承要求的效果相同。派生类中的所有方法(包括类的构造函数)都必须满足该继承要求。