ASP.NET kontrolleri bünyesinde güzel bir metod var: ResolveUrl(). Verdiğiniz sanal ama göreceli yolu (virtual relative path) mutlak yola (virtual absolute path) dönüştürüyor.
Mesela, "~/live/love.aspx" şeklinde bir sanal yolumuz var. Burada "~" (tilda) karakteri uygulamanın ana yoluna (uygulama kök uygulama ise "", alt uygulama ise "/altuygulamaAdi" gibi bir ifade) işaret ediyor. Bu cümleye ResolveUrl uyguladığımızda:
control.ResolveUrl("~/live/love.aspx");
"/altuygulamaAdi/live/love.aspx" gibi veya kök uygulama ise "/live/love.aspx" gibi bir netice elde ediyoruz.
Ancak gelin görün ki bu faideli metod, sadece Control sınıfından sağlanmış. Kodcu bünyelere her yerde lazım olan bir hizmetin, sadece belli bir bağlamda sağlanması içler acısı.
Neyse ki alternatif yollar var ve neyse ki birileri bunları yazıyor.
Sytem.Web.VirtualPathUtility("~/live/love.aspx") tam da istenen işi yapıyor. Yukarıdaki neticeyi veriyor.
Bir sonraki gösteride görüşmek üzere.