gpt4 book ai didi

c# - 如何在 Autofac 注册中返回 NULL?

转载 作者:太空狗 更新时间:2023-10-29 21:40:37 26 4
gpt4 key购买 nike

有没有办法用 autofac 返回 null?如果我这样做,我会得到一个异常(exception)。

在某些情况下,我无法解析一个对象,应该返回 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,将抛出此异常:

DependencyResolutionException:

A delegate registered to create instances of 'IMyObject' returned null.

堆栈跟踪:

at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable1 parameters)<br/>
at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable
1 parameters)
at Autofac.Core.Resolving.InstanceLookup.b__0()
at Autofac.Core.Lifetime.LifetimeScope.GetOrCreateAndShare(Guid id, Func1 creator)<br/>
at Autofac.Core.Resolving.InstanceLookup.Execute()
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope
currentOperationScope, IComponentRegistration registration,
IEnumerable
1 parameters)
at Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable1 parameters)<br/>
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration
registration, IEnumerable
1 parameters)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance)
at Autofac.ResolutionExtensions.ResolveService(IComponentContext
context, Service service, IEnumerable
1 parameters)
at Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, IEnumerable`1 parameters)
at Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, Parameter[] parameters)
at RestApi.Controllers.MyApiController.CreateEntityContext() in C:...

最佳答案

据我所知,在注册中返回 NULL 总是会抛出异常。有关如何处理该问题的一些想法,请查看 this answer .

关于c# - 如何在 Autofac 注册中返回 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com