private static void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) { if (!e.Handled) { IoCKernel.Get <ILogger>().Error("Error occured", e.Exception); } }
protected override void OnStartup(StartupEventArgs e) { IoCKernel.Initialize(new AppModule()); progressWindow = IoCKernel.Get <ProgressWindow>(); progressWindow.Show(); Messenger.Default.Send(new IndicateProgressMessage() { OnLoadingEndedCallback = OnLoadingEnded }); LogManager.Configuration = IoCKernel.Get <LoggingConfiguration>(); base.OnStartup(e); }
static void Main(string[] args) { #region IoCTest IIoCKernel iocKernel = new IoCKernel(); iocKernel.Bind <IAbstractOne>().To <AchieveOne>(); iocKernel.Bind <IAbstractTwo>().To <AchieveTwo>(); iocKernel.Bind <IAbstractOne_One>().To <AbstractOne_One>(); iocKernel.Bind <IAbstractOne_Two>().To <AbstractOne_Two>(); DITest diType = iocKernel.GetValue <DITest>(); diType.Writer("IoC Frame Work Test"); #endregion Console.ReadLine(); }
protected override void OnStartup(StartupEventArgs e) { #if DEBUG IsDebug = true; #endif IoCKernel.Init(); ConfigureMainWindow(); Current.MainWindow.Show(); CheckForUpdate(IoCKernel.Get <SettingsWrapper>()); _socketIoService = IoCKernel.Get <SocketIoService>(); //_socketIoService.Connect(); base.OnStartup(e); }
private static async void CheckForUpdate(SettingsWrapper settingsWrapper) { try { var client = new HttpClient { BaseAddress = BaseUri }; var response = await client.GetAsync("/api/version/latest"); if (!response.IsSuccessStatusCode) { return; } var versionString = (await response.Content.ReadAsStringAsync()).Replace("\"", string.Empty); var latestVersion = new Version(versionString); var currentVersion = Assembly.GetExecutingAssembly().GetName().Version; if (latestVersion.CompareTo(currentVersion) <= 0) { return; } //TODO: Find a solution for automatic updates //if (settingsWrapper.CurrentSettings.AutomaticAppUpdate) //{ // new UpdateWindow(new Uri(BaseUri, "/api/download/latest")).Show(); //} //else //{ var messageBoxResult = MessageBox.Show( $"A newer version is available for download.{Environment.NewLine}Current version: {currentVersion}, Latest version: {latestVersion}{Environment.NewLine}Go to download page?", "Newer version available", MessageBoxButton.YesNo); if (messageBoxResult == MessageBoxResult.Yes) { Process.Start("http://monitor.pepespub.de/download/latest"); } //} } catch (Exception e) { var logger = IoCKernel.Get <ILogger>(); logger.Error("Error while looking for newer version", e); } }
public IEnumerable <IScanResult> ProcessResult(string folderName, IEnumerable <IScanResult> result) { var changed = result.Where(r => r.Result != ScanResult.Unchanged); var viewmodel = IoCKernel.Get <IScanResultViewModel>( IoCKernel.Param("results", changed)); viewmodel.Label = string.Format(StringFormats.ScanResultTitle, folderName); var window = new ScanResultWindow(viewmodel); if (window.ShowDialog() ?? false) { return(viewmodel .Where(c => (c.IsIgnoreOption ?? false) == false) .Select(c => c.ScanResult) .ToList()); } return(new List <IScanResult>()); }
static void Main(string[] args) { //// 下面两个demo违背的原则是:“具体应该依赖于抽象” //// 依赖倒置 //// A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象 //IUnderly1 underly = new Underly1(); //underly.WriteLine(); //// B.抽象不应该依赖于具体 //IUnderly2 underly2 = new Underly2(); //underly2.WriteLine(); //#region 依赖注入基本实现:依赖注入是把耦合的问题抛到了外部,抛到了要使用Top类型的对象中,这个问题就很严重了,我们怎么解决呢? //// 构造函数注入 //Top top = new Top(new Underly3()); //top.Execution(); //// 属性注入 //Top2 top2 = new Top2(); //top2.Underly = new Underly3(); //top2.Execution(); //// 接口注入 //Top3 top3 = new Top3(); //top3.SetQuote(new Underly3()); //top3.Execution(); //#endregion #region IoCTest IIoCKernel iocKernel = new IoCKernel(); iocKernel.Bind <IAbstractOne>().To <AchieveOne>(); iocKernel.Bind <IAbstractTwo>().To <AchieveTwo>(); iocKernel.Bind <IAbstractOne_One>().To <AbstractOne_One>(); iocKernel.Bind <IAbstractOne_Two>().To <AbstractOne_Two>(); DITest diType = iocKernel.GetValue <DITest>(); diType.Writer("IoCFrameWorkTest"); #endregion Console.ReadKey(); }
private static void ConfigureMainWindow() { Current.MainWindow = IoCKernel.Get <MainWindow>(); }
public UpdateWindow(Uri downloadUri) { InitializeComponent(); DownloadInstall(downloadUri, IoCKernel.Get <ILogger>()); }
private void LoadDataContext() { DataContext = IoCKernel.Get <ISettingsViewModel>(); }