0

J'ai une application RIA Services Silverlight 3.0 utilisant un modèle EF. Dans les métadonnées du modèle, j'ai inclus plusieurs propriétés du nom d'affichage que je voudrais utiliser lorsque je fais référence au modèle côté client (dans TextBoxes, etc.)Comment lire les valeurs de métadonnées à partir du client Silverlight avec les services RIA

J'utilise la réflexion maintenant pour obtenir les propriétés du modèle sur le client de sorte que si le modèle change avec le temps, je n'ai pas besoin de mettre à jour le code client. Je n'arrive tout simplement pas à comprendre comment accéder aux métadonnées.

private void Field_Loaded(object sender, RoutedEventArgs e) 
{ 
    System.Reflection.MemberInfo[] members = this.ModelType.GetMembers(); 
    foreach (System.Reflection.MemberInfo member in members) 
    { 
     System.Reflection.PropertyInfo property = member as System.Reflection.PropertyInfo; 
     if (property != null && property.PropertyType == typeof(System.String)) 
     { 
      ComboBoxItem item = new ComboBoxItem(); 
      item.Content = property.Name; // <--- This is where I want to use Display Name 
      this._field.Items.Add(item); 
     } 
    } 
} 

Merci à l'avance,

Répondre

1

Vous devriez être en mesure de le faire en utilisant GetCustomAttributes et en passant le DisplayNameAttribute comme type.

+0

Merci Bryant mais je ne trouve pas System.ComponentModel.DisplayNameAttribute dans l'assembly Silverlight. Il apparaît dans l'espace sur le serveur mais pas le client. Ai-je besoin de référencer quelque chose de spécial pour l'obtenir dans Silverlight? –

+0

Je pense que c'est en réalité appel DisplayAttribute, pas DisplayNameAttribute. – Bryant

+0

C'est bizarre, j'ai trouvé DescriptionAttribute et ça marche bien, mais rien de ce qui commence par 'Display' n'apparaît dans Intellisense. –