IAsyncDisposable is coming to in C# 8 https://github.com/dotnet/corefx/issues/32640. We need to figure out what happens when services implement IAsyncDisposable. We need to figure out what to prefer if both are on a type and we also need to implement the interface on the ServiceProvider type.