Внедрение зависимостей - когда использовать внедрение свойств

У меня был класс, у которого есть конструктор, подобный этому: #

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

Я хочу получить создание зависимости от этого конструктора. На первом этапе я бы переместил зависимость ObjectA и B в параметры конструкторов, чтобы внедрить их с помощью инжектора конструктора. Я хотел бы использовать контейнер IoC для этой цели, вот где я застрял на данный момент. Вопрос в том, что делать с someString и словарями. Мне нужно внедрить их в класс, потому что содержание словарей будет важной частью модульных тестов. Будет ли хорошей идеей вставлять строку и словари с помощью внедрения свойств (они мне не нужны в других классах), так что в итоге я получу нечто подобное ?:

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

Есть ли лучшая практика, чтобы решить что-то вроде этого?

Ответы на вопрос(2)

Ваш ответ на вопрос