プロの C# プログラマーにとって答えは簡単すぎるかもしれませんが、私は C# と ASP.NET MVC を初めて使用するので、これは少し難しいです。
戦略設計パターンについて学びました。私のプログラムでは、画像をアップロードできる必要があります。これは、(1) ファイル システムにアップロードできるようにする方法と、(2) データベースにアップロードする方法の 2 つで実現します。そのために、これら 2 つのアルゴリズムに戦略設計パターンを使用します。
問題は、ソリューションの MVC アプリケーション Project 以外の別のクラス ライブラリに Strategy を実装していることです。
そして、コントローラーで正常に機能したこのコードは、クラス ライブラリでは機能しません。
これはコントローラーにありました
[HttpPost]
public void UploadFile() {
string physicalPath = HttpContext.Server.MapPath("../") + "UploadImages" + "\\";
for (int i = 0; i < Request.Files.Count; i++) {
Request.Files[0].SaveAs(physicalPath + System.IO.Path.GetFileName(Request.Files[i].FileName));
}
}
そして、これはクラスライブラリにあります。
public class UploadToFile : IUpload {
public void Upload() {
string physicalPath = HttpContext.Server.MapPath("../") + "UploadImages" + "\\";
for (int i = 0; i < Request.Files.Count; i++) {
Request.Files[0].SaveAs(physicalPath + System.IO.Path.GetFileName(Request.Files[i].FileName));
}
}
}
クラス ライブラリが and にアクセスできない可能性がHttpContext
ありRequest
ます。
using System.Web.Mvc;
using System.Web;
正しく参照されています。
答えは簡単だと思いますが、30 分間 Google で検索しても、このトピックの適切なエスカレーションが見つかりませんでした。
ありがとう。