C # - извлечение данных из веб-службы с использованием (сериализация JSON) - PullRequest
0 голосов
/ 12 ноября 2018

Добрый день,

Я пытаюсь получить данные из моего веб-сервиса (.asmx), но в части контроллера у меня есть это исключение

"System.AggregateException - произошла одна или несколько ошибок "

Есть идеи, как это исправить?спасибо

TestService

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Runtime.InteropServices.ComVisible(true)]
[Serializable]

public class TestService : System.Web.Services.WebService
{

    Core connection = new Core();
    DataTable dtUnits = new DataTable();
    QServiceQuery query = new QServiceQuery();

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string LoadInvoices()
    {
        dtUnits = connection.DataTable_return(query.LoadInvoices());

        List<Invoice> list = new List<Invoice>();
        Invoice inv = new Invoice();

        //for (int i = 0; i < dtUnits.Rows.Count; i++)
        //{
        inv.transNo = dtUnits.Rows[0]["transNo"].ToString();

        list.Add(inv);
        //}
        //JavaScriptSerializer js = new JavaScriptSerializer();
        //Context.Response.Write(js.Serialize(list));
        return new JavaScriptSerializer().Serialize(list);
    }
}

TestController

        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://localhost:9834/");
        //client.DefaultRequestHeaders.Add("appkey", "myapp_key");
        client.DefaultRequestHeaders.Accept.Add(
           new MediaTypeWithQualityHeaderValue("application/json"));

        HttpResponseMessage response = client.GetAsync("WebService/TestService.asmx/LoadInvoices").Result;
        if (response.IsSuccessStatusCode)
        {
            try
            {
                var transNo = response.Content.ReadAsAsync<IEnumerable<Invoices>>().Result;
                invoice.Add(new Invoices.Invoice() { transNo = transNo.ToString() });
                listView.ItemsSource = invoice;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

        }
        else
        {
            MessageBox.Show("Error Code " + response.StatusCode + " : Message - " + response.ReasonPhrase);
        }
    }

Внутреннее исключение

Ошибка в строке 1 позиции 37. Ожидается элемент 'ArrayOfInvoices' из пространства имен 'http://schemas.datacontract.org/2004/07/TestController'.. Обнаружен' Элемент 'с именем' строка ', пространство имен' http://tempuri.org/'

Сообщение об исключении https://i.stack.imgur.com/mmfRf.png

...