Em máquinas em diferentes locais, as informações dos comentários sobre métodos e propriedades .NET são exibidas de forma diferente, por exemplo, no sistema operacional chinês, os comentários são exibidos em chinês, e os comentários em inglês são exibidos em sistemas operacionais em inglês. O NET Framework pode exibir comentários em diferentes idiomas, como ele resolve isso?
Sabemos que, ao desenvolver um controle, você pode adicionar uma tag DescriptionAttribute a uma propriedade e exibir seus comentários na barra de propriedades, assim:
Mas você vai perceber que a sequência de comentários está escrita sem resposta em texto chinês, e se eu quiser que o controle exiba comentários em inglês em um ambiente em inglês? O .NET Framework pode exibir comentários em diferentes idiomas, como ele resolve isso?
Descompilação. NET Framework, descobrimos que a anotação dele não possui um DescriptionAttribute, mas usa um SRDescriptionAttribute, por exemplo:
Nos comentários, o .NET Framework não escreve um comentário direto em inglês, mas escreve uma palavra-chave de recurso e analisa a implementação do SRDescriptionAttribute.
Era simples e engenhoso demais, então ele sobrecarregou o Get of the Description e o pegou do arquivo de recursos. É simples assim.
A classe SRDescriptionAttribute é a seguinte:
#region Assembly System, Version=4.0.0.0, Culture=neutro, PublicKeyToken=b77a5c561934e089 C:Program Files (x86)Referência AssembliesMicrosoftFramework.NETFramework4.0System.dll #endregion |