Aktualny kod ASAX (uproszczony):Tworzenie marszruty z zapisów DB
void Application_Start(object sender, EventArgs e)
{
// Enable routing
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.Add("ContactUsRoute",
new Route("contact-us",
new PageRouteHandler("~/contactus.aspx")));
}
Pytanie
Czy można bezpiecznie wyciągnąć trasy z DB w tym momencie? Na przykład:
void RegisterRoutes(RouteCollection routes)
{
routes.Add("ContactUsRoute",
new Route("contact-us",
new PageRouteHandler("~/contactus.aspx")));
// BusinessLogic.GetPageRoutes() returns a List<Route>
var dbRoutes = BusinessLogic.GetPageRoutes();
foreach (Route route in dbRoutes)
{
routes.Add(route);
}
}
Dodatkowe informacje
To pytanie rodzi się z braku wiedzy na temat trasy, jak również ogólną nieznajomość global.asax
. W przeszłości używałam tylko global.asax
do wyjątkowo prostych zadań; DB czuje się jak, tak jak robię to na inny poziom.
Dlaczego miałoby to być niebezpieczne? Innymi słowy, co skłoniło cię do zastanowienia się nad tym pytaniem? – Yuck
+1 Chciałbym też wiedzieć! Ale z drugiej strony: Gdzie indziej należy rejestrować trasy? Oczywiście "try..catch" byłoby dobrym pomysłem. –
@ Milk, świetne pytanie. Zobacz dodatkowe informacje. Dodam, że ostatnia zmiana stanowiska czyni mnie jedynym programistą w organizacji. Czasami trudno jest nie mieć kogoś, z kim można odrzucić pomysły. –