Demandas de herança
Demandas de herança aplicadas a classes têm um significado diferente de demandas de herança aplicada aos métodos.Você pode colocar as demandas de herança no nível de classe para garantir que somente o código com a permissão especificada pode herdar de sua classe.Demandas de herança em métodos requerem que o código tenha a permissão especificada para substituir o método.
Demandas de herança de classe
Uma demanda herdada aplicada a uma classe tem o efeito de exigentes todas as classes derivadas da classe pai têm a permissão especificada.Por exemplo, se for de classe B herdar da classe A e A classe é protegido por uma demanda de herança, em seguida, B precisa ter a permissão que para executar.Se a classe B essa permissão é concedida e deriva da classe A, em seguida, de classe C deve também ter a permissão exigidos pela, se ele estiver derivam B.Essa demanda pode ser aplicada somente declarativamente.
O exemplo de código a seguir usa uma demanda de herança para exigir que qualquer classe que herda a partir de MyClass1 classe deve ter a permissão personalizada CustomPermissionAttribute. Esta permissão é uma permissão personalizada hipotética e não existe no .NET estrutura.A solicitação é feita pelo passando o CustomPermissionAttribute um SecurityAction.InheritanceDemand valor de enumeração.
<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.
}
}
Demandas de herança do método
Colocando uma demanda de herança em um método estático na classe base não tem impacto sobre as classes derivadas como os métodos estáticos são não relacionados.No entanto, colocando uma demanda de herança em qualquer método na classe base tem o mesmo efeito sistema autônomo uma demanda de herança da classe.Todos os métodos na classe derivada, incluindo o construtor da classe devem atender à demanda de herança.
Consulte também
Conceitos
Criando suas próprias permissões de acesso ao código
Adicionando suporte à segurança declarativa