Wstrzyknięcie IHostingEnvironment
jako zależność w klasie zależnej. Ramy te wypełnić go dla Ciebie
public class HomeController : Controller {
private IHostingEnvironment _hostingEnvironment;
public HomeController(IHostingEnvironment environment) {
_hostingEnvironment = environment;
}
[HttpGet]
public IActionResult Get() {
var path = Path.Combine(_hostingEnvironment.WebRootPath, "Sample.PNG");
return View();
}
}
Można pójść o krok dalej i stworzyć Twoją własnością dostawcy ścieżki
public interface IPathProvider {
string MapPath(string path);
}
public class PathProvider : IPathProvider {
private IHostingEnvironment _hostingEnvironment;
public PathProvider(IHostingEnvironment environment) {
_hostingEnvironment = environment;
}
public string MapPath(string path) {
var filePath = Path.Combine(_hostingEnvironment.WebRootPath, path);
return filePath;
}
}
i wstrzyknąć IPathProvider
w klasach zależnych.
public class HomeController : Controller {
private IPathProvider pathProvider;
public HomeController(IPathProvider pathProvider) {
this.pathProvider = pathProvider;
}
[HttpGet]
public IActionResult Get() {
var path = pathProvider.MapPath("Sample.PNG");
return View();
}
}
Upewnij się zarejestrować usługę z pojemnika
services.AddSingleton<IPathProvider, PathProvider>();
wstrzyknąć go jako zależność do klasy zależnej. struktura zapełni to za Ciebie. – Nkosi