【发布时间】:2019-11-01 04:50:34
【问题描述】:
我正在编写一个 html 助手,它将为我做一些计算。现在因为它是一个助手,所以它是一个静态方法。例如:
public class MyHelper
{
public static HtmlString DoSomething()
{
//do some action and return;
}
}
我面临的问题是我从 cshtml 文件中调用它,我需要以某种方式计算此方法中的文件版本。通常我可以用<asp-apend-verion="true">在html中调用它,但是因为我在这里返回一个字符串,所以如果我只是输入它就行不通。
根据我所做的研究,我发现我可以用 IFileVersionProvider.AddFileVersionToPath 做同样的事情,但是我不知道如何注入它,所以我可以在该方法中使用它。
编辑:
我想我可能需要提供更清晰的图片。本质上,我试图做到这一点,以便在调试代码时,我的 javascript 文件为我提供文件的完整版本,而在生产时,它们为我提供缩小版本。因此,我有一个我在网上找到的助手类的修改版本https://gist.github.com/mohamedmansour/cd50123f8575daba7a7f12847b12da5d 来为我做这件事。我的代码有点不同,因为我想要一些其他的东西。其中一件事是我仍想附加文件版本。所以我基本上从 HTML 文件中调用它。如果我只是添加 <asp-append-verion="true"> 则它不起作用,因为它被解析为字符串。所以我需要在返回该字符串之前附加版本。我发现我可以通过 IFileVersionProvider 做到这一点,但我需要实现该方法才能使用它。这是我唯一的瓶颈。
编辑 2:
我目前的解决方案是在启动类中创建一个静态属性,然后将其注入到 Configure 方法中。然后我可以从任何地方调用它。想知道是否有更好的解决方案?
【问题讨论】:
标签: c# dependency-injection static .net-core-3.0 asp.net-core-3.0