6
我正在開發一個小型的CMS,作爲其中的一部分,我在應用程序啓動時從數據庫註冊路線。用戶可以自己添加路線。問題是這條路線存儲在數據庫中,因此在應用程序重新啓動之前未註冊。註冊動態路由需要重啓應用程序嗎?
是否可以重新註冊路線而無需重新啓動應用程序?
如果不是,我該如何重新啓動應用程序?
乾杯,
伊恩
我正在開發一個小型的CMS,作爲其中的一部分,我在應用程序啓動時從數據庫註冊路線。用戶可以自己添加路線。問題是這條路線存儲在數據庫中,因此在應用程序重新啓動之前未註冊。註冊動態路由需要重啓應用程序嗎?
是否可以重新註冊路線而無需重新啓動應用程序?
如果不是,我該如何重新啓動應用程序?
乾杯,
伊恩
不,你可以添加和刪除動態路由。 RouteTable.Routes
只是一個RouteCollection
其中有Add
和Remove
成員(或者,如果您願意,Clear
)。
請注意,網絡服務器是多線程的,因此您需要使用RouteCollection
的鎖定協議。特別是,這意味着GetWriteLock
:
var routes = RouteTable.Routes;
var newDynamicRoute = new Route(...);
using(routes.GetWriteLock()) {
routes.Remove(dynRoute);
dynRoute = newDynamicRoute;
routes.Add(dynRoute);
}