¿Fábricas de delegados con clave con parámetros de constructor de tiempo de ejecución?

Digamos que tengo el siguiente servicio y componentes:

public interface IService
{
    void DoWork();
}

public class ServiceA : IService
{
    private readonly string _name;

    public ServiceA(string name)
    {
        _name = name;
    }

    public void DoWork()
    {
        //ServiceA DoWork implementation
    }
}

public class ServiceB : IService
{
    private readonly string _name;

    public ServiceB(string name)
    {
        _name = name;
    }

    public void DoWork()
    {
        //ServiceB DoWork implementation
    }
}

Observe que cada componente toma un parámetro constructorname. Digamos también quename se determina en tiempo de ejecución.

He estado revisando la documentación de AutoFac para tratar de encontrar una forma segura de escribir para resolver componentes como este sin tener que hacer referencia al contenedor directamente. Si solo tuviera una implementación deIService entonces podría usar unFábrica delegada para pasar el parámetro de tiempo de ejecución al constructor. Sin embargo, tengo dos implementaciones, y la que debe usarse también debe determinarse en tiempo de ejecución. Si no tuviera elname parámetro constructor entonces puderegistre los dos componentes por clave y la resolución usando IIndex

No puedo entender cómo hacer ambas cosas. ¿Hay alguna manera de combinar el uso de Delegate Factories yIIndex resolución de componentes? ¿O hay otra forma de registrar y resolver ambos componentes sin tener que hacer referencia directa al contenedor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta