2017-01-06 3 views
1

サービススタックを使用してC#で自己ホストアプリケーションを構築しています。私はアプリケーションがいくつかの設定データに基づいてコンテンツを共有したいと思います。ServiceStackでの静的ファイルディレクトリのマッピング

AppHost.Configure私は設定ファイルを読み込み、いくつかのディレクトリを再帰的に共有したいと思います。ディレクトリは、構成内の各要素に応じて、ローカルフォルダまたは共有フォルダです。例えば

、私の設定は次のように見える場合:

[ 
    { 
     "sourceId": "TEST1", 
     "contentPath": "\\\\nas01\\files" 
    }, 
    { 
     "sourceId": "TEST2", 
     "contentPath": "d:\\files" 
    } 
] 

私はこのような再帰的にアクセスできるようにディレクトリをたいと思います。configファイルを読む

http://localhost/TEST1/.... 
http://localhost/TEST2/.... 

は本当に、問題ありませんこれらのディレクトリをマップする正しい方法を知りたいので、ServiceStackの組み込み静的処理機能を使用できます。

だから私は、私の質問は推測:

は、実行時に静的コンテンツのディレクトリをマップするために、サービススタックでは、正しい方法は何ですか?

多くの感謝!

-Z

答えて

2

FileSystemのマッピングのための新しいサポートは、今例えば、あなたがあなたのAPPHOSTにGetVirtualFileSources()をオーバーライドすることによって、ファイルシステムのマッピングを登録できるようになりますどのthis commitに追加されました:

public override List<IVirtualPathProvider> GetVirtualFileSources() 
{ 
    var existingProviders = base.GetVirtualFileSources(); 
    existingProviders.Add(new FileSystemMapping(this, "TEST1", "\\\\nas01\\files")); 
    existingProviders.Add(new FileSystemMapping(this, "TEST2", "d:\\files")); 
    return existingProviders; 
} 

この変更は、から入手可能ですv4.5.5 +これは現在available on MyGetです。

+0

ありがとうございました! マッピングされたパス内に新しいディレクトリが追加された場合、またはFileSystemMappingオブジェクトを再初期化する必要がある場合、この手法は機能しますか? – zorlack

+0

@zorlackええええええええええええええええええええ、それは実行時に追加された新しいファイルやディレクトリを見つけるので、あらかじめ設定されたキャッシュではありません。 – mythz

関連する問題