2010-10-18 82 views
6

我正在開發一個小型的CMS,作爲其中的一部分,我在應用程序啓動時從數據庫註冊路線。用戶可以自己添加路線。問題是這條路線存儲在數據庫中,因此在應用程序重新啓動之前未註冊。註冊動態路由需要重啓應用程序嗎?

是否可以重新註冊路線而無需重新啓動應用程序?

如果不是,我該如何重新啓動應用程序?

乾杯,

伊恩

回答

6

不,你可以添加和刪除動態路由。 RouteTable.Routes只是一個RouteCollection其中有AddRemove成員(或者,如果您願意,Clear)。

請注意,網絡服務器是多線程的,因此您需要使用RouteCollection的鎖定協議。特別是,這意味着GetWriteLock

var routes = RouteTable.Routes; 
var newDynamicRoute = new Route(...); 
using(routes.GetWriteLock()) { 
    routes.Remove(dynRoute); 
    dynRoute = newDynamicRoute; 
    routes.Add(dynRoute); 
} 
相關問題