デスクトップアプリとasp.netWebサイトの両方で使用されるアセンブリがあります。
どちらの状況でも、相対パス(URLではなくローカルファイル)を処理する必要があります。
このメソッドを実装するにはどうすればよいですか?
string ResolvePath(string path);
Web環境では、idは、メソッドが次のように動作することを期待しています(d:\wwwroot\mywebsiteiisが指すフォルダーはどこにありますか)。
/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実行中の状態に応じて異なるものを注入したくありません。
自分がいる環境をどのように検出し、相対的な可能性のあるパスを解決するために、それぞれの場合に何をする必要がありますか?
ありがとう