PropertyChanged.Fody – podstawy

W poprzednim wpisie opisałem mechanizm działania biblioteki PropertyChanged.Fody. Dzisiaj pokażę w jaki sposób możemy ją użyć w w praktyce. 

Instalacja

Użycie biblioteki zaczynamy od jej instalacji. Najłatwiej to zrobić za pomocą menadżera pakietów Nuget. Wyszukujemy pakiet PropertyChanged.Fody i instalujemy go:

nuget

Do projektu dodane zostaną:

  • referencja do PropertyChanged.dll zawierająca atrybuty używane do konfigurowania notyfikacji takie jak np. AlsoNotifyForDoNotNotify itp.,
  • oraz plik FodyWeavers.xml zawierający informację z jakich tkaczy chcemy korzystać (informujący w naszym przypadku, że używamy dodatku PropertyChanged):

Proste użycie

Jako przykład posłuży prosta implementacja widoku składającego się z pola tekstowego oraz przycisku:

Widok wiążemy z modelem widoku:

Po wciśnięciu przycisku chcemy wyświetlić użytkownikowi w polu tekstowym napis Hello.  W klasycznym podejściu powinniśmy zaimplementować INotifyPropertyChanged i poinformować widok o zmianie. W przypadku Fodiego nasz model widoku oznaczony został poprzez atrybut [ImplementPropertyChanged], co spowodowało wstrzyknięcie kodu IL do właściwości. Możemy porównać kod wygenerowany przez kompilator bez użycia atrybutu:

oraz kod powstały po jego użyciu:

Fody wykorzystując bibliotekę Mono.Cecil wstrzyknął za nas wzorcową wręcz implementację INotifyPropertyChanged:

Dodana została również metoda OnPropertyChanged:

Podsumowanie

Jak widzimy, Fody w sposób automatyczny wyszukał właściwości w klasie oznaczonej atrybutem. Zintegrował się również z procesem budowania i zmodyfikował kod IL wygenerowany przez kompilator. Po uruchomieniu aplikacji możemy cieszyć się widokiem automatycznie notyfikujących właściwości. W następnym wpisie opiszę bardziej złożone przypadki użycia Fodiego.

Facebooktwitter

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *