2016-11-11 5 views
0

Im пытается использовать форму окна с веб-службой и сталкивается с этой проблемой: Невозможно преобразовать int [] в массив int. в моей форме окна, когда Тринг передать ИНТ [] для WebService и мой код, как ниже: Web Сервис-код:использовать массив из окон в веб-службу

public class WebService1 : System.Web.Services.WebService 
{  
    [WebMethod] 
    public int plus(int [] x) 
    { 
     int y=x[0] + x[1]; 
     return y; 
    } 
} 

и окна формы код:

private void button1_Click(object sender, EventArgs e) 
     { 
      int[] x = new int [2]; 
      x[0] = 1; 
      ServiceReference1.WebService1SoapClient c = new ServiceReference1.WebService1SoapClient();     
      c.plus(x); 
     } 

уверен, что я добавил ServiceReference до того и его ОК, но ошибка в строке «c.plus (x)»: Невозможно преобразовать int [] в массив из int. Я попытался добавить c.plus (x.ToList()); и та же ошибка. Я попытался настроить ссылку на службу и изменить тип коллекции на generic.list, а также ту же ошибку. любое предложение?

+0

Почему вы создаете старую (и не очень совместимы) ASMX службы вместо службы WCF? –

+0

Вы создали старую (до 2008 года) службу ASMX, но вы использовали кнопку «Service Reference» для создания своего прокси-сервера, который работает с WS-I-совместимыми службами. В то время WSDL и XSD были очень разными. Вам нужно использовать кнопку «Добавить веб-ссылку», чтобы добавить прокси-сервер старого стиля. Лучшим вариантом является создание службы WCF. Пользователи вашей службы будут * не удивлены, если им придется иметь дело с несовместимой услугой. –

+0

Еще одно соображение заключается в том, что службы ASMX находятся в режиме обслуживания - никаких новых функций, ошибки исправляются нечасто и часто выпускаются только во время основных обновлений .NET. –

ответ

0

Вы должны добавить веб-ссылку вместо ссылки на службу, Пусть эта статья поможет вам

http://www.c-sharpcorner.com/blogs/how-to-use-a-web-service-in-windows-form-application1

+0

Статья просто неверна - в .NET вы используете WCF для создания веб-сервисов, а не для старых служб ASMX. Вы не объясняете * почему * OP должен использовать веб-ссылку либо потому, что он создал службу ASMX, а не службу WCF. У ОП была бы такая же проблема, если бы работала с * любым WS-I-совместимым веб-сервисом. –

+0

@Panagiotis Kanavos. Не ошибаюсь. Его способ, если требуется, правильно? – vipin

+0

Нет, это на 100% неправильно. Если вы хотите создать веб-службу, вы используете WCF. * NOT * ASMX. Если вы хотите вызвать веб-службу, вы используете «Сервис-ссылку», * NOT * 'Добавить веб-ссылку'. Это связано с тем, что службы и прокси-серверы ASMX не понимают стандартов * совместимости *, созданных за последнее десятилетие. –