War es hilfreich?

Lösung

Sie könnten versuchen, mithilfe von Reflektion (nicht getestet):

public static IList<AbstractHtmlPageController> GetControllers()
{
    Assembly
        .GetExecutingAssembly()
        .GetTypes()
        .Where(t => 
            t != typeof(AbstractHtmlPageController) && 
            typeof(AbstractHtmlPageController).IsAssignableFrom(t)
        )
        .Select(t => (AbstractHtmlPageController)Activator.CreateInstance(t))
        .ToList();
}

Der Nutzen eines solchen Verfahrens ist höchst zweifelhaft. Instanziieren Controller wie dies für die Lebensdauer der Anwendung kann gefährlich sein. Controller sollte nicht mit anderen geteilt werden. Lassen Sie die Instanziierung Ihre Controller auf die Dependency Injection-Framework Sie verwenden. Ihre Lebensdauer sollte sehr kurz sein, vorzugsweise begrenzt auf die aktuelle Benutzeranforderung.

scroll top