2010-05-12 2 views
1

Je récupère des informations d'un service Web et les enregistre dans une classe comportant plusieurs champs, y compris des tableaux.Présenter automatiquement les informations stockées en classe à l'utilisateur

Je veux juste un moyen de présenter cette information à l'utilisateur. Y a-t-il un composant qui prend la classe en argument et organise simplement les informations et les montre dans une vue de données (par exemple)?

Merci.

Répondre

0

vous utilisez la réflexion pour cette question en savoir plus sur ce sujet sur google.

une de la démo:

static void Main(string[] args) 
     { 
      object obj = new Employee(); 
      Type t = obj.GetType(); 

      try 
      { 
       System.Reflection.PropertyInfo minfo = t.GetProperties().First(m => m.Name == "ABC"); 
       Console.WriteLine(minfo.Name); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Member not found"); 
      } 
      Console.ReadLine(); 
     } 

un autre exemple:

protected void setControl(Object obj) 
{ 
    Type t = obj.GetType(); 
    foreach (System.Reflection.PropertyInfo minfo in t.GetProperties()) 
    { 
     try 
     { 

      string s = (minfo.GetValue(obj, null)).ToString(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("Member not found"); 
     } 
    } 
} 
+0

qui ressemble à elle saisit juste une propriété particulière de la classe si elle existe - peut-on utiliser la réflexion pour marcher sur une classe vous ne connaissez pas la disposition de, et incluez toutes les propriétés? – SqlRyan

+0

cette démonstration juste que je veux montrer, voir l'autre code ça va fonctionner –

0

Depuis la réponse est sérialisable, vous pouvez probablement mappez assez facilement à quelque chose comme un TreeView aussi bien. Même si vous avez une classe en tant qu'objet de réponse, et que vous pouvez utiliser Reflection pour la survoler, je la sérialiserais probablement et je passerais ensuite par le XML, même si je suppose que c'est juste un point de préférence.

0

Si vous recherchez simplement un moyen d'afficher les propriétés de votre classe à l'utilisateur, vous pouvez essayer le PropertyGrid (http://msdn.microsoft.com/en-us/library/aa302326.aspx).

Il permet une représentation simple des types de données communs, mais vous permet également d'ajouter une représentation personnalisée si vous en avez besoin.

Au plus simple, il vous suffit de définir l'objet que vous souhaitez représentiez:

  propertyGrid1.SelectedObject = myObject; 
Questions connexes