Este artigo foi traduzido manualmente. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Demandas de herança

Demandas de herança aplicadas a classes têm um significado diferente que aplicado a métodos de demandas de herança. 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 tem a permissão especificada para substituir o método.

Observação Observação

Foi introduzido em um novo modelo de transparência a .NET Framework 4. O Código de segurança transparente, nível 2 modelo identifica o código seguro com o SecurityCriticalAttribute ou o SecuritySafeCriticalAttribute atributo. Código de segurança crítica exige chamadores e herdeiros seja totalmente confiável. Qualquer tipo ou membro que herda a partir de um tipo de segurança crítico ou membro deve ser crítica de segurança ou segurança safe-crítica. Assemblys que usam regras de segurança de acesso de código anteriores (nível 1) podem chamar os tipos de segurança crítica de nível 2 e confiáveis de membros se eles estão cheios. No entanto, os tipos de nível 2 e membros devem especificamente identificar demandas de herança, porque as regras de herança implícito de nível 2 não se aplicam aos chamadores de nível 1.

Uma demanda herdada aplicada a uma classe tem o efeito de exigência que todas as classes derivadas da classe pai tem a permissão especificada. Por exemplo, se a classe que b é herdar de classe a e a classe é protegido por uma demanda de herança, em seguida, B deve ser concedido essa permissão para executar. Se a classe b é concedido essa permissão e deriva da classe A, em seguida, de classe c deve também ter a permissão exigidos pela, se ele estiver derivar de b. Essa demanda pode ser aplicada apenas declarativamente.

O seguinte exemplo de código usa uma demanda de herança para exigir que qualquer classe que herda de MyClass1 classe deve ter a permissão personalizada CustomPermissionAttribute. Esta permissão é uma permissão personalizada hipotética e não existe na.NET Framework. A solicitação é feita, passando a CustomPermissionAttribute um SecurityAction.InheritanceDemand valor de enumeração.

[CustomPermissionAttribute(SecurityAction.InheritanceDemand)]
public class MyClass
{
    public MyClass()
    {    
    }   

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

Colocando uma demanda de herança em um método estático na classe base não tem impacto em classes derivadas porque os métodos estáticos não estão relacionados. No entanto, colocando uma demanda de herança em qualquer método não estático na classe base tem o mesmo efeito que 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.

Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.