#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>
похоже, проблема была в сборках, я удалил этот раздел, и он снова начал работать… почему?? понятия не имею