Ich habe einen generischen Controller, dem ich eine Klasse mit nur Eigenschaften überlasse. Alles funktioniert gut, aber ...Erstelle geerbte Klasse vom Typ Parameter
Ich möchte eine andere Klasse in der Controller-Klasse erstellen, die die übergebene Klasse erbt.
Art wie folgt aus:
public class Products
{
public Int32 ProductID {get; set;}
public String ProductName {get; set;}
}
public class ProductController : Controller<Products>
{
public ProductsController() : base("Products", "ProductID", "table", "dbo")
{
}
}
public class Controller<T> : IDisposable where T : new()
{
protected Controller(String tablename, String keyname, String entitytype, String tableschema = "dbo")
{
...
}
//How do I create the Recordset class inheriting T
public class Recordset : T //<----This is what I don't know how to do
{
public Int32 myprop {get; set;}
public void MoveNext()
{
//do stuff
}
}
}
Wie kann ich die Klasse-Cord mit T erstellen als geerbt?
Haben Sie auch versucht, die 'where T: Klasse, new()'? Sie können Strukturen nicht erben. –
@Chris: Werfen Sie einen Blick auf "ImpromptuInterface" auf Nuget, das neue Typen im laufenden Betrieb erstellen kann, die sich wie andere Typen verhalten; aber du willst wirklich nicht dorthin gehen. Siehe auch https://en.wikipedia.org/wiki/Composition_over_inheritance –
Danke, Berin. Das war's. Dachte ich habe das vorher gemacht aber ... Lösung unten. – Chris