2010-10-18 3 views
6

Ich arbeite zum Spaß an einem kleinen CMS und registriere dabei Routen aus einer Datenbank beim Start der App. Es ist möglich, dass ein Benutzer selbst eine Route hinzufügt. Das Problem ist, dass diese Route in der Datenbank gespeichert wird und daher erst nach einem Neustart der App registriert wird.Registrierung von dynamischen Routen, benötigt einen App-Neustart?

Ist es möglich, Routen ohne App-Neustart neu zu registrieren?

Wenn nicht, wie starte ich die App bei Bedarf neu?

Cheers,

Ian

Antwort

6

Nein, können Sie Routen dynamisch hinzufügen und entfernen. RouteTable.Routes ist einfach eine RouteCollection, die Add und Remove Mitglieder hat (oder, wenn Sie bevorzugen, Clear).

Beachten Sie, dass der Webserver jedoch Multithread ist, also müssen Sie das Sperrprotokoll RouteCollection verwenden. Insbesondere bedeutet dies GetWriteLock:

var routes = RouteTable.Routes; 
var newDynamicRoute = new Route(...); 
using(routes.GetWriteLock()) { 
    routes.Remove(dynRoute); 
    dynRoute = newDynamicRoute; 
    routes.Add(dynRoute); 
} 
Verwandte Themen