Dependency Injection - Wann-Eigenschaft verwenden, Injektion

Ich habe eine Klasse, die einen Konstruktor hat wie diese:

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

Möchte ich, um die Abhängigkeit der Schöpfung von dieser Konstruktor. In einem ersten Schritt würde ich bewegen die ObjectA und B in Abhängigkeit von der Konstruktoren Parameter zu injizieren Sie über Konstruktor-Injektion. Ich würde gerne auf einen IoC-container für diesen Zweck, das ist, wo ich stecken im moment. Die Frage ist, was mit den classextender und die Wörterbücher. Ich injizieren müssen Sie der Klasse, weil der Inhalt der Wörterbücher wird ein wichtiger Teil von unit-tests.
Wäre es eine gute Idee, um zu injizieren, der string und die Wörterbücher per property-injection (I brauchen Sie nicht in anderen Klassen), so würde ich am Ende mit etwas wie dieses?:

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

Ist es die beste Praxis zu lösen so etwas?

wenn Sie sagen, ioc? sprechen Sie über spring, java-framework? oder noch was? ty.
Im Allgemeinen. Das aktuelle Projekt ist in C#, so dass ich würde am Ende mit etwas wie Einheit.

InformationsquelleAutor cb_dev | 2013-09-13

Schreibe einen Kommentar