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 を返すと、この例外がスローされます。
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.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)
at RestApi.Controllers.MyApiController.CreateEntityContext() in C:...