Параметры или Аргументы в сервисе WCF - PullRequest
0 голосов
/ 04 октября 2010

Служба wcf, обращающаяся к базе данных SQL:

    private void GetImagesDataFromDB(int imageIndex, int **extraParam**)
    {
        ServiceReference1.DbServiceClient webService =
            new ServiceReference1.DbServiceClient();
        webService.GetSeriesImagesCompleted += new EventHandler<ServiceReference1.GetSeriesImagesCompletedEventArgs>(webService_GetSeriesImagesCompleted);
        webService.GetSeriesImagesAsync(imageIndex);
    }

GetHmageSeriesCompleted EventHandler находится здесь:

    void webService_GetSeriesImagesCompleted(object sender,
        TheApp.ServiceReference1.GetSeriesImagesCompletedEventArgs e)
    {
        if (e.Result != null)
        {
            if (**extraParam** == 1)
            {
                lstImages = e.Result.ToList();

            }
            else 
            {
                // do something else
            }
        }
    }

Сам сервис такой:

   public List<Image> GetSeriesImages(int SeriesId)
    {
        DataClassDataContext db = new DataClassDataContext();
        var images = from s in db.Images
                     where s.SeriesID == SeriesId
                     select s;
        return images.ToList();
    }

Как лучше всего передать extraParam в службу, завершенную EventHandler? Мне нужно это, чтобы направить мой сервис к правильному управлению пользовательским интерфейсом.

Спасибо.

1 Ответ

0 голосов
/ 21 января 2011

Вы, наверное, уже поняли это, но вызов webService.GetSeriesImagesAsync () имеет вторую перегрузку, а именно webService.GetSeriesImagesAsync (int seriesId, объект userState).Этот второй параметр будет передан в обратный вызов как e.UserState.Хорошим примером является передача лямбда-колбэка как пользовательского состояния и выполнение его в методе webService_GetSeriesImagesCompleted ().

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