use*_*899 6 c# exception-handling autofac
有没有办法用autofac返回null?如果我这样做,我会得到一个例外.
在某些情况下,我无法解析一个对象,应该返回null.
m_builder.Register < IMyObject > ((c, p) => {
//do something
if (...) {
//cant create/resolve object (error case)
return null;
} else {
return new IMyObject();
}
}).InstancePerHttpRequest();
Run Code Online (Sandbox Code Playgroud)
是否有使用autofac执行此操作的内置方法?
编辑:我想返回null.或者执行其他操作以通知用户创建不成功.如果我返回null,则抛出此异常:
DependencyResolutionException:
注册为创建"IMyObject"实例的委托返回null.
堆栈跟踪:
在Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext上下文,IEnumerable的1个参数) 在Autofac.Core.Resolving.InstanceLookup.b__0() 在Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(GUID ID,Func键1个参数) 在Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration注册,IEnumerable的1个参数) 在Autofac.ResolutionExtensions.TryResolveService(IComponentContext上下文中,服务服务,IEnumerable的1个参数) 在Autofac.ResolutionExtensions.Resolve [TService](IComponentContext上下文,IEnumerable` 1个参数) 在Autofac.ResolutionExtensions.Resolve [TService](IComponentContext上下文中,参数[]参数) 在RestApi.Controllers.MyApiController.CreateEntityContext()在C:...
1 parameters)
at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1 creator)
at Autofac.Core.Resolving.InstanceLookup.Execute() at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable1 parameters)
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable1 parameters, Object& instance) at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable
| 归档时间: |
|
| 查看次数: |
4857 次 |
| 最近记录: |