波塞冬的祝福 2023-02-26 10:06 采纳率: 66.7%
浏览 25

关于#.net#的问题,如何解决?

我玩.net6 遇到一个很奇怪的问题

img


这个service在构造函数里能调

img


在controller里也能调

img


在这个函数里说是空的

  • 写回答

1条回答 默认 最新

  • CodeBytes 2023-02-26 12:36
    关注

    该回答引用ChatGPT

    根据您提供的信息,您遇到的问题可能是关于对象生命周期的问题。在您的代码中,_treeService 对象是在构造函数中创建的,然后被注入到控制器中。在控制器中,您可以使用 await _treeService.GetTrees() 来调用 GetTrees 方法。但是,在您的 Index 方法中,您似乎又重新创建了一个新的 TreeService 对象,并尝试从其中调用 GetTrees 方法。

    如果您在 Index 方法中创建的 TreeService 对象与您在构造函数中创建的对象不同,那么就可能导致您在 Index 方法中调用 GetTrees 方法时出现空对象的问题。因此,您应该确保在整个应用程序中只有一个 TreeService 对象实例,而不是在每个方法中都创建一个新的实例。

    可能的解决方案包括使用依赖注入容器来管理对象的生命周期,以确保您的服务实例是单例的;或者在控制器中创建并缓存服务实例,并从控制器中的每个方法中重用该实例,而不是在每个方法中创建新的实例。

    另外,请确保您的服务类中的 GetTrees 方法可以正确地返回数据。如果该方法返回了空值或引发了异常,则在控制器或 Index 方法中调用该方法时就会出现空对象的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月26日