2010-08-25 10 views
1

J'ai un objet et je itère sur les propriétés de l'objet. Pour chaque propriété, je l'ajoute en tant que colonne à un listview.VB.NET - Alias ​​aux propriétés de la classe

Dans mon objet, certaines propriétés n'ont pas d'accents. Mais en portugais, ils le font. Par exemple: la propriété "Endereco" doit être "Endereço".

J'ai besoin d'un écart pour créer un alias aux propriétés. Est-ce possible dans VB.NET? Merci.

Répondre

3

Cela ressemble à du travail pour attributes. Vous pouvez utiliser un attribut pour décorer vos propriétés avec les informations d'en-tête exactes que vous souhaitez. Par exemple:

<Description("Endereço")> _ 
Public Property String Endereco .... 

Ensuite, utilisez la réflexion pour extraire cette valeur dans le code. Vous pouvez également utiliser la valeur de l'attribut en tant que clé dans une table de localisation pour faciliter la traduction future vers d'autres langues ou utiliser d'autres attributs pour faire des choses comme afficher votre vue sans afficher un champ particulier dans certaines circonstances.


Pour répondre à votre question de réflexion, je suppose que vous êtes déjà au moins un peu à l'aise avec, comme c'est comment vous devez itérer sur les propriétés d'un objet (à moins que ce que vous avez vraiment est un dictionnaire, dans ce cas, vous auriez dû le dire). Alors que vous parcourez les propriétés, les objets avec lesquels vous travaillez sont de type PropertyInfo et vous pouvez appeler la méthode GetCustomAttributes() pour ce type afin de trouver les attributs associés à la propriété.

+0

Avez-vous le code pour la réflexion? Merci beaucoup! – Alson

+0

J'espère que cela aide: http://msdn.microsoft.com/en-us/library/b05d59ty.aspx – asawyer

+0

Oh, et cela va cracher une liste IEnumerable d'objets KeyValuePair pour une classe donnée avec le nom de la propriété et les valeurs : public Fonction partagée GetPropertyValueList (ByVal obj As Object) en tant que IEnumerable (Of KeyValuePair (Of String, String)) Retour de p En obj.GetType(). GetProperties() Sélectionnez New KeyValuePair (Of String, String) (p .Name, p.GetValue (obj, Nothing) .ToString()) Fonction de fin – asawyer

Questions connexes