public void SendMessageToWcfService() { using (DiskInfoClient ClientProxy = new DiskInfoClient(MyResourses.Texts.EndPoint_1)) { lock (SafeProgramClosingGate) { try { ClientProxy.SaveDataInLog(ClientNameTextBox.Text); MessageBox.Show(MyResourses.Texts.MessageWasSent, MyResourses.Texts.Message, MessageBoxButton.OK, MessageBoxImage.Warning); } catch (FaultException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (CommunicationException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (TimeoutException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } } } }
public async void GetDiskInfoFromServiceAsync() { //Без прокси /*ChannelFactory<IDiskInfo> TestChannelFactory = new ChannelFactory<IDiskInfo>(new NetHttpBinding(), new EndpointAddress("http://localhost:8080/DiskInfoService/EndPoint_1")); IDiskInfo ChannelToService = TestChannelFactory.CreateChannel();*/ //С прокси DiskInfoClient ClientProxy = new DiskInfoClient(MyResourses.Texts.EndPoint_1); try { ConsoleTextBox.Text = await ClientProxy.GetDriversDataAsync(); ClientProxy.Close(); } catch (FaultException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (CommunicationException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (TimeoutException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } finally { lock (StatusChangeGate) { if (!ShutDown) Application.Current.Dispatcher.Invoke(new Action(() => StatusLabel.Content = MyResourses.Texts.StatusFree)); ClientBusy = false; } } }
public void GetDriversNames() { lock (SafeProgramClosingGate) { //Ниже использован рекомендуемый способ закрытия прокси клиента DiskInfoClient ClientProxy = new DiskInfoClient(MyResourses.Texts.EndPoint_1); try { List<string> CurrentDrivers = ClientProxy.GetDriversNames(); StringBuilder ListOfDrivers = new StringBuilder(); foreach (string DriveName in CurrentDrivers) { ListOfDrivers.Append(DriveName + " "); } Application.Current.Dispatcher.Invoke(new Action(() => DriversNamesLabel.Content = ListOfDrivers)); ClientProxy.Close(); } catch (FaultException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (CommunicationException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (TimeoutException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } finally { lock (StatusChangeGate) { if (!ShutDown) Application.Current.Dispatcher.Invoke(new Action(() => StatusLabel.Content = MyResourses.Texts.StatusFree)); ClientBusy = false; } } } }
public void GetDriveInfoFromService(string DriveName) { lock (SafeProgramClosingGate) { //Ниже использован рекомендуемый способ закрытия прокси клиента DiskInfoClient ClientProxy = new DiskInfoClient(MyResourses.Texts.EndPoint_1); try { MainDriveInfo CurrentDriveInfo = ClientProxy.GetOneDriveData(DriveName); if (CurrentDriveInfo != null) { Application.Current.Dispatcher.Invoke(new Action(() => DriveInfoLabel.Content = CurrentDriveInfo.Name + " " + MyResourses.Texts.Free + " " + CurrentDriveInfo.AvailableSpace + " " + MyResourses.Texts.GigaByte + " " + MyResourses.Texts.From + " " + CurrentDriveInfo.TotalSpace + " " + MyResourses.Texts.GigaByte)); } else { Application.Current.Dispatcher.Invoke(new Action(() => DriveInfoLabel.Content = MyResourses.Texts.CantFindDriveByName)); } ClientProxy.Close(); } catch (FaultException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (CommunicationException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } catch (TimeoutException CurrentException) { MessageBox.Show(CurrentException.Message, MyResourses.Texts.Error, MessageBoxButton.OK, MessageBoxImage.Error); ClientProxy.Abort(); } finally { lock (StatusChangeGate) { if (!ShutDown) Application.Current.Dispatcher.Invoke(new Action(() => StatusLabel.Content = MyResourses.Texts.StatusFree)); ClientBusy = false; } } } }