我玩.net6 遇到一个很奇怪的问题
这个service在构造函数里能调
在controller里也能调
在这个函数里说是空的
我玩.net6 遇到一个很奇怪的问题
该回答引用ChatGPT
根据您提供的信息,您遇到的问题可能是关于对象生命周期的问题。在您的代码中,_treeService 对象是在构造函数中创建的,然后被注入到控制器中。在控制器中,您可以使用 await _treeService.GetTrees() 来调用 GetTrees 方法。但是,在您的 Index 方法中,您似乎又重新创建了一个新的 TreeService 对象,并尝试从其中调用 GetTrees 方法。
如果您在 Index 方法中创建的 TreeService 对象与您在构造函数中创建的对象不同,那么就可能导致您在 Index 方法中调用 GetTrees 方法时出现空对象的问题。因此,您应该确保在整个应用程序中只有一个 TreeService 对象实例,而不是在每个方法中都创建一个新的实例。
可能的解决方案包括使用依赖注入容器来管理对象的生命周期,以确保您的服务实例是单例的;或者在控制器中创建并缓存服务实例,并从控制器中的每个方法中重用该实例,而不是在每个方法中创建新的实例。
另外,请确保您的服务类中的 GetTrees 方法可以正确地返回数据。如果该方法返回了空值或引发了异常,则在控制器或 Index 方法中调用该方法时就会出现空对象的问题。