【问题标题】:Does dotnet core have an equivalent to the @PostConstruct annotation in Spring?dotnet core 是否具有与 Spring 中的 @PostConstruct 注释等效的功能?
【发布时间】:2019-11-06 11:34:15
【问题描述】:

我继承了 dotnet 中的一些代码,我正在尝试重构以使用依赖注入。在 Spring 中,我使用 @PostConstruct 注释在依赖注入完成后设置服务。 dotnet 中是否有等价物?

Spring 仅在类初始化之后调用一次使用 @PostConstruct 注释的方法。

【问题讨论】:

  • 不,我认为dotnet中没有任何@PostConstruct注解;不过,可能有一个库可以模拟该功能。
  • 为什么要在 DI 之后设置服务? .NET Core DI 主要基于构造函数。对象的构造函数可以对注入的服务做任何它喜欢的事情,这意味着它实际上并不需要构建后的步骤。当您使用基于属性的 DI 时,您只需要 PostConstruct 注释。有一个后配置工具,但这可能不是你想要的。
  • @PeonProgrammer 不需要一开始。当您进行构造函数注入时,您知道何时完成 DI - 就在调用构造函数之前

标签: c# spring dependency-injection .net-core postconstruct


【解决方案1】:

我不知道@PostConstruct是什么,但是当你在C#中执行依赖注入(取决于你如何实现),你可以写你想要的代码在构造函数内部

假设你有这个类:

class MyObj
{
    public MyObj(DependedObj obj1, ILogger logger)
    {
        // Here you can run what you want, with all the depended objects
    }
}

依赖注入将运行构造函数,以及需要在依赖注入初始化中定义的对象。

【讨论】:

  • 部分正确,DI 成熟的框架经常大量使用属性的自动装配,因此,构造函数是在所有属性值被注入之前发生的事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
相关资源
最近更新 更多