Inyección de dependencia - Cuándo usar la inyección de propiedades

Tengo una clase que tiene un constructor como este:

    private string _someString;
    private ObjectA _objectA;
    private ObjectB _objectB;
    private Dictionary<Enum, long?> _dictionaryA;
    private Dictionary<Tuple<Enum,long?>, long?> _dictionaryB; 

    public SomeDiClass(string someString)
    {
        _someString = someString;

        _objectA = new ObjectA();
        _objectB = new ObjectB();

        _dictionaryA = new Dictionary<Enum, long?>();
        _dictionaryB = new Dictionary<Tuple<Enum, long?>, long?>();
    }

Quiero sacar la creación de dependencia de este constructor. En un primer paso, movería la dependencia de ObjectA y B a los parámetros del constructor para inyectarlos a través de la inyección del constructor. Me gustaría usar un contenedor IoC para este propósito, ahí es donde me quedé atascado en este momento. La pregunta es qué hacer con someString y los diccionarios. Necesito inyectarlos a la clase, porque el contenido de los diccionarios será una parte importante de las pruebas unitarias. ¿Sería una buena idea inyectar la cadena y los diccionarios a través de la inyección de propiedades (no los necesito en otras clases), por lo que terminaría con algo como esto ?:

    private ObjectA _objectA;
    private ObjectB _objectB;

    public string SomeString { get; set; }
    public Dictionary<Enum, long?> DictionaryA { get; set; }
    public Dictionary<Tuple<Enum, long?>, long?> DictionaryB { get; set; }

    public SomeDiClass(ObjectA objectA, ObjectB objectB)
    {
        _objectA = objectA;
        _objectB = objectB;
    }

¿Hay una mejor práctica para resolver algo como esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta