【发布时间】:2020-03-20 19:44:12
【问题描述】:
我是 .net 核心的新手,我正在尝试移植一些旧的 .dot 网络代码。
到目前为止,我一直在使用大量静态辅助类。一个例子是一个名为“ImageUtilities”的类,它提供了“ResizeImage(..”或“ResizeAndSavePNG(..”)等静态方法。或者另一个类是“DateUtilities”,它提供了“GetCalendarWeek(..”或“ GetDaysBetween(..' 这只是一些示例,可以是任何静态类。
无论何时我需要其中一种方法,我都会调用它们。使用 .net core 我仍然可以做到这一点,但我想改进我的代码并尝试遵循最佳实践指南。这就是我将其更改为使用依赖注入的原因。
现在在我的启动课程中,我有很多这样的代码..
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IImageProcessor, ImageSharpProcessor>();
services.AddSingleton<...
services.AddSingleton<...
services.AddSingleton<...
}
ImageShorpProcessor 是一个代表旧 .net 网络代码的“旧”类“ImageUtilities”的类。如果一个类现在需要调用其中一些方法,我会在构造函数中通过依赖注入来传递该类 ImageSharpProcessor。这非常有效,我希望这是这样做的方法。
但在我的应用程序中,很少使用 ImageSharpProcessor 类作为示例。这就是我的担忧开始的地方。网站 99% 的用户不使用代码中使用此类的页面。这同样适用于许多其他帮助方法,它们曾经是静态类,但现在是与依赖注入一起使用的方法。
问题: 这是使用此类 util 类的正确方法吗?尽管它们很少在网站中使用,但它们现在是带有依赖注入的静态类?所有这些类的实例化,如 services.AddSingleton<...>
希望您能理解我的担忧。希望有人可以就该主题给我一些建议。将不胜感激!对不起我的英语,最好的问候!
【问题讨论】:
标签: dependency-injection .net-core static-classes