проблема с использованием C # для использования веб-службы с типом enum - PullRequest
0 голосов
/ 28 августа 2018

У меня проблема с использованием веб-службы, и я надеялся, что кто-нибудь сможет пролить свет.

У меня есть все, что мне нужно для работы, за исключением перечисления.

Сгенерированный Reference.cs содержит:

public enum SearchType {
    sales,
    lettings,
}

Мой метод контроллера имеет следующее:

if (model.ValuationType == "lettings")
{
    Debug.WriteLine("in the lettings route");
    request = new ValuationRequest
    {
        ValuationType = SearchType.lettings,
        Postcode = model.Postcode,
        FromDate = DateTime.Now.AddDays(1),
        ToDate = DateTime.Now.AddDays(14)
    };
}
else 
{
    Debug.WriteLine("in the sales route");
    request = new ValuationRequest
    {
        ValuationType = SearchType.sales,
        Postcode = model.Postcode,
        FromDate = DateTime.Now.AddDays(1),
        ToDate = DateTime.Now.AddDays(14)
    };
}

var valuationAppointments = 
WebUtility.GetValuationAppointments(request);

и в GetValuationAppointments утилита просто делает следующее:

public static Appointment[] GetValuationAppointments(ValuationRequest request)
{
    Debug.WriteLine(request.ValuationType);
    Debug.WriteLine(request.Postcode);
    Debug.WriteLine(request.FromDate);
    Debug.WriteLine(request.ToDate);

    service = new MyWebService();
    var valuationAppointments = service.GetValuationAppointments(request);
    return valuationAppointments;
}

Теперь отладка из этих строк записи показывает все именно так, как я ожидал, и правильно возвращает встречи, однако они всегда являются продажами. Даже если сдача в аренду передается от модели к сервису. Я предполагаю, что что-то о типе enum полностью игнорируется, и поэтому сервис по умолчанию продается.

Visual Studio не выдает предупреждений о ValuationType = SearchType.lettings, и все, что я пытаюсь с этой строкой, приводит к ошибкам.

Есть какие-нибудь идеи, почему это ValuationType = SearchType.lettings - единственное поле, терпящее неудачу?

доказательства отладки:

in the lettings route
lettings
GU4 7QG
29/08/2018 10:47:21
11/09/2018 10:47:21

Ценю любую помощь!

1 Ответ

0 голосов
/ 28 августа 2018

Проблема заключалась в том, что я не указывал какое-то обязательное поле

SearchTypeSpecified = true;

исправил проблему!

Приветствует всех людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...