У меня есть сборка, которая будет использоваться как в настольном приложении, так и на веб-сайте asp.net.
Мне нужно иметь дело с относительными путями (локальные файлы, а не URL-адреса) в любой ситуации.
Как я могу реализовать этот метод?
string ResolvePath(string path);
В веб-среде id ожидает, что метод будет вести себя следующим образом (где d:\wwwroot\mywebsite
- папка, на которую указывает iis):
/folder/file.ext => d:\wwwroot\mywebsite\folder\file.ext
~/folder/file.ext => d:\wwwroot\mywebsite\folder\file.ext
d:\wwwroot\mywebsite\folder\file.ext => d:\wwwroot\mywebsite\folder\file.ext
для среды рабочего стола: (где c:\program files\myprogram\bin\
- это путь к .exe)
/folder/file.ext => c:\program files\myprogram\bin\folder\file.ext
c:\program files\myprogram\bin\folder\file.ext => c:\program files\myprogram\bin\folder\file.ext
Я бы предпочел не вводить другой IPathResolver
в зависимости от того, в каком состоянии он работает.
Как мне определить, в какой среде я нахожусь, и что мне нужно делать в каждом случае, чтобы разрешить возможно относительный путь?
Спасибо