2010-10-18 42 views
6

Tôi đang làm việc trên một CMS nhỏ cho vui và là một phần của điều này tôi đăng ký các tuyến đường từ cơ sở dữ liệu khi bắt đầu ứng dụng. Người dùng có thể tự thêm một tuyến đường. Vấn đề là tuyến đường này được lưu trữ trong db và do đó không được đăng ký cho đến khi khởi động lại ứng dụng.Đăng ký tuyến động, cần khởi động lại ứng dụng?

Có thể đăng ký lại các tuyến mà không cần khởi động lại ứng dụng không?

Nếu không, làm cách nào để khởi động lại ứng dụng theo yêu cầu?

Chúc mừng,

Ian

Trả lời

6

Không, bạn có thể thêm và loại bỏ các tuyến đường tự động. RouteTable.Routes chỉ đơn giản là một RouteCollection trong đó có AddRemove thành viên (hoặc, nếu bạn thích, Clear).

Lưu ý rằng máy chủ web đa luồng, tuy nhiên, do đó bạn sẽ cần phải sử dụng giao thức khóa của RouteCollection. Đặc biệt, điều đó có nghĩa là GetWriteLock:

var routes = RouteTable.Routes; 
var newDynamicRoute = new Route(...); 
using(routes.GetWriteLock()) { 
    routes.Remove(dynRoute); 
    dynRoute = newDynamicRoute; 
    routes.Add(dynRoute); 
} 
Các vấn đề liên quan