Dependency Injection - Kiedy użyć wtrysku właściwości

Mam klasę, która ma takiego konstruktora:

    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?>();
    }

Chcę uzyskać tworzenie zależności z tego konstruktora. W pierwszym kroku chciałbym przenieść zależność ObjectA i B do parametrów konstruktorów, aby wstrzyknąć je za pomocą wtrysku konstruktora. W tym celu chciałbym użyć kontenera IoC, tam właśnie utknąłem. Pytanie brzmi: co zrobić z someString i słownikami. Muszę wprowadzić je do klasy, ponieważ zawartość słowników będzie ważną częścią testów jednostkowych. Czy dobrym pomysłem byłoby wstrzyknięcie ciągu znaków i słowników poprzez iniekcję własności (nie potrzebuję ich w innych klasach), więc skończyłbym na czymś takim ?:

    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;
    }

Czy istnieje najlepsza praktyka do rozwiązania czegoś takiego?

questionAnswers(2)

yourAnswerToTheQuestion