I want to do call an awaitable async
method during a registration like this:
// builder variable contains Autofac ContainerBuilder
builder.Register(
(async (context, parameters) => // need async here
{
var someClass = new SomeClass(context.Resolve<ISomeDependency>());
await someClass.SomeAsyncInitMethod(); // need to await result
return someClass;
})).As<ISomeClass>().SingleInstance();
SomeClass
implements ISomeClass
as Service.
The important part is the someClass.SomeAsyncInitMethod()
call. This is async
, so because of this I need to await
it here and put the async
keyword into the Register
method. But now Autofac
thinks this returns a Task<SomeClass>
which is not registerable as Service
ISomeClass
.
How to achieve the above and register SomeClass
as ISomeClass
when awaiting the async
init Method?