我编写了一个简单的ASP.NET Core服务,该服务提供了有关当前用户的信息(来自User
声明)。我还有另一项服务,可提供多租户数据库的用户特定视图。
在某些情况下,我希望将此数据库视图服务注入到控制器中,但是我当然不知道用户是否已成功通过身份验证,因此我无法实例化它。
在这种情况下,我是否应该遵循既定模式?
很明显,我可以抛出一个异常,但是这会导致返回500错误,感觉应该是控制器的角色,它认为在没有该服务可用的情况下操作是否可以继续进行。或者我应该只提供一个将值装箱的服务,如果由于某种原因而无法实例化它,则将其设置为null
吗?
谢谢。