Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross 6.2.2'de null referans istisnalarını etkileyebilecek değişiklikler yapıldı


MVVMCross 6.2.2'de null referans istisnalarını etkileyebilecek değişiklikler yapıldı


MVVMCross sürüm 6.2.2'de, boş referans istisnalarının (NRE'ler) oluşumunu etkileyebilecek birkaç değişiklik yapıldı. İşte temel değişiklikler:

1. IOC Sağlayıcı Başlatma: Önemli bir değişiklik, `mvx.iocprovider'in başlatılması ile ilgilidir. Bu sürümden önce, IOC sağlayıcısı doğru ayarlanmamışsa, görünüm modellerinde `` mvxasynccommand 'gibi komutlar oluştururken NULL referans istisnalarına yol açabilir. `Mvxcommandbase '' için yapıcı, IOC sağlayıcısı boşsa veya bir` `imvxcommandhelper 'örneğini çözemiyorsa,` mvxweakCommandhelper' kullanan bir geri dönüş mekanizması içerecek şekilde güncellendi. Bu değişiklik, IOC sağlayıcısı tam olarak başlatılmasa bile komutların hala çalışabilmesini sağlayarak NRE'leri azaltmayı amaçlamaktadır [1].

2. Hata İşleme İyileştirmeleri: Çerçevenin çeşitli bölümlerinde potansiyel boş referansların işlenmesi geliştirilmiştir. Örneğin, belirli özelliklerin ve yöntemlerin null nesneleri korumaya çalışmamasını sağlamak için kontroller eklenmiştir. Bu, özellikle her zaman mevcut olmayan dış hizmetlere veya bağımlılıklara dayanan bileşenler için geçerlidir [1].

3. Birim Test Ayarlamaları: Kullanıcılar, `mvxasynccommand 'kullanırken boş referans istisnaları nedeniyle birim testleri ile ilgili sorunlar bildirdiler. Birim test projelerinde IOC sağlayıcısını açıkça başlatmak için öneri yapıldı. Bu ayarlama, testler yapmadan önce tüm bağımlılıkların uygun şekilde çözülmesini sağlamaya yardımcı olur, böylece test senaryoları sırasında NRE'lerle karşılaşma olasılığını azaltır [1].

4. Genel Hata Düzeltmeleri: MVVMCross 6.2.2 için sürüm notları, her bir düzeltme ile ilgili spesifik detaylar kapsamlı bir şekilde belgelenmemesine rağmen, boş referans istisnalarıyla ilgili bir dizi hatanın ele alındığını gösterir. Bu düzeltmeler, NRE'lerin daha önce bildirildiği çerçevenin çeşitli bileşenlerinde ayarlamaları içerebilir [10].

Genel olarak, MVVMCross 6.2.2'deki bu değişiklikler, null referans istisnalarının ortaya çıkabileceği kritik alanlar olan komut yürütme ve bağımlılık çözünürlüğünün istikrarını ve güvenilirliğini artırmaya odaklanmaktadır. Geliştiriciler, başlatma işlemini ve hata işlemeyi geliştirerek, bu çerçeveyle oluşturulan uygulamalarında bu istisnalarda bir azalma bekleyebilirler.

Alıntılar:
[1] https://stackoverflow.com/questions/53597908/mvvm-cross-null-references-when-unit-test-mxvasynccommand
[2] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[3] https://pvs-studio.com/en/blog/posts/csharp/1049/
[4] https://www.youtube.com/watch?v=uzsdzok4un8
[5] https://github.com/mvvmcross/mvvmcross/Releases
[6] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[7] https://github.com/mvvmcross/mvvmcross/issues/3310
[8] https://github.com/mvvmcross/mvvmcross/blob/decelop/changelog.md
[9] https://www.reddit.com/r/dotnetmaui/comments/1bpfvky/cannot_pair_to_mac_null_reference_exception/
[10] https://www.mvvmcross.com/mvvmcross-6.2.0-Release/