2017-04-22 4 views
0

in meinem Winform-Projekt, verwende ich treeview-Tag zum Halten der Objekte, gibt es mehrere Arten von Objekten sind in treeview.tag gespeichert und beim Versuch, den Typ zu erhalten es nicht genau gibt Geben Sie statt des Klassennamens einen langen Namen mit einem Proxy-Schlüsselwort ein (anders als Namespace + Klassenname).Erhalten eines Typs von Objekt in C#

Gibt es eine Methode, um den tatsächlichen Objekttyp aus dem Tag-Objekt erhalten

var tag= e.Node.Tag; 
Type gettype=tag.GetType 
//MessageBox.Show(gettype.ToString());   
if (gettype.Equals(typeof(Product))) 
{ 
    var product = (Product)e.Node.Tag; 
    //    
} 
if (gettype.Equals(typeof(Category))) 
{ 
    var caegory= (Category)e.Node.Tag; 
//    
} 
+0

Was genau meinen Sie mit „es gibt“? Es würde wirklich helfen, wenn Sie einen [mcve] anstatt Pseudocode bereitstellen könnten. –

+0

Verwenden Sie Entity Framework? –

+0

mit Entity-Framework, um die Objekte zu erhalten, wird es der Tag-Eigenschaft von Treeview zugewiesen – user3658516

Antwort

2

Sie können zur Überprüfung des „SIND“ Operator verwenden, ob Tag Produkt oder Kategorie und „AS“ Operator für die Typumwandlung ist . Unten ist das Beispiel.

var tag = e.Node.Tag; 
    if (tag is Product) 
    { 
     var product = e.Node.Tag as Product; 
    } 
    if (tag is Category) 
    { 
     var caegory = e.Node.Tag as Category; 
    } 
Verwandte Themen