Skip to content

IServiceProvider.GetServices return value nullability #94374

Open
@WeihanLi

Description

@WeihanLi

Currently, the API return value type is IEnumerable<object?> while the API implementation is returning IEnumerable<object>

see

public static IEnumerable<object?> GetServices(this IServiceProvider provider, Type serviceType)
{
ThrowHelper.ThrowIfNull(provider);
ThrowHelper.ThrowIfNull(serviceType);
Type? genericEnumerable = typeof(IEnumerable<>).MakeGenericType(serviceType);
return (IEnumerable<object>)provider.GetRequiredService(genericEnumerable);
}

so should we update the API return value type to IEnumerable<object> to align with the method return value type?

namespace Microsoft.Extensions.DependencyInjection;

public static class ServiceProviderServiceExtensions
{
-    public static IEnumerable<object?> GetServices(this IServiceProvider provider, Type serviceType);
+    public static IEnumerable<object> GetServices(this IServiceProvider provider, Type serviceType);
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions