示例#1
0
        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();
         }
     }
 }