static void Main(string[] args) { //Именно такой тип привязки необходим для работы со службами, размещенными в ASP.NET-приложении BasicHttpBinding binding = new BasicHttpBinding(); //Для фабрики указываем адрес, который можно узнать, запустив серверную службу с тестовым клиентом ChannelFactory <IService2> factory = new ChannelFactory <IService2>( binding, new EndpointAddress("http://localhost:10561/Service2.svc")); //Создаем канал для работы с серверной службой IService2 channel = factory.CreateChannel(); //Создаем пустой объект контракта данных и инициализируем его поля PersonFromClient personFromClient = new PersonFromClient(); personFromClient.Age = 30; personFromClient.Name = "Petia"; //Создаем сериализатор XmlSerializer xmlSerializer = new XmlSerializer(typeof(PersonFromClient)); //Создаем объект XDocument и сериализуем в него объект с данными XDocument xDocument = new XDocument(); using (XmlWriter xmlWriter = xDocument.CreateWriter()) { xmlSerializer.Serialize(xmlWriter, personFromClient); } //Сохраняем сериализованные данные в объект XElement, подходящий для отправки серверной службе XElement personXElement = xDocument.Root; //Передаем серверной службе данные и ожидаем в ответ значение 0 int result = channel.addPerson(personXElement); //Выводи в консоль ответ сервера, подтверждающий, что операция выполнена Console.WriteLine("result: {0}", result); Console.WriteLine("Для завершения нажмите <ENTER>\n"); Console.ReadLine(); factory.Close(); }
private void Button_Click(object sender, RoutedEventArgs e) { if (sender == buttonCancel) { this.Close(); } else if (sender == buttonLoading) { //MessageBox.Show(proxy.GetDataTranslate().Count()+""); //foreach (Alfa.DataTranslate item in proxy.GetDataTranslate()) //{ // DataTranslate obj = new DataTranslate(); // obj.Word = item.Word; // obj.Description = item.Description; // //MessageBox.Show(item.Word+ item.Description); // Mas.dictionary.Add(obj); //} ChannelFactory <IService2> factory = null; try { BasicHttpBinding binding = new BasicHttpBinding(); factory = new ChannelFactory <IService2>( binding, new EndpointAddress("http://localhost:10561/Service2.svc")); IService2 channel = factory.CreateChannel(); PersonFromClient personFromClient = new PersonFromClient(); personFromClient.Name = textBoxName.Text; personFromClient.Age = Int32.Parse(textBoxAge.Text); XmlSerializer xmlSerializer = new XmlSerializer(typeof(PersonFromClient)); XDocument xDocument = new XDocument(); using (XmlWriter xmlWriter = xDocument.CreateWriter()) { xmlSerializer.Serialize(xmlWriter, personFromClient); } XElement personXElement = xDocument.Root; int result = channel.addPerson(personXElement); textBlockStatus.Text = "Данные загружены на сервер успешно"; } catch (Exception) { textBlockStatus.Text = "Загрузка данных не удалась"; } finally { factory.Close(); } } }