有没有办法处理 WCF 服务的构造函数抛出的异常,当该构造函数接受依赖项时, IoC 容器(在本例中为 AutoFac)对依赖项的实例化导致异常?
考虑具有以下构造函数的 WCF 服务:
public InformationService(IInformationRetriever informationRetriever)
{
_informationRetriever = informationRetriever;
}
//... the service later makes use of the injected InformationRetriever
该服务使用 AutoFac WcfIntegration 和AutofacWebServiceHostFactory
(这恰好是一个 RESTful 服务)。
依赖项注册在服务的 global.asax.cs 中,即:
builder.RegisterType<InformationRetriever>()
.As<IInformationRetriever>()
现在,InformationRetriever
实现在其构造函数中执行了一些检查,以确保一切就绪,以便能够完成其工作。当它在这个阶段发现问题时,它会抛出异常。
但是,我不希望服务的调用者收到 AutoFac 异常:
An exception was thrown while invoking the constructor ... on type InformationRetriever
实际上,我正在尝试测试:
鉴于InformationService 正在运行
当我调用 GetSomeInformation() 方法时
并且InformationRetriever 不能被实例化
然后我想返回一个友好的错误信息
并记录实际的异常
这是我的设计的问题,还是有已知的模式来克服或防止这个问题?
我四处寻找,找不到有关此类问题的任何信息。