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 Public
NotPublic
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
.NET Desktop feedback