Na maszynach w różnych lokalizacjach informacje o komentarzach metod i właściwości .NET są wyświetlane inaczej, na przykład w chińskim systemie operacyjnym komentarze są wyświetlane po chińsku, a angielskie w angielskich systemach operacyjnych. NET Framework potrafi wyświetlać komentarze w różnych językach, jak on to rozwiązuje?
Wiemy, że podczas tworzenia kontroli można dodać tag DescriptionAttribute do właściwości i wyświetlić jej komentarze w pasku właściwości, w ten sposób:
Ale zauważysz, że ciąg komentarzy jest zapisany martwy w chińskim tekście, a co jeśli chcę, aby kontrola wyświetlała angielskie komentarze w środowisku angielskim? .NET Framework potrafi wyświetlać komentarze w różnych językach, jak on to rozwiązuje?
Dekompilacja. NET Framework, odkryliśmy, że jego adnotacja nie posiada atrybutu Description, lecz używa atrybutu SRDescription, na przykład:
W komentarzach .NET Framework nie pisze bezpośredniego komentarza angielskiego, lecz zapisuje słowo kluczowe zasobu i analizuje implementację SRDescriptionAttribute.
Było to zbyt proste i pomysłowe, więc przeciążył Get of the Description i pobrał go z pliku zasobów. To takie proste.
Klasa SRDescriptionAttribute wygląda następująco:
#region System Assembly, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFramework4.0System.dll #endregion |