この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 16422|答える: 0

[通信] .NET Core ファイルプロバイダー

[リンクをコピー]
掲載地 2019/01/28 15:13:10 | | |
ファイルプロバイダー抽象化
ファイルプロバイダーはファイルシステムの上に積み重なる抽象化の層です。 主なインターフェースはIFileProviderです。 IFileProviderは、ファイル情報(IFileInfo)、ディレクトリ情報(IDirectoryContents)、変更通知の設定(IChangeTokenを用いて)を取得する方法を公開します。

IFileInfoインターフェースは、個々のファイルやディレクトリを操作するためのメソッドとプロパティを提供します。 ExistsとIsDirectoryという2つのブールプロパティ、2つのプロファイル用のNameとLength(バイトごとの)プロパティがあり、さらにLastModifiedの日付プロパティも含まれています。 また、CreateReadStreamメソッドを使ってファイルの内容を読むこともできます。

ファイルプロバイダーの実装
IFileProviderには物理型、組み込み型、複合型の3つの実装から選択できます。 物理型は実際のシステム内のファイルにアクセスするために使われます。 組み込みはアセンブリに埋め込まれたファイルにアクセスするために使われます。 複合タイプは最初の2つの方法の組み合わせです。

PhysicalFileProvider
PhysicalFileProviderは物理ファイルシステムへのアクセスを提供します。 System.IO.File 型をカプセル化しており、ディレクトリおよびそのサブディレクトリのすべてのパスにスコープ化します。 このタイプのスコープはディレクトリおよびそのサブディレクトリへのアクセスを制限し、スコープ外の操作がファイルシステムにアクセスするのを防ぎます。 そのようなプロバイダーをインスタンス化する際は、サーバーがこのプロバイダーからのすべてのリクエストをベースパスとして使用できるディレクトリパスを提供しなければなりません(これによりパス外へのアクセスリクエストは制限されます)。 ASP.NET Coreアプリケーションでは、PhysicalFileProviderプロバイダーを直接インスタンス化することも、コントローラーとサービス内のコンストラクタ依存注入を使ってIFileProviderインターフェースを要求することも可能です。 後者は、より柔軟でテストしやすい解をもたらします。

PhysicalFileProviderの作成は非常に簡単で、それを具現化して物理パスを渡すだけです。 その後、そのディレクトリを経由してコンテンツを移動したり、特定のファイルに関する情報を得るためにサブパスを提供したりできます。
StartupクラスのConfigureServices()メソッドを修正してローカルファイルにアクセスするために必要なサービスを登録し、ミドルウェア内のコンストラクタ注入でそれらをミドルウェアに追加することで、ファイルのアクセスパスを一か所(つまりアプリケーション起動時)で制御できるようにします。






先の:エンティティフレームワーク内の複数列に対する一意キー制約(一意キー構成...
次に:C#の一般的な例を詳細に説明します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com