private static void ComposeObjects() { //ServiceReader reader = new ServiceReader(); //CSVReader reader = new CSVReader(); //SQLReader reader = new SQLReader(); ServiceReader wrapperReader = new ServiceReader(); CachingReader reader = new CachingReader(wrapperReader); PeopleViewModel viewModel = new PeopleViewModel(reader); Current.MainWindow = new PeopleViewerWindow(viewModel); }
private static void ComposeObjectsForViewer() { // var reader = new ServiceReader(); //First Data Reader //var reader = new CSVReader(); //Second Data Reader var sqlReader = new SQLReader(); var serviceReader = new ServiceReader(); var reader = new CachingReader(sqlReader); var mainviewModel = new PeopleViewModel(reader); Application.Current.MainWindow = new PeopleViewerWindow(mainviewModel); Application.Current.MainWindow.Title = "Saja Makes the Dependency Injection Happen in WPFPlusASPNetCore 2020"; Application.Current.MainWindow.Show(); }
private static void ComposeObjects() { // Data Reader var readerUri = new ServiceReaderUri("http://localhost:9874"); var reader = new ServiceReader(readerUri); // Retry Function var delay = new TimeSpan(0, 0, 3); var retryReader = new RetryReader(reader, delay); // Exception Logging Function var logFilePath = AppDomain.CurrentDomain.BaseDirectory + "ExceptionLog.txt"; var logger = new FileLogger(logFilePath); var loggingReader = new ExceptionLoggingReader(retryReader, logger); // Caching Function var cachingReader = new CachingReader(loggingReader); var viewModel = new PeopleViewModel(retryReader); Application.Current.MainWindow = new MainWindow(viewModel); }
//public PeopleViewerWindow() //{ // InitializeComponent(); // viewModel = new PeopleViewModel(); // 'new' --> requires a compile-time reference, Lifetime responisibility of the object. This pattern (Tight Coupling) goes along all App layers (projects)... // this.DataContext = viewModel; //} public PeopleViewerWindow(PeopleViewModel peopleViewModel) // Instead of managing the Dependency ourselves, we use Constructor DI. This class is no longer responsible for the PeopleViewModel. App.xaml is... { InitializeComponent(); viewModel = peopleViewModel; this.DataContext = viewModel; }
public MainWindow(PeopleViewModel viewModel) { InitializeComponent(); ViewModel = viewModel ?? throw new ArgumentNullException("'viewModel' parameter cannot be null"); DataContext = ViewModel; }
public PeopleViewerWindow() { InitializeComponent(); viewModel = new PeopleViewModel(); this.DataContext = viewModel; }
public MainWindow(PeopleViewModel viewModel) { InitializeComponent(); ViewModel = viewModel; DataContext = ViewModel; }
public PeopleViewerWindow(PeopleViewModel peopleViewModel) { InitializeComponent(); viewModel = peopleViewModel; this.DataContext = viewModel; }
public MainWindow() { InitializeComponent(); ViewModel = new PeopleViewModel(); DataContext = ViewModel; }
public MainWindow(PeopleViewModel viewModel) { InitializeComponent(); ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel)); DataContext = ViewModel; }