Archive for the ‘Server Controls’ Category

.NET 2.0 Dateizugriff in Design Time mode

Wednesday, August 22nd, 2007

Das Problem ist, das Server Controls in ASP.NET keinen direkten Bezug auf die Dateien des Webservers haben.

Wenn, z.B. ein Image Control das Property “ImageUrl” mit “~/image /test.jpg” gefällt wurde. Kann das Kontrol in der DLL äber “Server.MapPath(ImageUrl)” nicht darauf zugreifen. Schuld daran ist, dass die Objkete

  • Server
  • Response
  • Request
  • Einige Properties von “Page”

im DesignMode “NULL” sind.

Wie geht’s dennoch?

Die Interfaces ISite, IWebApplication und IProjectItem helfen da weiter.

Folgender Source sollte Weiterhelfen:

 1 IWebApplication webApp =(IWebApplication)

 2    Site.GetService(typeof(IWebApplication));

 3 

 4 string imageUrl  = “~/images/sample.txt”;

 5 IProjectItem item =

 6    webApp.GetProjectItemFromUrl(imageUrl);

 7 

 8 string physicalFileName = item.PhysicalPath;

Diesen Weg hab ich im Blog vom Armen Ayvazyan gefunden.