Diretiva x:ClassModifier

Modifica o comportamento de compilação XAML quando x:Class também é fornecido. Especificamente, em vez de criar uma parcial class que tenha um nível de acesso (o padrão), o fornecido x:Class é criado com um PublicNotPublic nível de acesso. Esse comportamento afeta o nível de acesso para a classe nos assemblies gerados.

Uso do Atributo XAML

<object x:Class="namespace.classname" x:ClassModifier="NotPublic">
   ...
</object>

Valores XAML

Valor Descrição
NãoPúblico A cadeia de caracteres exata a ser passada para especificar TypeAttributes.Public versus TypeAttributes.NotPublic varia, dependendo da linguagem de programação code-behind que você usa. Consulte Observações.

Dependências

x:Class também deve ser fornecido no mesmo elemento, e esse elemento deve ser o elemento raiz em uma página. Para obter mais informações, consulte [MS-XAML] Seção 6.3.1.8.

Comentários

O valor do uso dos Serviços XAML do .NET varia de acordo com a linguagem de x:ClassModifier programação. A cadeia de caracteres a ser usada depende de como cada idioma implementa seus CodeDomProvider conversores e os tipos que retorna para definir os significados para TypeAttributes.Public e , e TypeAttributes.NotPublicse esse idioma diferencia maiúsculas de minúsculas.

  • Para C#, a cadeia de caracteres a ser passada para designar TypeAttributes.NotPublic é internal.

  • Para o Microsoft Visual Basic .NET, a cadeia de caracteres a ser passada para designar TypeAttributes.NotPublic é Friend.

  • Para C++/CLI, não existem destinos que ofereçam suporte à compilação de XAML; portanto, o valor a ser passado não é especificado.

Você também pode especificar (public em C#, no Visual Basic); no entanto, Public especificar TypeAttributes.PublicTypeAttributes.Public é feito com pouca frequência porque TypeAttributes.Public já é o comportamento padrão.

Outros valores com restrições equivalentes de nível de acesso ao código do usuário, como private em C#, não são relevantes porque x:ClassModifier as referências de classe aninhadas não têm suporte em XAML e, portanto, o modificador tem o TypeAttributes.NotPublic mesmo efeito.

Notas de segurança

O nível de acesso declarado em x:ClassModifier ainda está sujeito à interpretação por estruturas específicas e suas capacidades. O WPF inclui recursos para carregar e instanciar tipos onde x:ClassModifier está internal, se essa classe for referenciada de um recurso WPF por meio de uma referência de URI de pacote. Como consequência deste caso e potencialmente de outros semelhantes implementados por outros frameworks, não confie x:ClassModifier exclusivamente em bloquear todas as tentativas de instanciação possíveis.

Confira também