![](/img/trans.png)
[英]Is ConfigurationManager.AppSettings available in .NET Core 2.0?
[英]HtmlHelper in .NET Core 2.0 with appsettings being injected in
我可能走上了一条死胡同,所以我希望有人可以告诉我“转身”。 或“继续前进”。 - I'm attempting to convert an HTML helper from an ASP.NET 5 app into a .NET Core 2.0 app, I ran into trouble when calling the helper in an extension class, First: I read that .NET Core uses DI for getting appsettings into separate classes ,所以我用DI设置了扩展class:
private readonly AppSettings _appsettings;
public HtmlHelperExtensions2(IOptions<AppSettings> appSettings)
{
_appsettings = appSettings.Value;
}
而且我能够从 appSettings.json 返回项目。 问题是,要使用 DI,我需要从 class 签名中删除“静态”引用,因此我还必须从帮助调用中删除“this”引用:
public void HelpPanel(HtmlHelper htmlHelper, string thingId, string language)
{ }
否则我会得到一个编译错误。 但是没有“this”引用,调用需要一个新的 HtmlHelper。
所以我正在努力克服它,如果我真的可以克服它的话。 这是正确的道路还是我在这里走上了死胡同? 除了 HtmlHelpers 之外,我还需要在 Core 中使用其他东西吗? 我无法确定它们是否在 Core 中得到支持。
您可以从HtmlHelper
实例访问请求的IServiceProvider
并使用Service Locator
反
模式从 DI 容器中解析实例。 举个例子(这有点像“火车残骸”):
var appSettings = htmlHelper.ViewContext.HttpContext.RequestServices
.GetRequiredService<IOptions<AppSettings>>()
.Value;
免责声明:静态和服务定位器模式有点争议。 Tag Helpers不使用静态变量并支持依赖注入,因此如果/当时间合适时,您可能需要考虑切换到其中之一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.