Значение InvokeOperation всегда false

#silverlight #mvvm-light #wcf-ria-services

#silverlight #mvvm-light #wcf-ria-services

Вопрос:

Небольшой вопрос о InvokeOperation, поэтому, исходя из моей модели просмотра, у меня есть это…

 private void IsValidNumber(string value)  
{  
    _context.NumberIsValid(value, ValidNumberCallback, null);  
}   
private void ValidNumberCallback(InvokeOperation<bool> obj)  
{  
    var test = obj.Value; //ALWAYS FALSE????  
}  
  

и в моем классе domainSerice у меня есть это.

 [Invoke]  
public bool NumberIsValid(string number)  
{  
    return true;  
}
  

и значение обратного вызова всегда равно false??? чего я не понимаю???

мы были бы весьма признательны за любую помощь или указания

Комментарии:

1. Я использовал ваш код дословно в своем тестовом проекте, и он выполняется без сучка и задоринки. Я попытаюсь придумать причину, по которой это не сработало бы у вас во время обеда, но, честно говоря, я ничего не могу придумать сразу.

2. @Matt Greer-Спасибо за исправление формата 🙂

3. @Nissan Fan-Да, это сводит меня с ума, может быть, это что-то глупое вроде перезапуска VS2010: P

4. у меня это тоже хорошо работает. должно быть что-то еще.

5. если бы по какой-либо причине возвращалось значение null, вызвало бы это исключение до или в обратном вызове? или это даже не повлияло бы на метод обратного вызова?

Ответ №1:

Вы должны проверить наличие свойства hasError.

Если по какой-либо причине не удается подключиться к вашему http-серверу, будет вызван обратный вызов метода, но с hasError как true, и вы получите подробную информацию об ошибке в Error object.

Комментарии:

1. У меня есть, и никогда нет ошибки: (Я даже добавил при регистрации в webconfig и никогда ничего не получаю

Ответ №2:

отлично… Я решил просто поторопиться и создать простой тестовый сайт, и он работает просто великолепно… Я думаю, что это может быть связано с чем-то в моем webconfig … если я когда-нибудь найду реальную проблему, я обновлю это.

         <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <remove assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
            <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
            <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
            <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
            <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
            <add assembly="System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /></assemblies>
    </compilation>
  

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