В настоящее время я просматриваю пример использования веб-сервисов ASMX от Xamarin Forms по адресу https://developer.xamarin.com/guides/xamarin-forms/web-services/consuming/asmx/. Я прочитал текст и проверил пример. Я попытался построить ту же структуру, используя мой собственный веб-сервис, но, к сожалению, это не работает.ASMX Webservice не имеет asyc BEGIN .. END options
Проблема заключается в том, что в примере существуют такие методы, как «todoService.BeginGetTodoItems» и «todoService.EndGetTodoItems», но в моих веб-сервисах их не существует. У меня только, например. «Вход», но у меня нет «BeginLogin» и «EndLogin».
Так что я мог бы назвать его синхронизацией (которая работает нормально), но не асинхронно.
Как я мог получить/создать методы начала и конца?
Большое спасибо!
Обновление: Просто уточнить: В Reference.cs ASMXService примера приложения TodoASMX включены эти методы, например. для GetTodoItems:
public TodoItem[] GetTodoItems()
public System.IAsyncResult BeginGetTodoItems(System.AsyncCallback callback, object asyncState)
public TodoItem[] EndGetTodoItems(System.IAsyncResult asyncResult)
public void GetTodoItemsAsync()
public void GetTodoItemsAsync(object userState)
private void OnGetTodoItemsCompleted(object arg)
Но в моей ASMX Webserivce, только эти методы доступны, например, для HelloWorld по умолчанию:
public string HelloWorld()
public void HelloWorldAsync()
public void HelloWorldAsync(object userState)
private void OnHelloWorldOperationCompleted(object arg)
Таким образом, вы видите, BeginHelloWorld и EndHelloWorld отсутствуют ...
Update2: Проблема повторяется легко: Загрузите пример, приведенный в статье https://developer.xamarin.com/guides/xamarin-forms/web-services/consuming/asmx/ на https://developer.xamarin.com/samples/xamarin-forms/WebServices/TodoASMX. Он работает нормально. Теперь удалите веб-версию ASMXService из iOS Project и вручную добавьте ее снова. URL-адрес: http://todoasmxservice.azurewebsites.net/TodoService.asmx, а тип должен быть «.NET 2.0 Web Services», потому что это образец ASMX, а не образец WCF. Теперь я получаю следующие сообщения об ошибках, так как НАЧАТЬ и методы END уже не существует:
/TodoASMX/iOS/SoapService.cs(87,87): CS1061 Ошибка: Тип TodoASMX.iOS.ASMXService.TodoService' does not contain a definition for
BeginGetTodoItems' и не метод расширения BeginGetTodoItems' of type
TodoASMX.iOS .ASMXService.TodoService '. Вам не хватает ссылки на сборку? (CS1061) (TodoASMX.iOS)
Что я делаю неправильно? Что мне нужно сделать дополнительно, если я просто удалю веб-службы и добавлю их снова? Большое спасибо!
Sure. Конечно, я уже добавил веб-ссылку на свой проект. Как сказано, без ASYNC он отлично работает. Но, конечно, я хочу назвать это асинхронным. Поэтому мне нужны эти «todoService.BeginGetTodoItems» и «todoService.EndGetTodoItems», но у меня их нет. У меня просто «myService.Login», но нет «myService.BeginLogin» или «myService.EndLogin». – K232