Ich benutze Entity Framework und LINQ. Ich möchte eine wiederverwendbare Methode in einer "Helfer" -Klasse für GridViews erstellen.Benutze Typ abgeleitet von GetType() ohne Verwendung von Switch
Die Methode gibt eine DataSource als eine Liste von Entitäten zurück, die auf dem Typ der übergebenen Entität basieren.
So GridView1 zeigen [Entity1] 's so der Aufruf wie folgt aussehen wird:
GridView1.DataSource = helperClass.GetDataSource(new Entity1());
Hinweis * Wenn ich den Entitätstyp passieren sollte ich als String wollen in der Methode, die ich für Anregung offen bin. Ich will nur nicht, diese Methode
einen Schalter Fall zwischen den ~ 40 Entity-Typen zu verwenden, habenDie wiederverwendbare Methode ist einfach und ähnlich aussehen wird zurückkehren könnte:
public static object GetDataSource(object type)
{
using (DatabaseContext dc = new DatabaseContext())
{
if (dc.[how do I get the entity type here].Count() > 0)
{
var modelList = dc.[how do I get the entity type here also].ToList();
}
}
}
Das klingt albern, aber offensichtlich war ich nicht in der Lage zu tun:
var modelList = dc.(type.GetType()).ToList();
aber das ist im Grunde, was ich erreichen möchte.
Was nützt das tun Sie? Sie erhalten eine Liste von Objekten zurück, wissen aber ihren Typ zur Kompilierzeit nicht? Ich vermute, dass es einen besseren Weg gibt, mit Generika zu tun, was man will. –
Das heißt, das ist in der Nähe eines Duplikats von https://StackOverflow.com/Questions/1919632, mit dem Unterschied, dass Sie den Namen von dem Typ zuerst erhalten müssen. –
@DStanley Dort kann sehr gut sein. Dies war nur der erste Ansatz, an den ich dachte, als ich versuchte, eine wiederverwendbare Hilfsmethode zu erstellen. Ich habe eine Webanwendung mit mehreren GridViews mit ähnlichen Methoden (wie sort, bind und databound), also wollte ich für diese Methoden wiederverwendbare Methoden in einer Remote-Klasse machen, anstatt denselben Code einzugeben (mit der Varianz dessen, für was Entität gezeigt wird) die GridView) ~ 40 mal – toadfromgrove