ich eine Reihe von Klassen, die von EF erzeugt haben, die einfache Tabellen und haben ähnliche Strukturen:Objekt vom Typ erstellen in einem String angegeben
public class Contact
{
public int ID { get; set; }
public string Description { get; set; }
}
public class Member
{
public int ID { get; set; }
public string Description { get; set; }
}
Ich habe auch ein Verfahren für die Rückgabe eines Objekts eines bestimmten bekam Typ:
public T GetInstance<T>(string type)
{
return (T)Activator.CreateInstance(Type.GetType(type));
}
Was ich will, ist, etwas zu tun wie folgt aus:
public ActionResult GetAll(string ClassType) // ClassType will be the name of one of the classes above
{
Object LookupType = GetInstance<Object>(ClassType);
List<LookupType> AllList = new List<LookupType>();
AllList = repo.GetAll<LookupType>().ToList<LookupType>(); // some generic method that will return a list;
}
Dies macht die Compiler verrückt, weil ich eine Variable (LookupType) anstelle eines echten Typs zum Erstellen der Liste verwenden. Beide funktionieren jedoch auch nicht:
Beide verursachen einen Fehler - "Verwenden generischer Typ Liste erfordert 1 Typ Argument".
Gibt es einen geeigneten Weg, dies zu tun? Gibt es eine Möglichkeit, ClassType direkt in einen Typ zu konvertieren, ohne es zu einem Objekt zu machen (von dem ich hoffe, den Typ abzuleiten)?
Dank - IList wird es nicht schneiden, weil es nicht in EF Lambda-Abfragen verwenden kann. – BKahuna