.NET 2.x Сложности с переносом метода из сервиса в клиент в веб-сервисе - C#
Формулировка задачи:
Есть веб сервис "Service.cs" и клиент "Form.cs"(windows form). Не получается перенести метод из сервиса в клиент (при выводе массива пишет Int32[]). Как исправить?
Service.cs
Form.cs
using System; using System.Web.Services; public class Service { [WebMethod] public int[] Main(string str1, string str2) { string[] str3 = str1.Split(' '); //Возвращает строковый массив без пробелов string[] str4 = str2.Split(' '); int[] arr1;// массив 1 int[] arr2;// массив 2 arr1 = new int[str3.Length]; // длина массива arr2 = new int[str4.Length]; for (int i = 0; i < str3.Length; i++) arr1[i] = int.Parse(str3[i]); //Преобразовывает строковое представление числа в эквивалентное ему 32-битовое знаковое целое число for (int i = 0; i < str4.Length; i++) arr2[i] = int.Parse(str4[i]); return MergeSort(arr1, arr2); } public int[] MergeSort(int[] left, int[] right) { int[] buff = new int[left.Length + right.Length];//буфер для отсортированного массива //счетчики длины трех массивов int i = 0; //соединенный массив int l = 0; //левый массив int r = 0; //правый массив //сортировка сравнением элементов for (; i < buff.Length; i++) { //если правая часть уже использована, дальнейшее движение происходит только в левой //проверка на выход правого массива за пределы if (r >= right.Length) { buff[i] = left[l]; l++; } //проверка на выход за пределы левого массива //и сравнение текущих значений обоих массивов else if (l < left.Length & left[l] < right[r]) { buff[i] = left[l]; l++; } //если текущее значение правой части больше else { buff[i] = right[r]; r++; } } return buff; } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using WindowsFormsApplication1.localhost; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Service sort = new Service(); // textBox1.Text = "Отсортированный массив: \n" + sort.Start(textBox1); // sort.Main(textBox1.Text, textBox2.Text); string str1 = textBox1.Text; string str2 = textBox2.Text; label1.Text = "Массив ="+Convert.ToString(sort.Main(str1, str2)); } } }
Решение задачи: «.NET 2.x Сложности с переносом метода из сервиса в клиент в веб-сервисе»
textual
Листинг программы
Service sb = new Service(); int [] a=sb.Main(str1,str2); string str3; for (int i=0; i < a.Length; i++) { str3 = Convert.ToString(a[i]); } label1.Text = "Массив"+str3; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д