Объясните MvxAttributeViewPresenter.Показать изменения в 8.0.1

#c# #wpf #mvvmcross

Вопрос:

В MvvmCross.Ведущие.Mvxattributeviewпредставитель Методы показа, похоже, отличаются от предыдущих версий. В настоящее время мне пришлось переопределить показ ведущего по умолчанию следующим образом, который совпадает с 6.4.2.

 public override Task<bool> Show(MvxViewModelRequest request)
{
    var tmp = GetPresentationAttributeAction(request, out MvxBasePresentationAttribute attribute).ShowAction.Invoke(attribute.ViewType, attribute, request);
    return tmp;
}
 

Исходный код выглядит следующим образом, но я не понимаю, почему он был изменен.

 public override Task<bool> Show(MvxViewModelRequest request)
{
    var attributeAction = GetPresentationAttributeAction(request, out MvxBasePresentationAttribute attribute);

    if (attributeAction.ShowAction != null amp;amp; attribute.ViewType != null)
        return attributeAction.ShowAction.Invoke(attribute.ViewType, attribute, request);

    return Task.FromResult(false);
 }
 

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

1. Новый метод show не предполагает, что свойства showAction и viewType в атрибуте представления всегда ненулевые. Другими словами, поведение точно такое же, но реализация менее хрупкая. Ваше приложение не выйдет из строя и вместо этого просто ничего не будет делать при попытке обработать атрибут представления, в котором эти поля не определены.