有没有办法用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();
是否有内置方法可以使用 autofac 执行此操作?
编辑:我想返回 null。或者做其他事情来通知用户创建不成功。如果我返回 null 这个异常将被抛出:
依赖解析异常:
注册以创建“IMyObject”实例的委托返回 null。
堆栈跟踪:
在 Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, 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个参数)
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
在 Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, Parameter[] parameters)
在 RestApi.Controllers.MyApiController.CreateEntityContext() 在 C:...