如何在库项目中获取对 IWebHostEnvironment 的引用?(也在静态类中:()

hei*_*zza 4 .net server.mappath library-project .net-5

我需要使用 Server.MapPath。由于库项目没有 Startup.cs,我无法应用正常的方式。

hei*_*zza 5

首先,在使用Library项目的项目的Startup.cs中注册HttpcontextAccessor服务,

services.AddHttpContextAccessor();
Run Code Online (Sandbox Code Playgroud)

然后在课堂上,

private static HttpContext _httpContext => new HttpContextAccessor().HttpContext;
private static IWebHostEnvironment _env => (IWebHostEnvironment)_httpContext.RequestServices.GetService(typeof(IWebHostEnvironment));
Run Code Online (Sandbox Code Playgroud)

现在您可以在静态类和静态方法中访问它。

这对我来说很有效。如果有人需要的话。