在ASP.NET MVC
(3.0)中使用CaSTLe.Windsor
,如果我的依赖项之一解析为空,有什么方法可以适当处理?例如,假设我有一个 IMmbershipService
。
class ServiceInstaller
{
// ...
void Install( // .. )
{
container.Register(
Component
.For<IMembershipService>()
.ImplementedBy<MembershipService>()
.LifeStyle.PerWebRequest
);
}
}
好的,这很好用。现在,也许并非我的所有站点都需要用户登录。假设我的 Web 主机的数据库服务器可能崩溃了几个小时。在这种情况下,查看数据库或尝试调用我的 ISession
的内容可能会返回 null。
这种情况我能做什么?我可以写 if(membershipService == null)
一百遍,但这看起来很愚蠢。是否有一个内置的解决方案可以说“嘿,如果我们遇到错误,请执行此操作......?”
最佳答案
我认为服务永远不应该为空。如果数据库关闭,服务仍应返回,但其方法应抛出异常、返回 null 或某个默认值,具体取决于服务的语义。
关于asp.net-mvc-3 - CaSTLe.Windsor,ASP.NET MVC,处理注入(inject)的空解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4922196/