В моем приложении я сохраняю некоторые файлы изображений в самой папке приложения. В настоящее время используется интерфейс IHostingEnvironment
для получения пути. нравиться
private readonly IHostingEnvironment _hostingEnvironment;
/// <summary>
/// Initializes a new instance of the <see cref="ProductController"/> class.
/// </summary>
/// <param name="unitService">The product service.</param>
public ProductController(IProductService productService, IHostingEnvironment hostingEnvironment)
{
this._productService = productService;
this._hostingEnvironment = hostingEnvironment;
}
для получения пути с помощью этого кода _hostingEnvironment.ContentRootPath
Но в будущем мы можем изменить местоположение изображения на облако или в другие места, поэтому я написал метод расширения для получения фактического пути.
public static class AssetPathHandlerExtensions
{
private readonly IHostingEnvironment _hostingEnvironment;//error
public static string AppendAssetPath(this string fileName, string subDirectryPath)
{
//here i need to get the ContentRootPath and append it with filename
}
}
Этот метод расширения находится в библиотеке классов, и я вызываю этот метод расширения из automapper
Mapping.
Проблема, с которой я столкнулся, заключается в том, что я не могу использовать IHostingEnvironment
в библиотеке классов, поскольку она не содержит сборки Microsoft.AspNetCore.Hosting.Abstractions.dll
.
Есть ли способ использовать IHostingEnvironment
в библиотеке классов?