【问题标题】:Blazor Dependency injection vs. simple classBlazor 依赖注入与简单类
【发布时间】:2020-05-12 13:39:56
【问题描述】:

我想知道何时应该为我的 blazor 服务器端应用程序创建一个服务并将其注入到 razor 组件中。

服务和简单​​类有什么区别?什么时候应该使用服务而不是静态类方法来获取数据?

最好的 马文

【问题讨论】:

    标签: c# asp.net-core blazor blazor-server-side


    【解决方案1】:

    在顶层,您可以大致考虑如下方法:

    • 对简单逻辑使用静态类方法,其中所有逻辑都可以自包含在该静态方法中。例如。您可以为 RemoveSpacesFromString(string text) 方法使用静态方法,该方法仅作用于传入的字符串。
    • 在您拥有调用其他方法的方法的情况下使用服务,或者特别是在该方法需要从其他位置检索数据(例如 Web 服务)或访问数据库的情况下

    关于何时使用类、静态类或服务的决定并不是具体的 Blazor 问题,而是真正与诸如使代码可测试和允许替换新功能而无需返回并更改代码等概念相关已经在工作了。

    这些是广泛的主题,如果您还不熟悉这些主题,您可能需要阅读 Dependency InjectionUnit TestingSOLID principlesthis is a Microsoft blog on SOLID 专注于 .NET 示例)。

    本质上,注入服务允许进行更简单和更集中的测试,而使用静态方法意味着每次测试调用静态方法的方法时,您也在测试该静态方法 - 这可能是一个好的或一件坏事,取决于静态方法的上下文和功能。

    【讨论】:

      【解决方案2】:

      这个问题的答案很简单,您应该始终从服务中获取数据。静态方法通常用于实用程序或性能关键逻辑。 但是,有时我也会将更简单的东西放入静态中。

      但是Service其实并没有那么难,基本上任何东西都可以作为服务,你只需在一个实例中处理逻辑,并在应用启动时将其注册为服务。

      【讨论】:

        猜你喜欢
        • 2020-08-14
        • 2021-01-26
        • 2020-12-10
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多