Simple Injector injiziert mehrere Abhängigkeiten in BaseClass

Ich habe einBaseViewModel das von mehreren @ geerbt wiViewModel Klassen. In meinemBaseViewModel Ich habe ein paar Abhängigkeiten, die von @ injiziert werdViewModel. Jetzt, wenn ich eine neue Abhängigkeit in meinem @ hinzufügen muBaseViewModel Ich muss alle VMs ändern, die @ erbBaseViewModel. Bitte lassen Sie mich wissen, wie es in Simple Injector gehandhabt werden kann. Folgendes ist meine Codestruktur:

Wie kann ich meine Basisklassen-Injection unabhängig machen, damit ich nicht alle Änderungen in meiner geerbten Klasse vornehmen muss?

Code

public class BaseViewModel
{
    protected readonly IAESEnDecrypt AESEnDecrypt;
    protected readonly IDataService DataService;
    protected readonly INavigationService NavigateToPage;
    public BaseViewModel(INavigationService nav, IDataService data, IAESEnDecrypt encrypt)
    {
        AESEnDecrypt= encrypt;
        NavigateToPage = nav;
        DataService = data;
    }
}


public class ViewModel
{
   public ViewModel(INavigationService nav, IDataService data, IAESEnDecrypt encrypt) : base (nav, data, encrypt)
   {

   }
}

My BaseViewModel Enthält einige der folgenden Schnittstellen, deren Implementierung über den Konstruktor eingefügt wird:

- NavigationService
- DataService
- GeoLocationService
- SmartDispatcher
- MessageBus which implement Message Aggregator

It enthält auch einige allgemeine Eigenschaften als statische Variablen, deren Daten in der gesamten Anwendung verwendet werden, z. B. UserDetails. Und enthält auch CancellationToken, IsBusy, um die Fortschrittsanzeige anzuzeigen.

BaseViewModel enthält auch die HandleException-Methode, die alle eingehenden Ausnahmen von allen ViewModel-Objekten behandelt. Enthält auch einige allgemeine Befehle, die in allen Ansichten verwendet werden, wie z. B. Si gnoutCommand, NavigationBar Commands.

atsächlich enthält es inzwischen alle gängigen Methoden, die in verschiedenen ViewModel-Versionen verwendet werde

Bitte schlagen Sie vor, wie ich diesen Code überarbeiten kann.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage