I have a scenario such as follows and cannot get my `SpecificApi` service to register.

```
    public interface IDetail
    {
        string Name { get; set;}
    }

    public class SpecificDetail : IDetail
    {
        public string Name { get; set; }
    }

    public interface IBaseApi<TDetail> where TDetail: IDetail
    {
        TDetail Method1();
    }

    public interface ISpecificApi<TDetail> : IBaseApi<TDetail> where TDetail : IDetail
    {

    }

    public class SpecificApi : ISpecificApi<SpecificDetail>
    {
        public SpecificDetail Method1()
        {
            return new SpecificDetail();
        }
    }

    public class Consumer
    {
        public  Consumer(ISpecificApi<IDetail> api) // Generic must be of IDetail, not SpecificDetail
        {

        }
    }

```

I've tried the following to register the service, but with no luck.

```
// Fails at runtime with System.ArgumentException: 'Open generic service type 'DiGenericsTest.ISpecificApi`1[TDetail]' requires registering an open generic implementation type. (Parameter 'descriptors')'
builder.Services.AddSingleton(typeof(ISpecificApi<>), typeof(SpecificApi));

// Fails at build time with "there is no implicit reference conversion"
builder.Services.AddSingleton<ISpecificApi<IDetail>, SpecificApi>();

// This runs, but then I have to inject ISpecificApi<SpecificDetail> into Consumer instead of ISpecificApi<IDetail>.
builder.Services.AddSingleton<ISpecificApi<SpecificDetail>, SpecificApi>();

builder.Services.AddSingleton<Consumer>();

```